[Bio] / ModelEditor / ModelEditor Repository:
ViewVC logotype

Annotation of /ModelEditor/ModelEditor

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (view) (download)

1 : efrank 1.1 #!/usr/bin/env python
2 :    
3 : efrank 1.4 #import signal
4 : efrank 1.1 from wxPython.wx import *
5 :    
6 : efrank 1.7 from KahApp.KahConfigMgr import KahConfigMgr
7 : efrank 1.1 from ModelEditor.MainLayout import MainLayout
8 :     from ModelEditor.RXpanel import RXPanel
9 :     from ModelEditor.RecoElempanel import RecoElempanel
10 :     from ModelEditor.Catalogpanel import Catalogpanel
11 :     from ModelEditor.MetabolitePanel import MetabolitePanel
12 :     from ModelEditor.EnzymeWindow import EnzymeWindow
13 :     from ModelEditor.HelpPanel import HelpPanel
14 :     from ModelEditor.FontManager import FontManager
15 :     from ModelEditor.MainMenuBar import MainMenuBar
16 : efrank 1.7 from KahChemDb.KahChemDbDataFactory import KahChemDbDataFactory
17 :     from KahDataServices.KahDbDataFactory import KahDbDataFactory
18 : efrank 1.1 from CatalogServices.Catalog import Catalog
19 :    
20 :     #need to change panel to Panel. lower case panel is already in cvs.
21 :    
22 :     from wxPython.grid import *
23 :    
24 :    
25 :     class MyApp(wxApp):
26 :     def OnInit(self):
27 :     frame = Gui(None, -1, "test")
28 :     frame.Show()
29 :     return 1
30 :    
31 :    
32 :     class Gui(MainLayout):
33 :    
34 :     def __init__(self, *args, **kwds):
35 :    
36 :     #self.factoryMgr = None
37 :     MainLayout.__init__(self, *args, **kwds)
38 :    
39 : efrank 1.7 self.configMgr = KahConfigMgr()
40 :     self.setupConfig()
41 :    
42 : efrank 1.1 self.rootId = None # root ID for recoelem tree. why here??
43 :     self.catalogRootId = None # root ID for catalog tree.
44 :     self.fontManager = FontManager(self)
45 :     self.mainMenuBar = MainMenuBar(self)
46 :     self.rx = RXPanel(self)
47 :     self.re = RecoElempanel(self)
48 :     self.cat = Catalogpanel(self)
49 :     self.met = MetabolitePanel(self)
50 :     self.enzyme = EnzymeWindow(self)
51 :     self.help = HelpPanel(self)
52 : efrank 1.2 self.meAGMgr = None #MeAGMgr instance to manage ag issues
53 : efrank 1.1
54 : efrank 1.3 EVT_CLOSE(self, self.mainMenuBar.exitApp)
55 :    
56 : efrank 1.4 #signal.signal(signal.SIGINT, self.signalHandler)
57 :     #signal.signal(signal.SIGTERM, self.signalHandler)
58 :     #signal.signal(signal.SIGHUP, self.signalHandler)
59 :    
60 : efrank 1.7 self.doDefaultDataFactories()
61 :     self.doInitialPlugins()
62 :    
63 :     return
64 :    
65 :     #------------------------------------------------------------------------
66 :     def getConfigMgr( self ):
67 :     #------------------------------------------------------------------------
68 :     return self.configMgr
69 :    
70 :     #------------------------------------------------------------------------
71 :     def setupConfig( self ):
72 :     #------------------------------------------------------------------------
73 :    
74 :     # Config ourselves. Unusual usage of configMgr.
75 :    
76 :     self.configMgr.newSection( "ModelEditor" )
77 :     cfg = self.configMgr.getSection( "ModelEditor" )
78 :    
79 :     cfg.regString( "DefaultDataFactory", "kahchoo/bss@db02" )
80 :     cfg.regString( "DefaultDataFactoryDbType", "oracle" )
81 :     cfg.regString( "DefaultChemDb", "pgsql:5432:kahdb:trust:inme" )
82 :     cfg.regString( "DefaultChemDbType", "postgres" )
83 :     cfg.regStringList( "PluginList", [] )
84 :    
85 :     # now load the config
86 :    
87 :     self.configMgr.loadConfigFile( "ModelEditor.cfg" )
88 :     self.configMgr.dump()
89 :     return
90 :    
91 :    
92 :     #------------------------------------------------------------------------
93 :     def doDefaultDataFactories(self):
94 :     #------------------------------------------------------------------------
95 :    
96 :     cfg = self.configMgr.getSection( "ModelEditor" )
97 :     ddf = cfg.getString("DefaultDataFactory")
98 :     ddft = cfg.getString( "DefaultDataFactoryDbType")
99 :     dchem = cfg.getString( "DefaultChemDb")
100 :     dchemt = cfg.getString( "DefaultChemDbType")
101 :    
102 : efrank 1.8 # nb: making these datafactories auto registeres them in catalog
103 : efrank 1.1 try:
104 : efrank 1.7 df = KahDbDataFactory( ddf, ddft )
105 : efrank 1.8 except NotImplementedError:
106 :     pass
107 :    
108 :     try:
109 : efrank 1.7 chem = KahChemDbDataFactory( dchem, dchemt )
110 : efrank 1.1 except NotImplementedError:
111 :     pass
112 :    
113 :     return
114 :    
115 : efrank 1.7 #------------------------------------------------------------------------
116 :     def doInitialPlugins(self):
117 :     #------------------------------------------------------------------------
118 :    
119 :     cfg = self.configMgr.getSection( "ModelEditor" )
120 :    
121 :     pluginList = cfg.getStringList("PluginList")
122 :     for p in pluginList:
123 :     print "trying to get plugin named: ", p
124 :    
125 :     try:
126 :     self.mainMenuBar.doAddPlugIn( p )
127 :     except ImportError, e:
128 :     print "Could not import %s: %s" % (p, e)
129 :     except LookupError:
130 :     print "No register hook called 'register' found in plugin"
131 :    
132 :     return
133 :    
134 :     #------------------------------------------------------------------------
135 : efrank 1.1 def error( self, message):
136 : efrank 1.7 #------------------------------------------------------------------------
137 : efrank 1.1 dlg = wxMessageDialog(self, message, style=wxOK)
138 :     dlg.ShowModal()
139 :     dlg.Destroy()
140 :     return
141 :    
142 : efrank 1.4 #------------------------------------------------------------------------
143 :     def signalHandler(self, signum, frame):
144 :     #------------------------------------------------------------------------
145 :     """
146 :     signal handler for sigint, sigterm, and sigHUP to let us close down cleanly.
147 :     We need to disconnect from AG.
148 :     """
149 :    
150 :     print "ModelEditor:signalHandler: caught signal=", signum
151 :    
152 :     try:
153 :     theMgr = self.cat.meAGMgr
154 :     if (not theMgr == None):
155 :     theMgr.done()
156 :     except Exception, e:
157 :     print e
158 :    
159 :     self.mainMenuBar.exitApp(None)
160 :     return
161 :    
162 :    
163 : efrank 1.1 ########################################################################
164 :     if __name__ == "__main__":
165 :     app = MyApp(0)
166 :     app.MainLoop()
167 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3