def runTestThread(self): util.runOnEventDispatchThread(self.waitForApplicationToAppear) if self.isActive(): self.describeAndRun(self.describe) else: # pragma: no cover - replayer disabled, cannot create automated tests while self.frameShowing(): time.sleep(0.1)
def describeAndRun(self): while True: util.runOnEventDispatchThread(self.describer.describeUpdates) if self.delay: time.sleep(self.delay) if not self.runNextCommand(): break
def _generate(self, *args): #runKeyword("closeWindow", self.widget.getTitle()) doesn't work for confirm dialogs after closing #the application. System.setProperty("abbot.robot.mode", "awt") robot = Robot() robot.setEventMode(Robot.EM_AWT) util.runOnEventDispatchThread(robot.close, self.widget.widget) robot.waitForIdle()
def connectRecord(self, method): class EventListener(AWTEventListener): def eventDispatched(listenerSelf, event): catchAll(self.handleEvent, event, method) eventListener = EventListener() eventMask = AWTEvent.WINDOW_EVENT_MASK util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().addAWTEventListener, eventListener, eventMask)
def startListening(self): class PhysicalEventListener(AWTEventListener): def eventDispatched(listenerSelf, event): catchAll(self.handleEvent, event) self.eventListener = PhysicalEventListener() eventMask = AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().addAWTEventListener, self.eventListener, eventMask)
def connectRecord(self, method): class TextDocumentListener(swing.event.DocumentListener): def insertUpdate(lself, event): catchAll(method, event, self) changedUpdate = insertUpdate removeUpdate = insertUpdate util.runOnEventDispatchThread(self.widget.getDocument().addDocumentListener, TextDocumentListener())
def editTextComponent(self, newValue, row, column): self.widget.runKeyword("typeIntoTableCell", row, column, newValue) # The above will press the Enter key and never release it, see # http://code.google.com/p/robotframework-swinglibrary/issues/detail?id=197 # We work around this by releasing it ourselves... releaseEvent = KeyEvent(self.widget.widget, KeyEvent.KEY_RELEASED, System.currentTimeMillis(), 0, KeyEvent.VK_ENTER) util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent, releaseEvent)
def connectRecord(self, method): class WindowCloseListener(WindowAdapter): def windowClosing(listenerSelf, event): method(event, self) def windowClosed(listenerSelf, event): Filter.stopListening() util.runOnEventDispatchThread(self.widget.widget.addWindowListener, WindowCloseListener())
def connectRecord(self, method): class ClickListener(MouseAdapter): def mousePressed(listenerSelf, event): listenerSelf.pressedEvent = event def mouseReleased(listenerSelf, event): method(listenerSelf.pressedEvent, self) util.runOnEventDispatchThread(self.widget.widget.addMouseListener, ClickListener())
def connectRecord(self, method): class ClickListener(MouseAdapter): def mousePressed(listenerSelf, event): if not isinstance(event.getSource(), swing.JMenu): listenerSelf.pressedEvent = event def mouseReleased(listenerSelf, event): if not isinstance(event.getSource(), swing.JMenu): method(listenerSelf.pressedEvent, self) util.runOnEventDispatchThread(self.widget.widget.addMouseListener, ClickListener())
def connectRecord(self, method): if isinstance(self.widget.widget, swing.JComponent) and self.widget.getComponentPopupMenu(): class EventListener(AWTEventListener): def eventDispatched(listenerSelf, event): catchAll(self.handleEvent, event, method) eventListener = EventListener() eventMask = AWTEvent.MOUSE_EVENT_MASK util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().addAWTEventListener, eventListener, eventMask) else: SignalEvent.connectRecord(self, method)
def listenForComponents(self): class NewComponentListener(AWTEventListener): def eventDispatched(listenerSelf, event):#@NoSelf # Primarily to make coverage work, it doesn't get enabled in threads made by Java if hasattr(threading, "_trace_hook") and threading._trace_hook: sys.settrace(threading._trace_hook) if event.getID() == ComponentEvent.COMPONENT_SHOWN: storytext.guishared.catchAll(self.handleNewComponent, event.getSource()) elif event.getID() == ContainerEvent.COMPONENT_ADDED: storytext.guishared.catchAll(self.handleNewComponent, event.getChild()) eventMask = AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.CONTAINER_EVENT_MASK util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().addAWTEventListener, NewComponentListener(), eventMask)
def startListening(self): eventMask = AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK | AWTEvent.WINDOW_EVENT_MASK | AWTEvent.COMPONENT_EVENT_MASK # Should be commented out if we need to listen to these events: #| AWTEvent.WINDOW_EVENT_MASK | AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.ACTION_EVENT_MASK #| AWTEvent.ITEM_EVENT_MASK | AWTEvent.INPUT_METHOD_EVENT_MASk class AllEventListener(AWTEventListener): def eventDispatched(listenerSelf, event): # Primarily to make coverage work, it doesn't get enabled in threads made by Java if hasattr(threading, "_trace_hook") and threading._trace_hook: sys.settrace(threading._trace_hook) self.handleEvent(event) self.eventListener = AllEventListener() util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().addAWTEventListener, self.eventListener, eventMask)
def connectRecord(self, method): class ItemSelectListener(ItemListener): def itemStateChanged(listenerSelf, event): catchAll(self.tryRecordSelection, event, method) class TextDocumentListener(swing.event.DocumentListener): def insertUpdate(lself, event): catchAll(method, None, event, self) changedUpdate = insertUpdate removeUpdate = insertUpdate if self.widget.isEditable(): util.runOnEventDispatchThread(self.widget.getEditor().getEditorComponent().getDocument().addDocumentListener, TextDocumentListener()) util.runOnEventDispatchThread(self.widget.widget.addItemListener, ItemSelectListener())
def observeUpdates(self): class TableListener(swing.event.TableModelListener): def tableChanged(listenerSelf, event): catchAll(self.updateTableInfo) util.runOnEventDispatchThread(self.table.getModel().addTableModelListener, TableListener())
def connectRecord(self, method): class TableListener(swing.event.TableModelListener): def tableChanged(listenerSelf, event): catchAll(self.tryRecordUpdate, event, method) util.runOnEventDispatchThread(self.widget.widget.getModel().addTableModelListener, TableListener())
def describe(self): util.runOnEventDispatchThread(self.describer.describeWithUpdates)
def _generate(self, argumentString): util.runOnEventDispatchThread(self._generateSwingLib, argumentString)
def connectRecord(self, method): class RecordListener(ActionListener): def actionPerformed(lself, event): catchAll(method, event, self) util.runOnEventDispatchThread(self.widget.widget.addActionListener, RecordListener())
def connectRecord(self, method): class RecordListener(swing.event.ChangeListener): def stateChanged(lself, e): catchAll(method, e, self) util.runOnEventDispatchThread(self.widget.addChangeListener, RecordListener())
def connectRecord(self, method): class RecordListener(ActionListener): def actionPerformed(lself, event): # @NoSelf storytext.guishared.catchAll(self.tryApplicationEvent, event, method) util.runOnEventDispatchThread(self.widget.widget.addActionListener, RecordListener())
def connectRecord(self, method): class RecordListener(ChangeListener): def stateChanged(lself, e): # @NoSelf storytext.guishared.catchAll(method, e, self) util.runOnEventDispatchThread(self.widget.addChangeListener, RecordListener())
def connectRecord(self, method): class ActivateEventListener(ActionListener): def actionPerformed(lself, event): # @NoSelf storytext.guishared.catchAll(method, event, self) util.runOnEventDispatchThread(self.widget.widget.addActionListener, ActivateEventListener())
def observeUpdates(self): class TableListener(TableModelListener): def tableChanged(listenerSelf, event): # @NoSelf storytext.guishared.catchAll(self.updateTableInfo) util.runOnEventDispatchThread(self.widget.getModel().addTableModelListener, TableListener())
def connectRecord(self, method): class TableListener(TableModelListener): def tableChanged(listenerSelf, event): # @NoSelf storytext.guishared.catchAll(self.tryRecordUpdate, event, method) util.runOnEventDispatchThread(self.widget.widget.getModel().addTableModelListener, TableListener())
def stopListening(cls): util.runOnEventDispatchThread(Toolkit.getDefaultToolkit().removeAWTEventListener, cls.eventListener)
def connectRecord(self, method): class ClickListener(MouseAdapter): def mousePressed(listenerSelf, event): catchAll(method, event, self) util.runOnEventDispatchThread(self.getRecordWidget().addMouseListener, ClickListener())