/[ascend]/trunk/pygtk/interface/gtkbrowser.py
ViewVC logotype

Diff of /trunk/pygtk/interface/gtkbrowser.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 245 by johnpye, Tue Jan 31 07:49:58 2006 UTC revision 246 by johnpye, Tue Jan 31 16:24:27 2006 UTC
# Line 13  import optparse Line 13  import optparse
13  from solverparameters import * # 'solver parameters' window  from solverparameters import * # 'solver parameters' window
14  from help import * # viewing help files  from help import * # viewing help files
15  from incidencematrix import * # incidence/sparsity matrix matplotlib window  from incidencematrix import * # incidence/sparsity matrix matplotlib window
16    from observer import * # observer tab support
17    
18  import sys, dl  import sys, dl
19  # This sets the flags for dlopen used by python so that the symbols in the  # This sets the flags for dlopen used by python so that the symbols in the
# Line 54  class Browser: Line 55  class Browser:
55    
56          #print "OPTIONS_______________:",options          #print "OPTIONS_______________:",options
57                    
58            self.observers = []
59    
60          #--------          #--------
61          # load up the preferences ini file          # load up the preferences ini file
62    
# Line 170  class Browser: Line 173  class Browser:
173          _img.set_from_file('icons/properties.png')          _img.set_from_file('icons/properties.png')
174          self.propsmenuitem.set_image(_img)          self.propsmenuitem.set_image(_img)
175    
176            self.observemenuitem = gtk.ImageMenuItem("_Observe",True);
177            _img = gtk.Image()
178            _img.set_from_file('icons/observe.png')
179            self.observemenuitem.set_image(_img)
180    
181          self.fixmenuitem.show(); self.fixmenuitem.set_sensitive(False)          self.fixmenuitem.show(); self.fixmenuitem.set_sensitive(False)
182          self.freemenuitem.show(); self.freemenuitem.set_sensitive(False)          self.freemenuitem.show(); self.freemenuitem.set_sensitive(False)
183          self.plotmenuitem.show(); self.plotmenuitem.set_sensitive(False)          self.plotmenuitem.show(); self.plotmenuitem.set_sensitive(False)
184            self.observemenuitem.show(); self.observemenuitem.set_sensitive(False)
185          self.propsmenuitem.show()          self.propsmenuitem.show()
186          self.treecontext.append(self.fixmenuitem);          self.treecontext.append(self.fixmenuitem)
187          self.treecontext.append(self.freemenuitem);          self.treecontext.append(self.freemenuitem)
188          _sep = gtk.SeparatorMenuItem(); _sep.show()          _sep = gtk.SeparatorMenuItem(); _sep.show()
189          self.treecontext.append(_sep);          self.treecontext.append(_sep);
190          self.treecontext.append(self.plotmenuitem);          self.treecontext.append(self.plotmenuitem)
191            self.treecontext.append(self.observemenuitem)
192          _sep = gtk.SeparatorMenuItem(); _sep.show()          _sep = gtk.SeparatorMenuItem(); _sep.show()
193          self.treecontext.append(_sep);          self.treecontext.append(_sep)
194          self.treecontext.append(self.propsmenuitem);          self.treecontext.append(self.propsmenuitem)
195          self.fixmenuitem.connect("activate",self.fix_activate)          self.fixmenuitem.connect("activate",self.fix_activate)
196          self.freemenuitem.connect("activate",self.free_activate)          self.freemenuitem.connect("activate",self.free_activate)
197          self.plotmenuitem.connect("activate",self.plot_activate)          self.plotmenuitem.connect("activate",self.plot_activate)
198          self.propsmenuitem.connect("activate",self.props_activate)          self.propsmenuitem.connect("activate",self.props_activate)
199            self.observemenuitem.connect("activate",self.observe_activate)
200    
201          if not self.treecontext:          if not self.treecontext:
202              raise RuntimeError("Couldn't create browsercontext")              raise RuntimeError("Couldn't create browsercontext")
203          #--------------------          #--------------------
# Line 464  class Browser: Line 476  class Browser:
476          _sp.run();          _sp.run();
477    
478      def on_add_observer_click(self,*args):      def on_add_observer_click(self,*args):
479          self.create_observer();          if len(self.observers) >= 1:
480                self.reporter.reportError("Not supported: multiple observers")
481                return
482            self.observers.append(self.create_observer())
483    
484  #   --------------------------------------------  #   --------------------------------------------
485  #   MODULE LIST  #   MODULE LIST
# Line 828  class Browser: Line 843  class Browser:
843          _label = gtk.Label();          _label = gtk.Label();
844          _label.set_text(name)          _label.set_text(name)
845          self.maintabs.append_page(_xml.get_widget("observervbox"),_label);          self.maintabs.append_page(_xml.get_widget("observervbox"),_label);
846            self.observers.append(ObserverTab(_xml,name,self))
847                    
848  #   ------------------------------  #   ------------------------------
849  #   CONTEXT MENU  #   CONTEXT MENU
# Line 846  class Browser: Line 862  class Browser:
862                  _instance = self.otank[_path][1]                  _instance = self.otank[_path][1]
863                  if _instance.getType().isRefinedSolverVar():                  if _instance.getType().isRefinedSolverVar():
864                      _canpop = True;                      _canpop = True;
865                        self.observemenuitem.set_sensitive(True)
866                      if _instance.isFixed():                      if _instance.isFixed():
867                          self.fixmenuitem.set_sensitive(False)                          self.fixmenuitem.set_sensitive(False)
868                          self.freemenuitem.set_sensitive(True)                          self.freemenuitem.set_sensitive(True)
# Line 855  class Browser: Line 872  class Browser:
872                  elif _instance.isRelation():                  elif _instance.isRelation():
873                      _canpop = True;                      _canpop = True;
874                      self.propsmenuitem.set_sensitive(True)                                        self.propsmenuitem.set_sensitive(True)                  
                 else:  
                     self.fixmenuitem.set_sensitive(False)  
                     self.freemenuitem.set_sensitive(False)  
875    
876                  if _instance.isPlottable():                  if _instance.isPlottable():
877                      self.plotmenuitem.set_sensitive(True)                      self.plotmenuitem.set_sensitive(True)
# Line 923  class Browser: Line 937  class Browser:
937          else:          else:
938              self.reporter.reportWarning("props_activate not implemented")              self.reporter.reportWarning("props_activate not implemented")
939    
940                def observe_activate(self,widget):
941            _path,_col = self.treeview.get_cursor()
942            _instance = self.otank[_path][1]
943            if _instance.getType().isRefinedSolverVar():
944                print "OBSERVING",_instance.getName().toString()        
945                if len(self.observers) > 1:
946                    self.reporter.reportError("Not implemented: multiple observers")
947                    return
948                if len(self.observers) ==0:
949                    self.create_observer()
950                _observer = self.observers[0]
951                _observer.add_instance(_instance)
952                
953  #   ---------------------------------  #   ---------------------------------
954  #   WINDOW-LEVEL ACTIONS  #   WINDOW-LEVEL ACTIONS
955    

Legend:
Removed from v.245  
changed lines
  Added in v.246

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22