[Bio] / ModelEditor / RunSpecieInfoDialog.py Repository:
ViewVC logotype

Annotation of /ModelEditor/RunSpecieInfoDialog.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : efrank 1.1 #-----------------------------------------------------------------------------
2 :     # Name: RunSpecieInfoDialog.py
3 :     #
4 :     # Purpose: Associated with Models are (or will be), "Runs" meaning
5 :     # a set of parameters needed to run a computation. SpecieInfo
6 :     # has info about species for a run- initi conc., balanced or not,
7 :     # etc. This panel lets you edit them.#
8 :     #
9 :     # History:
10 :     # 04Dec05efrank First version.
11 :     #
12 :     # RCS-ID: $Id: Model.py,v 1.4 2005/12/04 17:17:09 efrank Exp $
13 :     # Copyright: (c) 2004
14 :     # Licence: See COPYING.TXT
15 :     #-----------------------------------------------------------------------------
16 :    
17 :     from wxPython.wx import *
18 :     from wxPython.grid import *
19 :     from KahOM.RunSpeciesInfo import RunSpeciesInfo
20 :    
21 :     class RunSpecieInfoDialog(wxDialog):
22 :     #------------------------------------------------------------------------
23 :     def __init__(self, parent, ID, title, speciesInfo,
24 :     pos=wxDefaultPosition, size=wxDefaultSize,
25 :     style=wxDEFAULT_FRAME_STYLE, allow=0):
26 :     #------------------------------------------------------------------------
27 :     """
28 :     @type speciesInfo: KahOM.RunSpeciesInfo
29 :     """
30 :    
31 :     wxDialog.__init__(self, parent, ID, title, pos, size, style)
32 :    
33 :     self.parent = parent
34 :    
35 :     paramPanel = wxPanel(self, -1)
36 :    
37 :     self.paramGrid = wxGrid(paramPanel, -1)
38 :     self.paramGrid.CreateGrid(0, 5)
39 :     self.paramGrid.SetColLabelValue(0, "Species")
40 :     self.paramGrid.SetColLabelValue(1, "Type")
41 :     self.paramGrid.SetColLabelValue(2, "Init.Conc.")
42 :     self.paramGrid.SetColLabelValue(3, "Balanced")
43 :     self.paramGrid.SetColLabelValue(4, "Accum")
44 :     self.paramGrid.AutoSizeColumn(0)
45 :     self.paramGrid.AutoSizeColumn(1)
46 :     self.paramGrid.AutoSizeColumn(2)
47 :     self.paramGrid.AutoSizeColumn(3)
48 :     self.paramGrid.AutoSizeColumn(4)
49 :    
50 :    
51 :     attr = wxGridCellAttr()
52 :     attr.SetReadOnly(1)
53 :     attr2 = wxGridCellAttr()
54 :     attr2.SetReadOnly(1)
55 :    
56 :     self.paramGrid.SetColAttr(0, attr)
57 :     self.paramGrid.SetColAttr(1, attr)
58 :    
59 :     self.paramGrid.SetColAttr(3, attr2)
60 :     self.paramGrid.SetColFormatBool(3)
61 :    
62 :     i = 0
63 :     x = speciesInfo.keys()
64 :     x.sort()
65 :     for key in x:
66 :     self.paramGrid.AppendRows(numRows=1)
67 :     self.paramGrid.SetCellValue(i,0,key)
68 :     self.paramGrid.SetCellValue(i,1, "float")
69 :     initConc=speciesInfo.getInitConc(key)
70 :     if (None==initConc):
71 :     self.paramGrid.SetCellValue(i,2, "None")
72 :     else:
73 :     self.paramGrid.SetCellValue(i,2,str(initConc) )
74 :     #
75 :     self.paramGrid.SetCellValue(i,3,str(speciesInfo.getIsBal(key)))
76 :     self.paramGrid.SetCellValue(i,4,str(speciesInfo.getAccum(key)))
77 :     i = i + 1
78 :    
79 :     self.okDialogBtn = wxButton(paramPanel, wxID_OK, "OK")
80 :     self.cancelDialogBtn = wxButton(paramPanel, wxID_CANCEL, "Cancel")
81 :    
82 :     paramMainSizer = wxBoxSizer(wxVERTICAL)
83 :     dialogChoicesHSizer = wxBoxSizer(wxHORIZONTAL)
84 :    
85 :     dialogChoicesHSizer.Add (self.okDialogBtn)
86 :     dialogChoicesHSizer.Add (self.cancelDialogBtn)
87 :    
88 :     paramGridHSizer = wxBoxSizer(wxHORIZONTAL)
89 :     paramGridHSizer.Add(self.paramGrid, 1, wxEXPAND)
90 :    
91 :     paramMainSizer.Add(self.paramGrid, 1, wxEXPAND)
92 :     #paramMainSizer.Add(paramGridHSizer, 3, wxEXPAND)
93 :     paramMainSizer.Add((20,20), 0, wxEXPAND)
94 :     paramMainSizer.Add(dialogChoicesHSizer)
95 :    
96 :     paramPanel.SetSizer(paramMainSizer)
97 :     paramPanel.SetAutoLayout(true)
98 :    
99 :     EVT_BUTTON(self, self.cancelDialogBtn.GetId(), self.onDialogCancel)
100 :     EVT_BUTTON(self, self.okDialogBtn.GetId(), self.onDialogOK)
101 :     EVT_GRID_CELL_LEFT_CLICK(self, self.onSelectCell)
102 :    
103 :     return
104 :    
105 :     #------------------------------------------------------------------------
106 :     def onDialogCancel(self, evt):
107 :     #------------------------------------------------------------------------
108 :     self.EndModal(wxID_CANCEL)
109 :     return
110 :    
111 :     #------------------------------------------------------------------------
112 :     def onDialogOK(self, evt):
113 :     #------------------------------------------------------------------------
114 :     self.EndModal(wxID_OK)
115 :     return
116 :    
117 :     #------------------------------------------------------------------------
118 :     def DOOMonAddParam(self, evt):
119 :     #------------------------------------------------------------------------
120 :     """ should this exist??? """
121 :    
122 :     n = self.paramGrid.GetNumberRows()
123 :     self.paramGrid.AppendRows(numRows=1)
124 :     self.paramGrid.SetCellValue(n,0,self.paramNameBox.GetValue())
125 :     self.paramGrid.SetCellValue(n,1,self.paramTypeBox.GetValue())
126 :     self.paramGrid.SetCellValue(n,2,self.paramValBox.GetValue())
127 :     return
128 :    
129 :     #------------------------------------------------------------------------
130 :     def GetValue(self):
131 :     #------------------------------------------------------------------------
132 :     """
133 :     @rtype KahOM:RunSpeciesInfo
134 :    
135 :     Grope through values in the grid and shove into a RunSpeciesInfo
136 :     instance.
137 :     """
138 :    
139 :     rsi = RunSpeciesInfo()
140 :     for i in range(self.paramGrid.GetNumberRows()):
141 :     speciesName = self.paramGrid.GetCellValue(i,0).strip()
142 :     initConc = self.paramGrid.GetCellValue(i,2)
143 :     isBal = int( self.paramGrid.GetCellValue(i,3) )
144 :     accum = float( self.paramGrid.GetCellValue(i,4) )
145 :    
146 :     if ("NONE" == initConc.strip().upper() ):
147 :     initConc = None
148 :     else:
149 :     initConc = float( initConc )
150 :    
151 :     # defer to setInfo() for rest of arg checking and let it
152 :     # raise exceptions
153 :    
154 :     rsi.setInfo( speciesName, initConc, accum, isBal)
155 :    
156 :    
157 :     return rsi
158 :     #------------------------------------------------------------------------
159 :     def onSelectCell(self, evt):
160 :     #------------------------------------------------------------------------
161 :    
162 :     cellRow = evt.GetRow()
163 :     cellCol = evt.GetCol()
164 :     cellValue = self.paramGrid.GetCellValue(cellRow, cellCol)
165 :    
166 :     if (cellCol==3):
167 :     if (cellValue =='0'):
168 :     self.paramGrid.SetCellValue(cellRow,cellCol, '1')
169 :     else:
170 :     self.paramGrid.SetCellValue(cellRow,cellCol, '0')
171 :     else:
172 :     evt.Skip()
173 :    
174 :     return
175 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3