[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.21, Wed Feb 25 17:08:17 2004 UTC
# Line 4  Line 4 
4  from FaST.SeedDataFactory import SeedDataFactory  from FaST.SeedDataFactory import SeedDataFactory
5  from FaST.SeedDataFactory import SeedOrganism  from FaST.SeedDataFactory import SeedOrganism
6  from FaST.RecoElem import RecoElem  from FaST.RecoElem import RecoElem
7  from RecoElempanel import RecoElemWindow  from RecoElempanel import RecoElempanel
8    
9    
10    
11  class CatalogWindow:  class Catalogpanel:
12  #    def __init__(self, parent):  #    def __init__(self, parent):
13  #    def initCatEvents(self ):  #    def initCatEvents(self ):
14  #    def initCatData( self ):  #    def initCatData( self ):
# 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    
50      #------------------------------------------------------------------------      #------------------------------------------------------------------------
51      def initCatEvents(self ):      def initCatEvents(self ):
52      #------------------------------------------------------------------------      #------------------------------------------------------------------------
53          button1= self.parent.OK_button          #button1= self.parent.OK_button
54            button1= self.parent.loadbtn
55          EVT_BUTTON(self.parent, self.parent.loadbtn.GetId(),          EVT_BUTTON(self.parent, self.parent.loadbtn.GetId(),
56                     self.onLoadBtnPress)                     self.onLoadBtnPress)
57          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,
58                               self.parent.catalog_treeId,                               self.parent.catalog_treeId,
59                               self.onLeftClick)                               self.onLeftClick)
60          EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLeftDClick)  
61            # Right click on List item for Seed will let you connect to
62            # another Seed server
63    
64            EVT_RIGHT_DOWN(self.parent.catalog_tree, self.onRightClickCatalogTree)
65    
66    
67            EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLoadBtnPress)
68    
69          return          return
70    
# Line 59  Line 77 
77                                                     "BioSimScratch" )                                                     "BioSimScratch" )
78          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
79                                                     "WIT3" )                                                     "WIT3" )
80          seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,          self.seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
81                                                     "Seed" )                                                     "Seed" )
82    
83          self.loadBssCatalog( bssItemId )          self.loadBssCatalog( bssItemId )
84          self.loadWitCatalog( witItemId )          self.loadWitCatalog( witItemId )
         self.loadSeedCatalog( seedItemId )  
85    
86            localSeedServer        = "http://localhost/FIG/"
87    #        localSeedServer        = "http://float179.mcs.anl-external.org/FIG/"
88            self.loadSeedCatalog( localSeedServer)
89    
90          self.parent.catalog_tree.Expand( self.parent.catalogRootId)          self.parent.catalog_tree.Expand( self.parent.catalogRootId)
91          return          return
92    
93        #------------------------------------------------------------------
94        def setupSeedServerMenu(self):
95        #------------------------------------------------------------------
96            self.seedServerAddId = wxNewId()
97    
98            self.seedServerMenu.Append( self.seedServerAddId,
99                                          "Add Seed Server", "New seed server arg3" )
100            EVT_MENU(self.parent, self.seedServerAddId, self.doSeedServerAdd)
101    
102      #------------------------------------------------------------------------      #------------------------------------------------------------------------
103      def loadBssCatalog(self, bssItemId):      def loadBssCatalog(self, bssItemId):
104      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 102  Line 131 
131          return          return
132    
133      #------------------------------------------------------------------------      #------------------------------------------------------------------------
134      def loadSeedCatalog(self, seedItemId):      def loadSeedCatalog(self, seedServer ):
135      #------------------------------------------------------------------------      #------------------------------------------------------------------------
136            wxBeginBusyCursor()
137    
138            # The SeedDataFactory ctor is slow and actually reads a bunch of
139            # data from the server
140    
141            seedFactory   = SeedDataFactory( seedServer )
142    
143          orgList = self.__seedDataFactory.listOrganisms( )          # add it to the list in the catalog
144            try:
145                self.parent.factoryMgr.addFactory( seedServer, seedFactory )
146            except:
147                self.parent.error("loadSeedCatalog: %s already in foundry list." % seedServer)
148                wxEndBusyCursor()
149                return
150    
151            # make an entry in the tree for it
152            #
153            newSeedItemId=self.parent.catalog_tree.AppendItem(self.seedItemId, seedServer )
154    
155            # jam in the data
156            #
157            orgList = seedFactory.listOrganisms( )
158          if ( orgList== None ):          if ( orgList== None ):
159              orgItemId=self.parent.catalog_tree.AppendItem(seedItemId,              orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId,
160                           "Could not get Org list from "+ self.seedServer )                           "Could not get Org list from "+ seedServer )
161                wxEndBusyCursor()
162              return              return
163    
164          orgItemId=self.parent.catalog_tree.AppendItem(seedItemId, "Organisms" )          itemName="Spontaneous Reactions"
165            spontaneousRxItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, itemName)
166            self.parent.catalog_tree.SetPyData(spontaneousRxItemId,
167                                               (self.seedRecoElemLoader,
168                                               (seedFactory.getRecoElemSpontaneousRx, None) ))
169    
170    
171            orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, "Organisms" )
172          for org in orgList:          for org in orgList:
173              id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )              id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )
174              self.parent.catalog_tree.SetPyData(id, (self.seedOrgLoader, org ))              self.parent.catalog_tree.SetPyData(id, (self.seedRecoElemLoader,
175                                                       (seedFactory.getRecoElemByOrg, org) ))
176    
177    
178            wxEndBusyCursor()
179          return          return
180    
181      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 129  Line 189 
189          self.selected = catEntryTuple          self.selected = catEntryTuple
190    
191          return          return
192    
193        #------------------------------------------------------------------------
194        def onRightClickCatalogTree(self, event):
195        #------------------------------------------------------------------------
196    
197            goober = event.GetEventObject()
198            goober.PopupMenu(self.seedServerMenu, event.GetPosition())
199    
200            return
201    
202        #------------------------------------------------------------------------
203        def doSeedServerAdd(self, event):
204        #------------------------------------------------------------------------
205            prompt = "Name of Seed server"
206            dlg = wxTextEntryDialog(self.parent, message=prompt, style=wxOK)
207    
208            if ( dlg.ShowModal() == wxID_OK):
209                serverName = dlg.GetValue()
210                if ( serverName=="" ): return
211                dlg.Destroy()
212            else:
213                #didn't get a kid name
214                dlg.Destroy()
215                return
216    
217            self.loadSeedCatalog( serverName )
218    
219            return
220    
221      #------------------------------------------------------------------------      #------------------------------------------------------------------------
222      def onLeftDClick(self,treeEvent):      def onLeftDClick(self,treeEvent):
223      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 138  Line 227 
227          item = self.parent.tree_ctr.HitTest(pt)          item = self.parent.tree_ctr.HitTest(pt)
228          print item          print item
229          catEntryTuple = self.parent.tree_ctr.GetPyData(item)          catEntryTuple = self.parent.tree_ctr.GetPyData(item)
230          apply(catEntryTuple[0], [catEntryTuple[1]])          apply(catEntryTuple[0], catEntryTuple[1])
231          return          return
232    
233          pt = treeEvent.GetPosition()          pt = treeEvent.GetPosition()
# Line 190  Line 279 
279          return          return
280    
281      #------------------------------------------------------------------------      #------------------------------------------------------------------------
282      def seedOrgLoader(self,  org ):      def seedRecoElemLoader(self,  argList ):
283      #------------------------------------------------------------------------      #------------------------------------------------------------------------
284          wxBeginBusyCursor()          wxBeginBusyCursor()
285    
286          top=self.__seedDataFactory.getRecoElemByOrg( org )          (theSeedFactoryMethod, org) = argList
287            top = apply( theSeedFactoryMethod, [org] )
288            # top=self.__seedDataFactory.getRecoElemByOrg( org )
289          self.to_re.AddRecoElemTree(self.parent.rootId, top)          self.to_re.AddRecoElemTree(self.parent.rootId, top)
290    
291          wxEndBusyCursor()          wxEndBusyCursor()
292          return          return
293    

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3