def handleNewComponent(self, widget): inWindow = isinstance(widget, JComponent) and widget.getTopLevelAncestor() is not None and \ widget.getTopLevelAncestor() in self.uiMap.windows isWindow = isinstance(widget, (JFrame, JDialog)) appEventButton = hasattr(widget, "getText") and unicode(widget.getText()).startswith("ApplicationEvent") popupMenu = isinstance(widget, JPopupMenu) and not util.belongsMenubar(widget.getInvoker()) if self.uiMap and (self.isActive() or self.recorder.isActive()): if isWindow: self.uiMap.monitorAndStoreWindow(widget) self.setAppeared(widget) elif (popupMenu or inWindow or appEventButton) and widget not in self.appearedWidgets: self.logger.debug("New widget of type " + widget.__class__.__name__ + " appeared: monitoring") self.uiMap.monitor(storytext.guishared.WidgetAdapter.adapt(widget)) self.setAppeared(widget) elif isinstance(widget, JPopupMenu): self.setAppeared(widget.getParent()) if self.loggerActive and (isWindow or inWindow or popupMenu): self.describer.setWidgetShown(widget)
def _generate(self, *args): path = util.getMenuPathString(self.widget) if util.belongsMenubar(self.widget): runKeyword("selectFromMenuAndWait", path) else: self.selectFromPopupMenu()