[Bio] / ModelEditor / ModelEditor Repository:
ViewVC logotype

Annotation of /ModelEditor/ModelEditor

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (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.1 try:
103 : efrank 1.7 #nb: making them auto registeres them in catalog
104 :    
105 :     df = KahDbDataFactory( ddf, ddft )
106 :     chem = KahChemDbDataFactory( dchem, dchemt )
107 :    
108 : efrank 1.1 except NotImplementedError:
109 :     pass
110 :    
111 :     return
112 :    
113 : efrank 1.7 #------------------------------------------------------------------------
114 :     def doInitialPlugins(self):
115 :     #------------------------------------------------------------------------
116 :    
117 :     cfg = self.configMgr.getSection( "ModelEditor" )
118 :    
119 :     pluginList = cfg.getStringList("PluginList")
120 :     for p in pluginList:
121 :     print "trying to get plugin named: ", p
122 :    
123 :     try:
124 :     self.mainMenuBar.doAddPlugIn( p )
125 :     except ImportError, e:
126 :     print "Could not import %s: %s" % (p, e)
127 :     except LookupError:
128 :     print "No register hook called 'register' found in plugin"
129 :    
130 :     return
131 :    
132 :     #------------------------------------------------------------------------
133 : efrank 1.1 def error( self, message):
134 : efrank 1.7 #------------------------------------------------------------------------
135 : efrank 1.1 dlg = wxMessageDialog(self, message, style=wxOK)
136 :     dlg.ShowModal()
137 :     dlg.Destroy()
138 :     return
139 :    
140 : efrank 1.4 #------------------------------------------------------------------------
141 :     def signalHandler(self, signum, frame):
142 :     #------------------------------------------------------------------------
143 :     """
144 :     signal handler for sigint, sigterm, and sigHUP to let us close down cleanly.
145 :     We need to disconnect from AG.
146 :     """
147 :    
148 :     print "ModelEditor:signalHandler: caught signal=", signum
149 :    
150 :     try:
151 :     theMgr = self.cat.meAGMgr
152 :     if (not theMgr == None):
153 :     theMgr.done()
154 :     except Exception, e:
155 :     print e
156 :    
157 :     self.mainMenuBar.exitApp(None)
158 :     return
159 :    
160 :    
161 : efrank 1.1 ########################################################################
162 :     if __name__ == "__main__":
163 :     app = MyApp(0)
164 :     app.MainLoop()
165 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3