diff options
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/UnoDialog2.py')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/UnoDialog2.py | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/ui/UnoDialog2.py b/wizards/com/sun/star/wizards/ui/UnoDialog2.py new file mode 100644 index 000000000..0bf868687 --- /dev/null +++ b/wizards/com/sun/star/wizards/ui/UnoDialog2.py @@ -0,0 +1,259 @@ +from UnoDialog import * +from ui.event.CommonListener import * +from common.Desktop import Desktop +import UIConsts + +''' +This class contains convenience methods for inserting components to a dialog. +It was created for use with the automatic conversion of Basic XML Dialog +description files to a Java class which builds +the same dialog through the UNO API.<br/> +It uses an Event-Listener method, which calls a method through reflection +wenn an event on a component is trigered. +see the classes CommonListener for details +''' + +class UnoDialog2(UnoDialog): + + ''' + Override this method to return another listener. + @return + ''' + + def __init__(self, xmsf): + super(UnoDialog2,self).__init__(xmsf,(), ()) + + def insertButton( + self, sName, actionPerformed, sPropNames, oPropValues, listener): + xButton = self.insertControlModel2( + "com.sun.star.awt.UnoControlButtonModel", + sName, sPropNames, oPropValues) + if actionPerformed is not None: + actionPerformed = getattr(listener, actionPerformed) + xButton.addActionListener( + ActionListenerProcAdapter(actionPerformed)) + + return xButton + + def insertImageButton( + self, sName, actionPerformed, sPropNames, oPropValues, listener): + xButton = self.insertControlModel2( + "com.sun.star.awt.UnoControlButtonModel", + sName, sPropNames, oPropValues) + if actionPerformed is not None: + actionPerformed = getattr(listener, actionPerformed) + xButton.addActionListener( + ActionListenerProcAdapter(actionPerformed)) + + return xButton + + def insertCheckBox( + self, sName, itemChanged, sPropNames, oPropValues, listener): + xCheckBox = self.insertControlModel2( + "com.sun.star.awt.UnoControlCheckBoxModel", + sName, sPropNames, oPropValues) + if itemChanged is not None: + itemChanged = getattr(listener, itemChanged) + xCheckBox.addItemListener(ItemListenerProcAdapter(itemChanged)) + + return xCheckBox + + def insertComboBox( + self, sName, actionPerformed, itemChanged, + textChanged, sPropNames, oPropValues, listener): + xComboBox = self.insertControlModel2( + "com.sun.star.awt.UnoControlComboBoxModel", + sName, sPropNames, oPropValues) + if actionPerformed is not None: + actionPerformed = getattr(listener, actionPerformed) + xComboBox.addActionListener( + ActionListenerProcAdapter(actionPerformed)) + + if itemChanged is not None: + itemChanged = getattr(listener, itemChanged) + xComboBox.addItemListener(ItemListenerProcAdapter(itemChanged)) + + if textChanged is not None: + textChanged = getattr(listener, textChanged) + xComboBox.addTextListener(TextListenerProcAdapter(textChanged)) + + return xComboBox + + def insertListBox( + self, sName, actionPerformed, itemChanged, + sPropNames, oPropValues, listener): + xListBox = self.insertControlModel2( + "com.sun.star.awt.UnoControlListBoxModel", + sName, sPropNames, oPropValues) + + if actionPerformed is not None: + actionPerformed = getattr(listener, actionPerformed) + xListBox.addActionListener(actionPerformed) + + if itemChanged is not None: + itemChanged = getattr(listener, itemChanged) + xListBox.addItemListener(ItemListenerProcAdapter(itemChanged)) + + return xListBox + + def insertRadioButton( + self, sName, itemChanged, sPropNames, oPropValues, listener): + xRadioButton = self.insertControlModel2( + "com.sun.star.awt.UnoControlRadioButtonModel", + sName, sPropNames, oPropValues) + if itemChanged is not None: + itemChanged = getattr(listener, itemChanged) + xRadioButton.addItemListener( + ItemListenerProcAdapter(itemChanged)) + + + return xRadioButton + + def insertTitledBox(self, sName, sPropNames, oPropValues): + oTitledBox = self.insertControlModel2( + "com.sun.star.awt.UnoControlGroupBoxModel", + sName, sPropNames, oPropValues) + return oTitledBox + + def insertTextField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, "com.sun.star.awt.UnoControlEditModel", + sPropNames, oPropValues, listener) + + def insertImage(self, sName, sPropNames, oPropValues): + return self.insertControlModel2( + "com.sun.star.awt.UnoControlImageControlModel", + sName, sPropNames, oPropValues) + + def insertInfoImage(self, _posx, _posy, _iStep): + xImgControl = self.insertImage( + Desktop.getUniqueName(self.xDialogModel, "imgHint"), + ("Border", + PropertyNames.PROPERTY_HEIGHT, + PropertyNames.PROPERTY_IMAGEURL, + PropertyNames.PROPERTY_POSITION_X, + PropertyNames.PROPERTY_POSITION_Y, "ScaleImage", + PropertyNames.PROPERTY_STEP, + PropertyNames.PROPERTY_WIDTH), + (0, 10, UIConsts.INFOIMAGEURL, _posx, _posy, False, _iStep, 10)) + return xImgControl + + ''' + This method is used for creating Edit, Currency, Date, Formatted, + Pattern, File and Time edit components. + ''' + + def insertEditField( + self, sName, sTextChanged, sModelClass, + sPropNames, oPropValues, listener): + xField = self.insertControlModel2(sModelClass, + sName, sPropNames, oPropValues) + if sTextChanged is not None: + sTextChanged = getattr(listener, sTextChanged) + xField.addTextListener(TextListenerProcAdapter(sTextChanged)) + + return xField + + def insertFileControl( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField(sName, sTextChanged, + "com.sun.star.awt.UnoControlFileControlModel", + sPropNames, oPropValues, listener) + + def insertCurrencyField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, + "com.sun.star.awt.UnoControlCurrencyFieldModel", + sPropNames, oPropValues, listener) + + def insertDateField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, + "com.sun.star.awt.UnoControlDateFieldModel", + sPropNames, oPropValues, listener) + + def insertNumericField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, + "com.sun.star.awt.UnoControlNumericFieldModel", + sPropNames, oPropValues, listener) + + def insertTimeField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, + "com.sun.star.awt.UnoControlTimeFieldModel", + sPropNames, oPropValues, listener) + + def insertPatternField( + self, sName, sTextChanged, oPropValues, listener): + return self.insertEditField(sName, sTextChanged, + "com.sun.star.awt.UnoControlPatternFieldModel", + sPropNames, oPropValues, listener) + + def insertFormattedField( + self, sName, sTextChanged, sPropNames, oPropValues, listener): + return self.insertEditField( + sName, sTextChanged, + "com.sun.star.awt.UnoControlFormattedFieldModel", + sPropNames, oPropValues, listener) + + def insertFixedLine(self, sName, sPropNames, oPropValues): + oLine = self.insertControlModel2( + "com.sun.star.awt.UnoControlFixedLineModel", + sName, sPropNames, oPropValues) + return oLine + + def insertScrollBar(self, sName, sPropNames, oPropValues): + oScrollBar = self.insertControlModel2( + "com.sun.star.awt.UnoControlScrollBarModel", + sName, sPropNames, oPropValues) + return oScrollBar + + def insertProgressBar(self, sName, sPropNames, oPropValues): + oProgressBar = self.insertControlModel2( + "com.sun.star.awt.UnoControlProgressBarModel", + sName, sPropNames, oPropValues) + return oProgressBar + + def insertGroupBox(self, sName, sPropNames, oPropValues): + oGroupBox = self.insertControlModel2( + "com.sun.star.awt.UnoControlGroupBoxModel", + sName, sPropNames, oPropValues) + return oGroupBox + + def insertControlModel2( + self, serviceName, componentName, sPropNames, oPropValues): + try: + xControlModel = self.insertControlModel( + serviceName, componentName, (), ()) + Helper.setUnoPropertyValues( + xControlModel, sPropNames, oPropValues) + Helper.setUnoPropertyValue(xControlModel, + PropertyNames.PROPERTY_NAME, componentName) + except Exception, ex: + traceback.print_exc() + + aObj = self.xUnoDialog.getControl(componentName) + return aObj + + def setControlPropertiesDebug(self, model, names, values): + i = 0 + while i < len(names): + print " Settings: ", names[i] + Helper.setUnoPropertyValue(model, names[i], values[i]) + i += 1 + + def getControlModel(self, unoControl): + obj = unoControl.Model + return obj + + def showMessageBox(self, windowServiceName, windowAttribute, MessageText): + return SystemDialog.showMessageBox( + xMSF, self.xControl.Peer, + windowServiceName, windowAttribute, MessageText) + |