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

View of /PyGUI/Catalogpanel.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (download) (as text) (annotate)
Fri Oct 17 20:25:57 2003 UTC (16 years, 2 months ago) by efrank
Branch: MAIN
Changes since 1.11: +43 -0 lines
Add catalog for reading from FIG/Seed
Requires updated FaST/

from wxPython.wx import *
from FaST.BssFactory import BssFactory
from FaST.WitFactory import WitFactory
from FaST.SeedDataFactory import SeedDataFactory
from FaST.SeedDataFactory import SeedOrganism
from FaST.RecoElem import RecoElem
from RecoElempanel import RecoElemWindow



class CatalogWindow:
#    def __init__(self, parent):
#    def initCatEvents(self ):
#    def initCatData( self ):
#    def loadBssCatalog(self, bssItemId):
#    def loadWitCatalog(self, witItemId):
#    def loadSeedCatalog(self, witItemId):
#    def onLeftClick(self,treeEvent):
#    def onLoadBtnPress(self, event):
#    def bssLoader( self, bssCatEntry ):
#    def witOrgLoader(self,  orgName ):
#    def witPwyLoader(self,  pwyName ):

    #------------------------------------------------------------------------
    def __init__(self, parent):
    #------------------------------------------------------------------------
        self.parent = parent
        self.seedServer = "http://cyano.cs.uchicago.edu/FIG/"
        self.to_re = parent.re 
        self.selected = None       #remember last selected catalog entry
                                   #..is used when LOAD button is hit.

        self.initCatEvents()
        self.initCatData()
        return

    
    #------------------------------------------------------------------------
    def initCatEvents(self ):
    #------------------------------------------------------------------------
        button1= self.parent.OK_button
        EVT_BUTTON(self.parent, self.parent.loadbtn.GetId(),
                   self.onLoadBtnPress)
        EVT_TREE_SEL_CHANGED(self.parent.catalog_tree,
                             self.parent.catalog_treeId,
                             self.onLeftClick)
        EVT_LEFT_DCLICK (self.parent.catalog_tree, self.onLeftDClick)

        return
        
    #------------------------------------------------------------------------
    def initCatData( self ):
    #------------------------------------------------------------------------
        self.parent.catalogRootId = self.parent.catalog_tree.AddRoot("Data Sources")

        bssItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
                                                   "BioSimScratch" )
        witItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
                                                   "WIT3" )
        seedItemId=self.parent.catalog_tree.AppendItem(self.parent.catalogRootId,
                                                   "Seed" )

        self.loadBssCatalog( bssItemId )
        self.loadWitCatalog( witItemId )
        self.loadSeedCatalog( seedItemId )

        self.parent.catalog_tree.Expand( self.parent.catalogRootId)
        return

    #------------------------------------------------------------------------
    def loadBssCatalog(self, bssItemId):
    #------------------------------------------------------------------------
        b=BssFactory()
        for catEntryTuple in b.getLsCat():
            id=self.parent.catalog_tree.AppendItem(bssItemId, catEntryTuple[0])
            self.parent.catalog_tree.SetPyData(id, (self.bssLoader, catEntryTuple) )

        return
        
    #------------------------------------------------------------------------
    def loadWitCatalog(self, witItemId):
    #------------------------------------------------------------------------
        w=WitFactory()

        pwyItemId=self.parent.catalog_tree.AppendItem(witItemId, "Pathways" )

        pwyList = w.listPathways( )
        for pwy in pwyList: 
            id=self.parent.catalog_tree.AppendItem(pwyItemId, pwy)
            self.parent.catalog_tree.SetPyData(id, (self.witPwyLoader,pwy) )

        orgItemId=self.parent.catalog_tree.AppendItem(witItemId, "Organisms" )

        orgList = w.listOrganisms( )
        for org in orgList: 
            id=self.parent.catalog_tree.AppendItem(orgItemId, org)
            self.parent.catalog_tree.SetPyData(id, (self.witOrgLoader, org ))

        return
        
    #------------------------------------------------------------------------
    def loadSeedCatalog(self, witItemId):
    #------------------------------------------------------------------------
        seed=SeedDataFactory( self.seedServer )

        orgItemId=self.parent.catalog_tree.AppendItem(witItemId, "Organisms" )

        orgList = seed.listOrganisms( )
        for org in orgList: 
            id=self.parent.catalog_tree.AppendItem(orgItemId, org.figOrgName )
            self.parent.catalog_tree.SetPyData(id, (self.seedOrgLoader, org ))

        return
        
    #------------------------------------------------------------------------
    def onLeftClick(self,treeEvent):
    #------------------------------------------------------------------------
        item = treeEvent.GetItem()
        
        catEntryTuple = self.parent.tree_ctr.GetPyData(item)
        if (catEntryTuple == None ):
            return
        self.selected = catEntryTuple

        return
    #------------------------------------------------------------------------
    def onLeftDClick(self,treeEvent):
    #------------------------------------------------------------------------
        self.onLoadBtnPress(treeEvent)
        
        pt = treeEvent.GetPosition()
        item = self.parent.tree_ctr.HitTest(pt)
        print item
        catEntryTuple = self.parent.tree_ctr.GetPyData(item)
        apply(catEntryTuple[0], [catEntryTuple[1]])
        return

        pt = treeEvent.GetPosition()

        item = self.parent.tree_ctr.HitTest(pt)
        
        print item
        catEntryTuple = self.parent.tree_ctr.GetPyData(item)
        #print catEntryTuple, "catEntryTuple"
        #self.selected = catEntryTuple

        #catEntryTuple = self.selected
        #apply(catEntryTuple[0], [catEntryTuple[1]])

        return
    

    #------------------------------------------------------------------------
    def onLoadBtnPress(self, event):
    #------------------------------------------------------------------------
        if ( self.selected == None ):
            print "No selection in onLoadBtnPress"
            return 

        catEntryTuple = self.selected
        apply( catEntryTuple[0], [catEntryTuple[1]] )

        return
    
    #------------------------------------------------------------------------
    def bssLoader( self, bssCatEntry ):
    #------------------------------------------------------------------------
        wxBeginBusyCursor()
        b=BssFactory()
        top= b.getRecoElemById( bssCatEntry[1] )
        self.to_re.AddRecoElemTree(self.parent.rootId, top)
        wxEndBusyCursor()

        return

    #------------------------------------------------------------------------
    def witOrgLoader(self,  orgName ):
    #------------------------------------------------------------------------
        wxBeginBusyCursor()
        w=WitFactory()
        top= w.getRxnByOrg( orgName )
        self.to_re.AddRecoElemTree(self.parent.rootId, top)
        wxEndBusyCursor()
        return

    #------------------------------------------------------------------------
    def seedOrgLoader(self,  org ):
    #------------------------------------------------------------------------
        wxBeginBusyCursor()
        print "seedOrgLoader getting (", org.figOrgId, " , ", org.figOrgName, ")"
        seed = SeedDataFactory( self.seedServer )
        top=seed.getRecoElemByOrg( org )
        self.to_re.AddRecoElemTree(self.parent.rootId, top)
        wxEndBusyCursor()
        return

    #------------------------------------------------------------------------
    def witPwyLoader(self,  pwyName ):
    #------------------------------------------------------------------------
        wxBeginBusyCursor()
        w=WitFactory()
        top= w.getRxnByPwy( pwyName )
        self.to_re.AddRecoElemTree(self.parent.rootId, top)
        wxEndBusyCursor()
        return

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3