def __init__(self, aParentWindow, anEntity): """Constructor aSystemPath string returns """ # Sets the return number self.theModelEditor = aParentWindow.theModelEditor # Sets the return number self.__value = None # Create the Dialog self.win = gtk.Dialog("VariableBrowser", None, gtk.DIALOG_MODAL) self.win.connect("destroy", self.destroy) # Sets size and position self.win.set_border_width(2) self.win.set_default_size(300, 75) self.win.set_position(gtk.WIN_POS_MOUSE) # appends ok button ok_button = gtk.Button(" OK ") self.win.action_area.pack_start(ok_button, False, False) ok_button.set_flags(gtk.CAN_DEFAULT) ok_button.grab_default() ok_button.show() ok_button.connect("clicked", self.oKButtonClicked) # appends cancel button cancel_button = gtk.Button(" Cancel ") self.win.action_area.pack_start(cancel_button, False, False) cancel_button.show() cancel_button.connect("clicked", self.cancelButtonClicked) # Sets title self.theComponent = ViewComponent(self.win.vbox, "attachment_box", "FullIDChooser.glade") aPixbuf16 = gtk.gdk.pixbuf_new_from_file(os.path.join(config.glade_dir, "modeleditor.png")) aPixbuf32 = gtk.gdk.pixbuf_new_from_file(os.path.join(config.glade_dir, "modeleditor32.png")) self.win.set_icon_list(aPixbuf16, aPixbuf32) # create systree, processlist, propertylist self.theSystemTree = SystemTree(self, self.theComponent["SystemTreeFrame"]) self.theEntityList = EntityList(self, self.theComponent["EntityListFrame"], DM_VARIABLE_TYPE) if ecell.util.getTypeFromFullIDString(anEntity) == DM_SYSTEM_TYPE: aSysID = anEntity else: aSysID = ecell.util.convertSystemPathToFullIDString(anEntity.split(":")[1]) self.theSystemTree.changeSelection([aSysID]) self.theSystemTree.selectByUser() self.theModelEditor.setFullIDBrowser(self) self.win.show_all() gtk.main()
def initUI( self ): """ in: nothing returns nothing """ # superclass initUI ListWindow.initUI( self ) # create systree, processlist, propertylist self.theSystemTree = SystemTree( self, self['SystemTreeFrame'] ) self.theEntityType = self.__getEntityType() self.theEntityList = EntityList( self, self['EntityListFrame'], self.theEntityType ) self.theEntityEditorList = EntityEditor( self, self['EntityEditorFrame'], self.theEntityType ) # add signal handlers self.addHandlers( { 'on_variable1_activate': self.__entitychooser_changed, 'on_process1_activate': self.__entitychooser_changed } ) self.theEntityList.changeDisplayedType( self.theEntityType ) self.selectEntity( [ME_ROOTID] ) self.update()
class EntityListTab(ListWindow): def __init__( self, aModelEditor, aRoot = 'top_frame' ): """ in: ModelEditor theModelEditor returns nothing """ ListWindow.__init__( self, aModelEditor, aRoot ) self.initUI() def initUI( self ): """ in: nothing returns nothing """ # superclass initUI ListWindow.initUI( self ) # create systree, processlist, propertylist self.theSystemTree = SystemTree( self, self['SystemTreeFrame'] ) self.theEntityType = self.__getEntityType() self.theEntityList = EntityList( self, self['EntityListFrame'], self.theEntityType ) self.theEntityEditorList = EntityEditor( self, self['EntityEditorFrame'], self.theEntityType ) # add signal handlers self.addHandlers( { 'on_variable1_activate': self.__entitychooser_changed, 'on_process1_activate': self.__entitychooser_changed } ) self.theEntityList.changeDisplayedType( self.theEntityType ) self.selectEntity( [ME_ROOTID] ) self.update() def setLastActiveComponent( self, aComponent ): self.theLastActiveComponent = aComponent self.updatePropertyList() def update( self, aType = None, aFullID = None ): #if self.theModelEditor.getMode() == ME_RUN_MODE: # self.theEntityEditorList.thePropertyList.update() # return if aType == DM_SYSTEM_TYPE: self.updateSystemTree( aFullID ) elif aType == DM_STEPPER_TYPE: self.updatePropertyList() elif aType == self.theEntityType: self.updateEntityList( aFullID ) elif aType == DM_VARIABLE_TYPE and self.theEntityType == DM_PROCESS_TYPE: self.updatePropertyList() elif aType == DM_PROPERTY_TYPE: self.updatePropertyList( aFullID ) else: self.updateSystemTree() def selectEntity( self, anEntityList ): aType = ecell.util.getTypeFromFullIDString ( anEntityList[0] ) if aType == DM_SYSTEM_TYPE: self.theLastActiveComponent = self.theSystemTree elif aType in [ DM_PROCESS_TYPE, DM_VARIABLE_TYPE ]: displayedType = self.__getEntityType() #self.theEntityList.aValue = self.theEntityEditorList.getValue() if aType != displayedType: self.theEntityList.changeDisplayedType( aType ) self.theLastActiveComponent = self.theEntityList else: raise Exception("Wrong type to select %s"% aType ) self.theLastActiveComponent.changeSelection( anEntityList ) self.theLastActiveComponent.selectByUser() def updateSystemTree ( self, aSystemFullID = None ): """ in: string aSystemFullID where changes happened """ if not self.exists(): return if aSystemFullID != None: self.theSystemTree.update ( aSystemFullID ) self.updateEntityList( aSystemFullID ) def updateEntityList ( self, aFullID = None ): """ in: string aFullID where changes happened """ if not self.exists(): return displayedFullID = self.theEntityList.getDisplayedSysID() systemTreeFullIDs = self.theSystemTree.getSelectedIDs() if len(systemTreeFullIDs) != 1: systemTreeFullID = None else: systemTreeFullID = systemTreeFullIDs[0] # check if new system is selected if displayedFullID != systemTreeFullID: self.theEntityList.setDisplayedSysID( systemTreeFullID ) elif displayedFullID == aFullID or aFullID == None: self.theEntityList.update( ) # check whether there were any changes in displayed data self.updatePropertyList( aFullID ) def updatePropertyList ( self, aFullID = None ): """ in: anID where changes happened """ if not self.exists(): return # get selected process or systemid selectedID = None selectedIDs = self.theLastActiveComponent.getSelectedIDs() if len(selectedIDs) == 1: selectedID = selectedIDs[0] else: selectedID = None # get displayed entity from propertylist propertyListEntity = self.theEntityEditorList.getDisplayedEntity() # check if selection was changed if propertyListEntity != selectedID : self.theEntityEditorList.setDisplayedEntity ( selectedID ) elif aFullID == selectedID or aFullID == None or aFullID[-4:] == "SIZE": self.theEntityEditorList.update() def changeEntityType( self ): self.theEntityType = self.__getEntityType() self.theEntityList.changeDisplayedType( self.theEntityType ) self.updateEntityList() # -- SIGNAL HANDLERS def deleted( self, *arg ): ListWindow.deleted( self, *arg ) self.theSystemTree.close() self.theEntityList.close() self.theEntityEditorList.close() self.theModelEditor.theEntityListWindowList.remove( self ) self.theModelEditor.updateWindows() return True def __entitychooser_changed( self, *args ): self.changeEntityType() def __getEntityType( self ): """ returns string type of entity chooser """ anIndex = self['EntityChooser'].get_history() return ( ecsconst.ENTITYTYPE_STRING_LIST[ ecsconst.VARIABLE ], ecsconst.ENTITYTYPE_STRING_LIST[ ecsconst.PROCESS ] )[ anIndex ]
class FullIDBrowserWindow: # ========================================================================== def __init__(self, aParentWindow, anEntity): """Constructor aSystemPath string returns """ # Sets the return number self.theModelEditor = aParentWindow.theModelEditor # Sets the return number self.__value = None # Create the Dialog self.win = gtk.Dialog("VariableBrowser", None, gtk.DIALOG_MODAL) self.win.connect("destroy", self.destroy) # Sets size and position self.win.set_border_width(2) self.win.set_default_size(300, 75) self.win.set_position(gtk.WIN_POS_MOUSE) # appends ok button ok_button = gtk.Button(" OK ") self.win.action_area.pack_start(ok_button, False, False) ok_button.set_flags(gtk.CAN_DEFAULT) ok_button.grab_default() ok_button.show() ok_button.connect("clicked", self.oKButtonClicked) # appends cancel button cancel_button = gtk.Button(" Cancel ") self.win.action_area.pack_start(cancel_button, False, False) cancel_button.show() cancel_button.connect("clicked", self.cancelButtonClicked) # Sets title self.theComponent = ViewComponent(self.win.vbox, "attachment_box", "FullIDChooser.glade") aPixbuf16 = gtk.gdk.pixbuf_new_from_file(os.path.join(config.glade_dir, "modeleditor.png")) aPixbuf32 = gtk.gdk.pixbuf_new_from_file(os.path.join(config.glade_dir, "modeleditor32.png")) self.win.set_icon_list(aPixbuf16, aPixbuf32) # create systree, processlist, propertylist self.theSystemTree = SystemTree(self, self.theComponent["SystemTreeFrame"]) self.theEntityList = EntityList(self, self.theComponent["EntityListFrame"], DM_VARIABLE_TYPE) if ecell.util.getTypeFromFullIDString(anEntity) == DM_SYSTEM_TYPE: aSysID = anEntity else: aSysID = ecell.util.convertSystemPathToFullIDString(anEntity.split(":")[1]) self.theSystemTree.changeSelection([aSysID]) self.theSystemTree.selectByUser() self.theModelEditor.setFullIDBrowser(self) self.win.show_all() gtk.main() # ========================================================================== def update(self, aType=None, aFullID=None): if aType == DM_SYSTEM_TYPE: self.updateSystemTree(aFullID) elif aType == DM_VARIABLE_TYPE: self.updateEntityList(aFullID) else: self.updateEntityList() # ========================================================================== def updateSystemTree(self, aSystemFullID=None): """ in: string aSystemFullID where changes happened """ if aSystemFullID != None: self.theSystemTree.update(aSystemFullID) self.updateEntityList(aSystemFullID) # ========================================================================== def updateEntityList(self, aFullID=None): """ in: string aFullID where changes happened """ displayedFullID = self.theEntityList.getDisplayedSysID() systemTreeFullIDs = self.theSystemTree.getSelectedIDs() if len(systemTreeFullIDs) != 1: systemTreeFullID = None else: systemTreeFullID = systemTreeFullIDs[0] # check if new system is selected if displayedFullID != systemTreeFullID: self.theEntityList.setDisplayedSysID(systemTreeFullID) elif displayedFullID == aFullID or aFullID == None: self.theEntityList.update() # ========================================================================== def oKButtonClicked(self, *arg): """If OK button clicked or the return pressed, this method is called. """ # sets the return number selectedIDs = self.theLastActiveComponent.getSelectedIDs() if len(selectedIDs) == 1: selectedID = selectedIDs[0] else: selectedID = None self.__value = selectedID self.destroy() # ========================================================================== def cancelButtonClicked(self, *arg): """If Cancel button clicked or the return pressed, this method is called. """ # set the return number self.__value = None self.destroy() # ========================================================================== def return_result(self): """Returns result """ return self.__value # ========================================================================== def destroy(self, *arg): """destroy dialog """ self.theModelEditor.setFullIDBrowser(None) self.win.hide() gtk.main_quit() # ========================================================================== def setLastActiveComponent(self, aComponent): self.theLastActiveComponent = aComponent