[Bio] / PyGUI / Catalogpanel.py Repository:
ViewVC logotype

Diff of /PyGUI/Catalogpanel.py

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

revision 1.13, Wed Nov 5 02:28:44 2003 UTC revision 1.20, Fri Dec 19 15:46:52 2003 UTC
# Line 25  Line 25 
25      def __init__(self, parent):      def __init__(self, parent):
26      #------------------------------------------------------------------------      #------------------------------------------------------------------------
27          self.parent            = parent          self.parent            = parent
         self.seedServer        = "http://cyano.cs.uchicago.edu/FIG/"  
         self.__seedDataFactory = SeedDataFactory( self.seedServer )  
28    
29          self.to_re    = parent.re          self.to_re    = parent.re
30          self.selected = None       #remember last selected catalog entry          self.selected = None       #remember last selected catalog entry
31                                     #..is used when LOAD button is hit.                                     #..is used when LOAD button is hit.
32    
33            # seedItemId is the wxPython id for the "Seed" node
34            # in the catalog tree under which all specific Seed servers
35            # are listed
36    
37            self.seedItemId        = None
38    
39          self.initCatEvents()          self.initCatEvents()
40          self.initCatData()          self.initCatData()
41    
42    
43            self.seedServerMenu = wxMenu()
44            self.seedServerAddId = wxNewId()
45            self.setupSeedServerMenu()
46    
47          return          return
48    
49    
# Line 46  Line 56 
56          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,
57                               self.parent.catalog_treeId,                               self.parent.catalog_treeId,
58                               self.onLeftClick)                               self.onLeftClick)
59          EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLeftDClick)  
60            # Right click on List item for Seed will let you connect to
61            # another Seed server
62    
63            EVT_RIGHT_DOWN(self.parent.catalog_tree, self.onRightClickCatalogTree)
64    
65    
66            EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLoadBtnPress)
67    
68          return          return
69    
# Line 59  Line 76 
76                                                     "BioSimScratch" )                                                     "BioSimScratch" )
77          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
78                                                     "WIT3" )                                                     "WIT3" )
79          seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,          self.seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
80                                                     "Seed" )                                                     "Seed" )
81    
82          self.loadBssCatalog( bssItemId )          self.loadBssCatalog( bssItemId )
83          self.loadWitCatalog( witItemId )          self.loadWitCatalog( witItemId )
         self.loadSeedCatalog( seedItemId )  
84    
85            localSeedServer        = "http://localhost/FIG/"
86    #        localSeedServer        = "http://float179.mcs.anl-external.org/FIG/"
87            self.loadSeedCatalog( localSeedServer)
88    
89          self.parent.catalog_tree.Expand( self.parent.catalogRootId)          self.parent.catalog_tree.Expand( self.parent.catalogRootId)
90          return          return
91    
92        #------------------------------------------------------------------
93        def setupSeedServerMenu(self):
94        #------------------------------------------------------------------
95            self.seedServerAddId = wxNewId()
96    
97            self.seedServerMenu.Append( self.seedServerAddId,
98                                          "Add Seed Server", "New seed server arg3" )
99            EVT_MENU(self.parent, self.seedServerAddId, self.doSeedServerAdd)
100    
101      #------------------------------------------------------------------------      #------------------------------------------------------------------------
102      def loadBssCatalog(self, bssItemId):      def loadBssCatalog(self, bssItemId):
103      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 102  Line 130 
130          return          return
131    
132      #------------------------------------------------------------------------      #------------------------------------------------------------------------
133      def loadSeedCatalog(self, seedItemId):      def loadSeedCatalog(self, seedServer ):
134      #------------------------------------------------------------------------      #------------------------------------------------------------------------
135            wxBeginBusyCursor()
136    
137            # The SeedDataFactory ctor is slow and actually reads a bunch of
138            # data from the server
139    
140            seedFactory   = SeedDataFactory( seedServer )
141    
142          orgList = self.__seedDataFactory.listOrganisms( )          # add it to the list in the catalog
143            try:
144                self.parent.factoryMgr.addFactory( seedServer, seedFactory )
145            except:
146                self.parent.error("loadSeedCatalog: %s already in foundry list." % seedServer)
147                wxEndBusyCursor()
148                return
149    
150            # make an entry in the tree for it
151            #
152            newSeedItemId=self.parent.catalog_tree.AppendItem(self.seedItemId, seedServer )
153    
154            # jam in the data
155            #
156            orgList = seedFactory.listOrganisms( )
157          if ( orgList== None ):          if ( orgList== None ):
158              orgItemId=self.parent.catalog_tree.AppendItem(seedItemId,              orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId,
159                           "Could not get Org list from "+ self.seedServer )                           "Could not get Org list from "+ seedServer )
160                wxEndBusyCursor()
161              return              return
162    
163          orgItemId=self.parent.catalog_tree.AppendItem(seedItemId, "Organisms" )          itemName="Spontaneous Reactions"
164            spontaneousRxItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, itemName)
165            self.parent.catalog_tree.SetPyData(spontaneousRxItemId,
166                                               (self.seedRecoElemLoader,
167                                               (seedFactory.getRecoElemSpontaneousRx, None) ))
168    
169    
170            orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, "Organisms" )
171          for org in orgList:          for org in orgList:
172              id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )              id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )
173              self.parent.catalog_tree.SetPyData(id, (self.seedOrgLoader, org ))              self.parent.catalog_tree.SetPyData(id, (self.seedRecoElemLoader,
174                                                       (seedFactory.getRecoElemByOrg, org) ))
175    
176    
177            wxEndBusyCursor()
178          return          return
179    
180      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 129  Line 188 
188          self.selected = catEntryTuple          self.selected = catEntryTuple
189    
190          return          return
191    
192        #------------------------------------------------------------------------
193        def onRightClickCatalogTree(self, event):
194        #------------------------------------------------------------------------
195    
196            goober = event.GetEventObject()
197            goober.PopupMenu(self.seedServerMenu, event.GetPosition())
198    
199            return
200    
201        #------------------------------------------------------------------------
202        def doSeedServerAdd(self, event):
203        #------------------------------------------------------------------------
204            prompt = "Name of Seed server"
205            dlg = wxTextEntryDialog(self.parent, message=prompt, style=wxOK)
206    
207            if ( dlg.ShowModal() == wxID_OK):
208                serverName = dlg.GetValue()
209                if ( serverName=="" ): return
210                dlg.Destroy()
211            else:
212                #didn't get a kid name
213                dlg.Destroy()
214                return
215    
216            self.loadSeedCatalog( serverName )
217    
218            return
219    
220      #------------------------------------------------------------------------      #------------------------------------------------------------------------
221      def onLeftDClick(self,treeEvent):      def onLeftDClick(self,treeEvent):
222      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 138  Line 226 
226          item = self.parent.tree_ctr.HitTest(pt)          item = self.parent.tree_ctr.HitTest(pt)
227          print item          print item
228          catEntryTuple = self.parent.tree_ctr.GetPyData(item)          catEntryTuple = self.parent.tree_ctr.GetPyData(item)
229          apply(catEntryTuple[0], [catEntryTuple[1]])          apply(catEntryTuple[0], catEntryTuple[1])
230          return          return
231    
232          pt = treeEvent.GetPosition()          pt = treeEvent.GetPosition()
# Line 190  Line 278 
278          return          return
279    
280      #------------------------------------------------------------------------      #------------------------------------------------------------------------
281      def seedOrgLoader(self,  org ):      def seedRecoElemLoader(self,  argList ):
282      #------------------------------------------------------------------------      #------------------------------------------------------------------------
283          wxBeginBusyCursor()          wxBeginBusyCursor()
284    
285          top=self.__seedDataFactory.getRecoElemByOrg( org )          (theSeedFactoryMethod, org) = argList
286            top = apply( theSeedFactoryMethod, [org] )
287            # top=self.__seedDataFactory.getRecoElemByOrg( org )
288          self.to_re.AddRecoElemTree(self.parent.rootId, top)          self.to_re.AddRecoElemTree(self.parent.rootId, top)
289    
290          wxEndBusyCursor()          wxEndBusyCursor()
291          return          return
292    

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.20

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3