[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.15, Wed Nov 5 21:30:08 2003 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 RecoElemWindow
8    
9    
10    
11  class CatalogWindow:  class CatalogWindow:
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    
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    
# Line 28  Line 57 
57                               self.parent.catalog_treeId,                               self.parent.catalog_treeId,
58                               self.onLeftClick)                               self.onLeftClick)
59    
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            # doesn't work...
67            # EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLeftDClick)
68    
69          return          return
70    
71      #------------------------------------------------------------------------      #------------------------------------------------------------------------
# Line 39  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            self.seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
81                                                       "Seed" )
82    
83          self.loadBssCatalog( bssItemId )          self.loadBssCatalog( bssItemId )
84          self.loadWitCatalog( witItemId )          self.loadWitCatalog( witItemId )
85    
86            localSeedServer        = "http://localhost/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 78  Line 130 
130          return          return
131    
132      #------------------------------------------------------------------------      #------------------------------------------------------------------------
133        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            # make an entry in the tree for it
143            #
144            newSeedItemId=self.parent.catalog_tree.AppendItem(self.seedItemId, seedServer )
145    
146            # jam in the data
147            #
148            orgList = seedFactory.listOrganisms( )
149            if ( orgList== None ):
150                orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId,
151                             "Could not get Org list from "+ seedServer )
152                wxEndBusyCursor()
153                return
154    
155            orgItemId=self.parent.catalog_tree.AppendItem(newSeedItemId, "Organisms" )
156            for org in orgList:
157                id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )
158                self.parent.catalog_tree.SetPyData(id, (self.seedOrgLoader,
159                                                       (seedFactory.getRecoElemByOrg, org) ))
160    
161            wxEndBusyCursor()
162            return
163    
164        #------------------------------------------------------------------------
165      def onLeftClick(self,treeEvent):      def onLeftClick(self,treeEvent):
166      #------------------------------------------------------------------------      #------------------------------------------------------------------------
167          item = treeEvent.GetItem()          item = treeEvent.GetItem()
168    
169          catEntryTuple = self.parent.tree_ctr.GetPyData(item)          catEntryTuple = self.parent.tree_ctr.GetPyData(item)
170          if (catEntryTuple == None ):          if (catEntryTuple == None ):
171              return              return
# Line 89  Line 174 
174          return          return
175    
176      #------------------------------------------------------------------------      #------------------------------------------------------------------------
177        def onRightClickCatalogTree(self, event):
178        #------------------------------------------------------------------------
179    
180            goober = event.GetEventObject()
181            goober.PopupMenu(self.seedServerMenu, event.GetPosition())
182    
183            return
184    
185        #------------------------------------------------------------------------
186        def doSeedServerAdd(self, event):
187        #------------------------------------------------------------------------
188            prompt = "Name of Seed server"
189            dlg = wxTextEntryDialog(self.parent, message=prompt, style=wxOK)
190    
191            if ( dlg.ShowModal() == wxID_OK):
192                serverName = dlg.GetValue()
193                if ( serverName=="" ): return
194                dlg.Destroy()
195            else:
196                #didn't get a kid name
197                dlg.Destroy()
198                return
199    
200            self.loadSeedCatalog( serverName )
201    
202            return
203    
204        #------------------------------------------------------------------------
205        def onLeftDClick(self,treeEvent):
206        #------------------------------------------------------------------------
207            self.onLoadBtnPress(treeEvent)
208    
209            pt = treeEvent.GetPosition()
210            item = self.parent.tree_ctr.HitTest(pt)
211            print item
212            catEntryTuple = self.parent.tree_ctr.GetPyData(item)
213            apply(catEntryTuple[0], catEntryTuple[1])
214            return
215    
216            pt = treeEvent.GetPosition()
217    
218            item = self.parent.tree_ctr.HitTest(pt)
219    
220            print item
221            catEntryTuple = self.parent.tree_ctr.GetPyData(item)
222            #print catEntryTuple, "catEntryTuple"
223            #self.selected = catEntryTuple
224    
225            #catEntryTuple = self.selected
226            #apply(catEntryTuple[0], [catEntryTuple[1]])
227    
228            return
229    
230    
231        #------------------------------------------------------------------------
232      def onLoadBtnPress(self, event):      def onLoadBtnPress(self, event):
233      #------------------------------------------------------------------------      #------------------------------------------------------------------------
234          if ( self.selected == None ):          if ( self.selected == None ):
# Line 122  Line 262 
262          return          return
263    
264      #------------------------------------------------------------------------      #------------------------------------------------------------------------
265        def seedOrgLoader(self,  argList ):
266        #------------------------------------------------------------------------
267            wxBeginBusyCursor()
268    
269            (theSeedFactoryMethod, org) = argList
270            top = apply( theSeedFactoryMethod, [org] )
271            # top=self.__seedDataFactory.getRecoElemByOrg( org )
272            self.to_re.AddRecoElemTree(self.parent.rootId, top)
273    
274            wxEndBusyCursor()
275            return
276    
277        #------------------------------------------------------------------------
278      def witPwyLoader(self,  pwyName ):      def witPwyLoader(self,  pwyName ):
279      #------------------------------------------------------------------------      #------------------------------------------------------------------------
280          wxBeginBusyCursor()          wxBeginBusyCursor()

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3