Author: bugman Date: Sat Aug 6 17:24:30 2011 New Revision: 14203 URL: http://svn.gna.org/viewcvs/relax?rev=14203&view=rev Log: The spin viewer menus and pipe switching elements are now disabled when the execution lock is on. The menus IDs now are set with class variables using wx.NewId(). Modified: branches/gui_testing/gui/spin_viewer/frame.py Modified: branches/gui_testing/gui/spin_viewer/frame.py URL: http://svn.gna.org/viewcvs/relax/branches/gui_testing/gui/spin_viewer/frame.py?rev=14203&r1=14202&r2=14203&view=diff ============================================================================== --- branches/gui_testing/gui/spin_viewer/frame.py (original) +++ branches/gui_testing/gui/spin_viewer/frame.py Sat Aug 6 17:24:30 2011 @@ -42,6 +42,37 @@ class Spin_view_window(wx.Frame): """A window element for the tree view.""" + # Some IDs for the menu entries. + MENU_SEQUENCE_COPY = wx.NewId() + MENU_SEQUENCE_READ = wx.NewId() + MENU_SEQUENCE_WRITE = wx.NewId() + MENU_STRUCTURE_DELETE = wx.NewId() + MENU_STRUCTURE_LOAD_SPINS = wx.NewId() + MENU_STRUCTURE_READ_PDB = wx.NewId() + MENU_STRUCTURE_WRITE_PDB = wx.NewId() + MENU_MOLECULE_COPY = wx.NewId() + MENU_MOLECULE_CREATE = wx.NewId() + MENU_MOLECULE_DELETE = wx.NewId() + MENU_RESIDUE_COPY = wx.NewId() + MENU_RESIDUE_CREATE = wx.NewId() + MENU_RESIDUE_DELETE = wx.NewId() + MENU_SPIN_COPY = wx.NewId() + MENU_SPIN_CREATE = wx.NewId() + MENU_SPIN_CREATE_PSEUDO = wx.NewId() + MENU_SPIN_DELETE = wx.NewId() + MENU_SPIN_DISPLAY = wx.NewId() + MENU_SPIN_ELEMENT = wx.NewId() + MENU_SPIN_NAME = wx.NewId() + MENU_SPIN_NUMBER = wx.NewId() + MENU_SELECT_ALL = wx.NewId() + MENU_SELECT_READ = wx.NewId() + MENU_SELECT_REVERSE = wx.NewId() + MENU_SELECT_SPIN = wx.NewId() + MENU_DESELECT_ALL = wx.NewId() + MENU_DESELECT_READ = wx.NewId() + MENU_DESELECT_REVERSE = wx.NewId() + MENU_DESELECT_SPIN = wx.NewId() + def __init__(self, *args, **kwds): """Set up the relax prompt.""" @@ -72,6 +103,55 @@ splitter = Tree_splitter(self.gui, self, -1) sizer.Add(splitter, 1, wx.EXPAND|wx.ALL, 0) + # Activate the frame. + self._activate() + + # Register functions with the observer objects. + status.observers.exec_lock.register('spin viewer', self._activate) + + + def _activate(self): + """Activate or deactivate certain elements in response to the execution lock.""" + + # Flag for enabling or disabling the elements. + enable = False + if not status.exec_lock.locked(): + enable = True + + # The menu bar. + self.menubar.Enable(self.MENU_SEQUENCE_COPY, enable) + self.menubar.Enable(self.MENU_SEQUENCE_READ, enable) + self.menubar.Enable(self.MENU_SEQUENCE_WRITE, enable) + self.menubar.Enable(self.MENU_STRUCTURE_DELETE, enable) + self.menubar.Enable(self.MENU_STRUCTURE_LOAD_SPINS, enable) + self.menubar.Enable(self.MENU_STRUCTURE_READ_PDB, enable) + self.menubar.Enable(self.MENU_STRUCTURE_WRITE_PDB, enable) + self.menubar.Enable(self.MENU_MOLECULE_COPY, enable) + self.menubar.Enable(self.MENU_MOLECULE_CREATE, enable) + self.menubar.Enable(self.MENU_MOLECULE_DELETE, enable) + self.menubar.Enable(self.MENU_RESIDUE_COPY, enable) + self.menubar.Enable(self.MENU_RESIDUE_CREATE, enable) + self.menubar.Enable(self.MENU_RESIDUE_DELETE, enable) + self.menubar.Enable(self.MENU_SPIN_COPY, enable) + self.menubar.Enable(self.MENU_SPIN_CREATE, enable) + self.menubar.Enable(self.MENU_SPIN_CREATE_PSEUDO, enable) + self.menubar.Enable(self.MENU_SPIN_DELETE, enable) + self.menubar.Enable(self.MENU_SPIN_DISPLAY, enable) + self.menubar.Enable(self.MENU_SPIN_ELEMENT, enable) + self.menubar.Enable(self.MENU_SPIN_NAME, enable) + self.menubar.Enable(self.MENU_SPIN_NUMBER, enable) + self.menubar.Enable(self.MENU_SELECT_ALL, enable) + self.menubar.Enable(self.MENU_SELECT_READ, enable) + self.menubar.Enable(self.MENU_SELECT_REVERSE, enable) + self.menubar.Enable(self.MENU_SELECT_SPIN, enable) + self.menubar.Enable(self.MENU_DESELECT_ALL, enable) + self.menubar.Enable(self.MENU_DESELECT_READ, enable) + self.menubar.Enable(self.MENU_DESELECT_REVERSE, enable) + self.menubar.Enable(self.MENU_DESELECT_SPIN, enable) + + # The pipe selector. + self.pipe_name.Enable(enable) + def _create_menu(self): """Build a menu for the window.""" @@ -82,59 +162,59 @@ # The sequence menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.sequence.copy)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.sequence.read)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&write", icon=paths.icon_16x16.save, fn=self.gui.user_functions.sequence.write)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SEQUENCE_COPY, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.sequence.copy)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SEQUENCE_READ, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.sequence.read)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SEQUENCE_WRITE, text="&write", icon=paths.icon_16x16.save, fn=self.gui.user_functions.sequence.write)) self.menubar.Append(menu, "se&quence") # The structure menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.structure.delete)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&load_spins", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.structure.load_spins)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&read_pdb", icon=paths.icon_16x16.open, fn=self.gui.user_functions.structure.read_pdb)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&write_pdb", icon=paths.icon_16x16.save, fn=self.gui.user_functions.structure.write_pdb)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_STRUCTURE_DELETE, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.structure.delete)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_STRUCTURE_LOAD_SPINS, text="&load_spins", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.structure.load_spins)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_STRUCTURE_READ_PDB, text="&read_pdb", icon=paths.icon_16x16.open, fn=self.gui.user_functions.structure.read_pdb)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_STRUCTURE_WRITE_PDB, text="&write_pdb", icon=paths.icon_16x16.save, fn=self.gui.user_functions.structure.write_pdb)) self.menubar.Append(menu, "st&ructure") # The molecule menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.molecule.copy)) - menu.AppendItem(build_menu_item(menu, parent=self, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.molecule.create)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.molecule.delete)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_MOLECULE_COPY, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.molecule.copy)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_MOLECULE_CREATE, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.molecule.create)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_MOLECULE_DELETE, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.molecule.delete)) self.menubar.Append(menu, "&molecule") # The residue menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.residue.copy)) - menu.AppendItem(build_menu_item(menu, parent=self, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.residue.create)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.residue.delete)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_RESIDUE_COPY, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.residue.copy)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_RESIDUE_CREATE, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.residue.create)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_RESIDUE_DELETE, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.residue.delete)) self.menubar.Append(menu, "&residue") # The spin menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.spin.copy)) - menu.AppendItem(build_menu_item(menu, parent=self, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.spin.create)) - menu.AppendItem(build_menu_item(menu, parent=self, text="create_&pseudo", icon=paths.icon_16x16.add, fn=self.gui.user_functions.spin.create_pseudo)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.spin.delete)) - menu.AppendItem(build_menu_item(menu, parent=self, text="displa&y", icon=None, fn=self.gui.user_functions.spin.display)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&element", icon=None, fn=self.gui.user_functions.spin.element)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&name", icon=None, fn=self.gui.user_functions.spin.name)) - menu.AppendItem(build_menu_item(menu, parent=self, text="num&ber", icon=None, fn=self.gui.user_functions.spin.number)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_COPY, text="©", icon=paths.icon_16x16.copy, fn=self.gui.user_functions.spin.copy)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_CREATE, text="crea&te", icon=paths.icon_16x16.add, fn=self.gui.user_functions.spin.create)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_CREATE_PSEUDO, text="create_&pseudo", icon=paths.icon_16x16.add, fn=self.gui.user_functions.spin.create_pseudo)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_DELETE, text="&delete", icon=paths.icon_16x16.remove, fn=self.gui.user_functions.spin.delete)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_DISPLAY, text="displa&y", icon=None, fn=self.gui.user_functions.spin.display)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_ELEMENT, text="&element", icon=None, fn=self.gui.user_functions.spin.element)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_NAME, text="&name", icon=None, fn=self.gui.user_functions.spin.name)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SPIN_NUMBER, text="num&ber", icon=None, fn=self.gui.user_functions.spin.number)) self.menubar.Append(menu, "&spin") # The select menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="&all", icon=None, fn=self.gui.user_functions.select.all)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.select.read)) - menu.AppendItem(build_menu_item(menu, parent=self, text="re&verse", icon=None, fn=self.gui.user_functions.select.reverse)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&spin", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.select.spin)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SELECT_ALL, text="&all", icon=None, fn=self.gui.user_functions.select.all)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SELECT_READ, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.select.read)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SELECT_REVERSE, text="re&verse", icon=None, fn=self.gui.user_functions.select.reverse)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_SELECT_SPIN, text="&spin", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.select.spin)) self.menubar.Append(menu, "se&lect") # The deselect menu entry. menu = wx.Menu() - menu.AppendItem(build_menu_item(menu, parent=self, text="&all", icon=None, fn=self.gui.user_functions.deselect.all)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.deselect.read)) - menu.AppendItem(build_menu_item(menu, parent=self, text="re&verse", icon=None, fn=self.gui.user_functions.deselect.reverse)) - menu.AppendItem(build_menu_item(menu, parent=self, text="&spin", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.deselect.spin)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_DESELECT_ALL, text="&all", icon=None, fn=self.gui.user_functions.deselect.all)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_DESELECT_READ, text="&read", icon=paths.icon_16x16.open, fn=self.gui.user_functions.deselect.read)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_DESELECT_REVERSE, text="re&verse", icon=None, fn=self.gui.user_functions.deselect.reverse)) + menu.AppendItem(build_menu_item(menu, parent=self, id=self.MENU_DESELECT_SPIN, text="&spin", icon=paths.icon_16x16.spin, fn=self.gui.user_functions.deselect.spin)) self.menubar.Append(menu, "&deselect")