[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.9, Thu Aug 7 19:14:27 2003 UTC revision 1.23, Thu Mar 25 00:49:56 2004 UTC
# Line 1  Line 1 
1  from wxPython.wx import *  from wxPython.wx import *
2  from FaST.BssFactory import BssFactory  from FaST.BssFactory import BssFactory
3  from FaST.WitFactory import WitFactory  from FaST.WitFactory import WitFactory
4    from FaST.SeedDataFactory import SeedDataFactory
5    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 Catalogpanel:
12    #    def __init__(self, parent):
13    #    def initCatEvents(self ):
14    #    def initCatData( self ):
15    #    def loadBssCatalog(self, bssItemId):
16    #    def loadWitCatalog(self, witItemId):
17    #    def loadSeedCatalog(self, witItemId):
18    #    def onLeftClick(self,treeEvent):
19    #    def onLoadBtnPress(self, event):
20    #    def bssLoader( self, bssCatEntry ):
21    #    def witOrgLoader(self,  orgName ):
22    #    def witPwyLoader(self,  pwyName ):
23    
 class CatalogWindow:  
24      #------------------------------------------------------------------------      #------------------------------------------------------------------------
25      def __init__(self, parent):      def __init__(self, parent):
26      #------------------------------------------------------------------------      #------------------------------------------------------------------------
27          self.parent = parent          self.parent = parent
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  
         EVT_BUTTON(self.parent, self.parent.loadbtn.GetId(),  
                    self.onLoadBtnPress)  
54          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,          EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,
55                               self.parent.catalog_treeId,                               self.parent.catalog_treeId,
56                               self.onLeftClick)                               self.onLeftClick)
57    
58            # Right click on List item for Seed will let you connect to
59            # another Seed server
60    
61            EVT_RIGHT_DOWN(self.parent.catalog_tree, self.onRightClickCatalogTree)
62    
63    
64            EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLeftDClick)
65    
66          return          return
67    
68      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 39  Line 74 
74                                                     "BioSimScratch" )                                                     "BioSimScratch" )
75          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,          witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
76                                                     "WIT3" )                                                     "WIT3" )
77            self.seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
78                                                       "Seed" )
79    
80          self.loadBssCatalog( bssItemId )          self.loadBssCatalog( bssItemId )
81          self.loadWitCatalog( witItemId )          self.loadWitCatalog( witItemId )
82    
83            localSeedServer        = "http://localhost/FIG/"
84    #        localSeedServer        = "http://float179.mcs.anl-external.org/FIG/"
85            self.loadSeedCatalog( localSeedServer)
86    
87          self.parent.catalog_tree.Expand( self.parent.catalogRootId)          self.parent.catalog_tree.Expand( self.parent.catalogRootId)
88          return          return
89    
90        #------------------------------------------------------------------
91        def setupSeedServerMenu(self):
92        #------------------------------------------------------------------
93            self.seedServerAddId = wxNewId()
94    
95            self.seedServerMenu.Append( self.seedServerAddId,
96                                          "Add Seed Server", "New seed server arg3" )
97            EVT_MENU(self.parent, self.seedServerAddId, self.doSeedServerAdd)
98    
99      #------------------------------------------------------------------------      #------------------------------------------------------------------------
100      def loadBssCatalog(self, bssItemId):      def loadBssCatalog(self, bssItemId):
101      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 78  Line 128 
128          return          return
129    
130      #------------------------------------------------------------------------      #------------------------------------------------------------------------
131        def loadSeedCatalog(self, seedServer ):
132        #------------------------------------------------------------------------
133            wxBeginBusyCursor()
134    
135            # The SeedDataFactory ctor is slow and actually reads a bunch of
136            # data from the server
137    
138            seedFactory   = SeedDataFactory( seedServer )
139    
140            # add it to the list in the catalog
141            try:
142                Catalog.instance().addFactory( seedFactory )
143            except:
144                self.parent.error("loadSeedCatalog: %s already in foundry list." % seedServer)
145                wxEndBusyCursor()
146                return
147    
148            # make an entry in the tree for it
149            #
150            newSeedItemId=self.parent.catalog_tree.AppendItem(self.seedItemId, seedServer )
151    
152            # jam in the data
153            #
154            orgList = seedFactory.listOrganisms( )
155            if ( orgList== None ):
156                orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId,
157                             "Could not get Org list from "+ seedServer )
158                wxEndBusyCursor()
159                return
160    
161            itemName="Spontaneous Reactions"
162            spontaneousRxItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, itemName)
163            self.parent.catalog_tree.SetPyData(spontaneousRxItemId,
164                                               (self.seedRecoElemLoader,
165                                               (seedFactory.getRecoElemSpontaneousRx, None) ))
166    
167    
168            orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, "Organisms" )
169            for org in orgList:
170                id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )
171                self.parent.catalog_tree.SetPyData(id, (self.seedRecoElemLoader,
172                                                       (seedFactory.getRecoElemByOrg, org) ))
173    
174    
175            wxEndBusyCursor()
176            return
177    
178        #------------------------------------------------------------------------
179      def onLeftClick(self,treeEvent):      def onLeftClick(self,treeEvent):
180      #------------------------------------------------------------------------      #------------------------------------------------------------------------
181          item = treeEvent.GetItem()          item = treeEvent.GetItem()
182    
183          catEntryTuple = self.parent.tree_ctr.GetPyData(item)          catEntryTuple = self.parent.tree_ctr.GetPyData(item)
184          if (catEntryTuple == None ):          if (catEntryTuple == None ):
185              return              return
# Line 89  Line 188 
188          return          return
189    
190      #------------------------------------------------------------------------      #------------------------------------------------------------------------
191      def onLoadBtnPress(self, event):      def onRightClickCatalogTree(self, event):
192        #------------------------------------------------------------------------
193    
194            goober = event.GetEventObject()
195            goober.PopupMenu(self.seedServerMenu, event.GetPosition())
196    
197            return
198    
199        #------------------------------------------------------------------------
200        def doSeedServerAdd(self, event):
201        #------------------------------------------------------------------------
202            prompt = "Name of Seed server"
203            dlg = wxTextEntryDialog(self.parent, message=prompt, style=wxOK)
204    
205            if ( dlg.ShowModal() == wxID_OK):
206                serverName = dlg.GetValue()
207                if ( serverName=="" ): return
208                dlg.Destroy()
209            else:
210                #didn't get a kid name
211                dlg.Destroy()
212                return
213    
214            self.loadSeedCatalog( serverName )
215    
216            return
217    
218    
219        #------------------------------------------------------------------------
220        def onLeftDClick(self, event):
221      #------------------------------------------------------------------------      #------------------------------------------------------------------------
222          if ( self.selected == None ):          if ( self.selected == None ):
223              print "No selection in onLoadBtnPress"              print "No selection in onLoadBtnPress"
# Line 122  Line 250 
250          return          return
251    
252      #------------------------------------------------------------------------      #------------------------------------------------------------------------
253        def seedRecoElemLoader(self,  argList ):
254        #------------------------------------------------------------------------
255            wxBeginBusyCursor()
256    
257            (theSeedFactoryMethod, org) = argList
258            top = apply( theSeedFactoryMethod, [org] )
259            # top=self.__seedDataFactory.getRecoElemByOrg( org )
260            self.to_re.AddRecoElemTree(self.parent.rootId, top)
261    
262            wxEndBusyCursor()
263            return
264    
265        #------------------------------------------------------------------------
266      def witPwyLoader(self,  pwyName ):      def witPwyLoader(self,  pwyName ):
267      #------------------------------------------------------------------------      #------------------------------------------------------------------------
268          wxBeginBusyCursor()          wxBeginBusyCursor()

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.23

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3