class ActionWidgetConfig(gtk.Table): def __init__(self, par, action): self.par = par gtk.Table.__init__(self, 4, 4, False) self.actionId = action.getLocalId() self.radio_url = gtk.RadioButton(None, _("URL:")) self.radio_widgetSpaceConstellation = gtk.RadioButton( self.radio_url, _("Widget into Space:")) self.radio_view = gtk.RadioButton(self.radio_url, _("Other View:")) self.entry_url = DefaultEntry( default_message=_("http://www.example.org")) self.entry_widget = ObjectCombo( self, "Widget", selectFirst=True, virtualRootObject=action.getActionList().getMenuItem().getMenu( ).getSite().getSkarphed()) self.entry_space = SpaceCombo( self, action.getActionList().getMenuItem().getMenu().getSite()) self.entry_view = ObjectCombo( self, "View", selectFirst=True, virtualRootObject=action.getActionList().getMenuItem().getMenu( ).getSite().getSkarphed()) self.entry_url.connect("focus-in-event", self.focusCallback) self.entry_widget.connect("popup", self.focusCallback) self.entry_widget.connect("changed", self.focusCallback) self.entry_space.connect("focus-in-event", self.focusCallback) self.entry_view.connect("popup", self.focusCallback) self.entry_widget.connect("changed", self.focusCallback) self.deleteButton = gtk.Button(stock=gtk.STOCK_DELETE) self.increaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_UP) self.decreaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_DOWN) self.saveButton = gtk.Button(stock=gtk.STOCK_SAVE) self.deleteButton.connect("clicked", self.deleteCallback) self.increaseOrderButton.connect("clicked", self.increaseOrderCallback) self.decreaseOrderButton.connect("clicked", self.decreaseOrderCallback) self.saveButton.connect("clicked", self.saveCallback) self.attach(self.radio_url, 0, 1, 0, 1) self.attach(self.entry_url, 1, 3, 0, 1) self.attach(self.radio_widgetSpaceConstellation, 0, 1, 1, 2) self.attach(self.entry_widget, 1, 2, 1, 2) self.attach(self.entry_space, 2, 3, 1, 2) self.attach(self.radio_view, 0, 1, 2, 3) self.attach(self.entry_view, 1, 3, 2, 3) self.attach(self.deleteButton, 0, 1, 3, 4) self.attach(self.increaseOrderButton, 1, 2, 3, 4) self.attach(self.decreaseOrderButton, 2, 3, 3, 4) self.attach(self.saveButton, 3, 4, 3, 4) action.addCallback(self.render) self.show_all() self.render() def render(self): try: action = self.getApplication().getLocalObjectById(self.actionId) except GenericObjectStoreException: self.getPar().destroy() return if action.data['type'] == 'url': self.radio_url.set_active(True) self.entry_url.set_text(action.data['url']) elif action.data['type'] == 'widgetSpaceConstellation': self.radio_widgetSpaceConstellation.set_active(True) widget = action.getWidget() space = action.getSpaceId() self.entry_space.setSpaceId(space) self.entry_widget.setSelected(widget) elif action.data['type'] == 'view': self.radio_view.set_active(True) view = action.getView() self.entry_view.setSelected(view) def focusCallback(self, widget=None, event=None): if widget == self.entry_url: self.radio_url.activate() elif widget == self.entry_space or widget == self.entry_widget: self.radio_widgetSpaceConstellation.activate() elif widget == self.entry_view: self.radio_view.activate() def deleteCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.getPar().deleteAction(action) def increaseOrderCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.increaseOrder() def decreaseOrderCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.decreaseOrder() def saveCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) if self.radio_url.get_active(): action.setUrl(self.entry_url.get_text()) elif self.radio_widgetSpaceConstellation.get_active(): widget = self.entry_widget.getSelected() action.setWidgetSpaceConstellation(widget.getLocalId(), self.entry_space.getSpaceId()) elif self.radio_view.get_active(): action.setView(self.entry_view.getSelected().getLocalId()) def getPar(self): return self.par def getApplication(self): return self.par.getApplication()
class ActionWidgetConfig(gtk.Table): def __init__(self, par, action): self.par = par gtk.Table.__init__(self,4,4,False) self.actionId = action.getLocalId() self.radio_url = gtk.RadioButton(None, _("URL:")) self.radio_widgetSpaceConstellation = gtk.RadioButton(self.radio_url, _("Widget into Space:")) self.radio_view = gtk.RadioButton(self.radio_url, _("Other View:")) self.entry_url = DefaultEntry(default_message=_("http://www.example.org")) self.entry_widget = ObjectCombo(self, "Widget", selectFirst=True, virtualRootObject=action.getActionList().getMenuItem().getMenu().getSite().getSkarphed()) self.entry_space = SpaceCombo(self,action.getActionList().getMenuItem().getMenu().getSite()) self.entry_view = ObjectCombo(self, "View", selectFirst=True, virtualRootObject=action.getActionList().getMenuItem().getMenu().getSite().getSkarphed()) self.entry_url.connect("focus-in-event",self.focusCallback) self.entry_widget.connect("popup",self.focusCallback) self.entry_widget.connect("changed",self.focusCallback) self.entry_space.connect("focus-in-event",self.focusCallback) self.entry_view.connect("popup",self.focusCallback) self.entry_widget.connect("changed",self.focusCallback) self.deleteButton = gtk.Button(stock=gtk.STOCK_DELETE) self.increaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_UP) self.decreaseOrderButton = gtk.Button(stock=gtk.STOCK_GO_DOWN) self.saveButton = gtk.Button(stock=gtk.STOCK_SAVE) self.deleteButton.connect("clicked", self.deleteCallback) self.increaseOrderButton.connect("clicked", self.increaseOrderCallback) self.decreaseOrderButton.connect("clicked", self.decreaseOrderCallback) self.saveButton.connect("clicked", self.saveCallback) self.attach(self.radio_url,0,1,0,1) self.attach(self.entry_url,1,3,0,1) self.attach(self.radio_widgetSpaceConstellation,0,1,1,2) self.attach(self.entry_widget,1,2,1,2) self.attach(self.entry_space,2,3,1,2) self.attach(self.radio_view,0,1,2,3) self.attach(self.entry_view,1,3,2,3) self.attach(self.deleteButton,0,1,3,4) self.attach(self.increaseOrderButton,1,2,3,4) self.attach(self.decreaseOrderButton,2,3,3,4) self.attach(self.saveButton,3,4,3,4) action.addCallback(self.render) self.show_all() self.render() def render(self): try: action = self.getApplication().getLocalObjectById(self.actionId) except GenericObjectStoreException: self.getPar().destroy() return if action.data['type'] == 'url': self.radio_url.set_active(True) self.entry_url.set_text(action.data['url']) elif action.data['type'] == 'widgetSpaceConstellation': self.radio_widgetSpaceConstellation.set_active(True) widget=action.getWidget() space=action.getSpaceId() self.entry_space.setSpaceId(space) self.entry_widget.setSelected(widget) elif action.data['type'] == 'view': self.radio_view.set_active(True) view=action.getView() self.entry_view.setSelected(view) def focusCallback(self,widget=None,event=None): if widget == self.entry_url: self.radio_url.activate() elif widget == self.entry_space or widget == self.entry_widget: self.radio_widgetSpaceConstellation.activate() elif widget == self.entry_view: self.radio_view.activate() def deleteCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.getPar().deleteAction(action) def increaseOrderCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.increaseOrder() def decreaseOrderCallback(self, widget=None, data=None): action = self.getApplication().getLocalObjectById(self.actionId) action.decreaseOrder() def saveCallback(self, widget=None,data=None): action = self.getApplication().getLocalObjectById(self.actionId) if self.radio_url.get_active(): action.setUrl(self.entry_url.get_text()) elif self.radio_widgetSpaceConstellation.get_active(): widget = self.entry_widget.getSelected() action.setWidgetSpaceConstellation(widget.getLocalId(),self.entry_space.getSpaceId()) elif self.radio_view.get_active(): action.setView(self.entry_view.getSelected().getLocalId()) def getPar(self): return self.par def getApplication(self): return self.par.getApplication()