| import uno |
| import unohelper |
| from com.sun.star.awt import XActionListener |
| |
| class MyActionListener( unohelper.Base, XActionListener ): |
| def __init__(self, labelControl, prefix ): |
| self.nCount = 0 |
| self.labelControl = labelControl |
| self.prefix = prefix |
| |
| def actionPerformed(self, actionEvent): |
| # increase click counter |
| self.nCount = self.nCount + 1; |
| self.labelControl.setText( self.prefix + str( self.nCount ) ) |
| |
| # 'translated' from the developer's guide chapter 11.6 |
| def createDialog(): |
| """Opens a dialog with a push button and a label, clicking the button increases the label counter.""" |
| try: |
| ctx = uno.getComponentContext() |
| smgr = ctx.ServiceManager |
| |
| # create the dialog model and set the properties |
| dialogModel = smgr.createInstanceWithContext( |
| "com.sun.star.awt.UnoControlDialogModel", ctx) |
| |
| dialogModel.PositionX = 100 |
| dialogModel.PositionY = 100 |
| dialogModel.Width = 150 |
| dialogModel.Height = 100 |
| dialogModel.Title = "Runtime Dialog Demo" |
| |
| # create the button model and set the properties |
| buttonModel = dialogModel.createInstance( |
| "com.sun.star.awt.UnoControlButtonModel" ) |
| |
| buttonModel.PositionX = 50 |
| buttonModel.PositionY = 30 |
| buttonModel.Width = 50; |
| buttonModel.Height = 14; |
| buttonModel.Name = "myButtonName"; |
| buttonModel.TabIndex = 0; |
| buttonModel.Label = "Click Me"; |
| |
| # create the label model and set the properties |
| labelModel = dialogModel.createInstance( |
| "com.sun.star.awt.UnoControlFixedTextModel" ); |
| |
| labelModel.PositionX = 40 |
| labelModel.PositionY = 60 |
| labelModel.Width = 100 |
| labelModel.Height = 14 |
| labelModel.Name = "myLabelName" |
| labelModel.TabIndex = 1 |
| labelModel.Label = "Clicks " |
| |
| # insert the control models into the dialog model |
| dialogModel.insertByName( "myButtonName", buttonModel); |
| dialogModel.insertByName( "myLabelName", labelModel); |
| |
| # create the dialog control and set the model |
| controlContainer = smgr.createInstanceWithContext( |
| "com.sun.star.awt.UnoControlDialog", ctx); |
| controlContainer.setModel(dialogModel); |
| |
| # add the action listener |
| controlContainer.getControl("myButtonName").addActionListener( |
| MyActionListener( controlContainer.getControl( "myLabelName" ), labelModel.Label )) |
| |
| # create a peer |
| toolkit = smgr.createInstanceWithContext( |
| "com.sun.star.awt.ExtToolkit", ctx); |
| |
| controlContainer.setVisible(False); |
| controlContainer.createPeer(toolkit, None); |
| |
| # execute it |
| controlContainer.execute() |
| |
| # dispose the dialog |
| controlContainer.dispose() |
| except Exception,e: |
| print str(e) |
| |
| g_exportedScripts = createDialog, |