Changeset 26bf293 in sasview for sansview/perspectives/fitting/old_modelpage.py
- Timestamp:
- Feb 2, 2009 5:28:06 PM (15 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- ca88b2e
- Parents:
- 2cf2b87
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/old_modelpage.py
rc80c06f r26bf293 4 4 import numpy 5 5 import copy 6 7 6 8 7 from sans.guicomm.events import StatusEvent … … 25 24 return "%-5.3g" % value 26 25 27 26 28 27 class ModelPage(wx.ScrolledWindow): 29 28 """ … … 46 45 """ 47 46 #self.scroll = wx.ScrolledWindow(self) 48 49 47 self.manager = None 50 48 self.parent = parent 51 self.event_owner = None 52 # this panel does contain data .existing data allow a different drawing 53 #on set_model parameters 54 self.data=None 49 self.event_owner=None 55 50 #panel interface 56 51 self.vbox = wx.BoxSizer(wx.VERTICAL) 57 self.sizer10 = wx.GridBagSizer(5,5) 58 self.sizer9 = wx.GridBagSizer(5,5) 59 self.sizer8 = wx.GridBagSizer(5,5) 60 self.sizer7 = wx.GridBagSizer(5,5) 61 self.sizer6 = wx.GridBagSizer(5,5) 52 self.sizer3 = wx.GridBagSizer(5,5) 53 self.sizer1 = wx.GridBagSizer(5,5) 54 self.sizer2 = wx.GridBagSizer(5,5) 55 self.sizer4 = wx.GridBagSizer(5,5) 62 56 self.sizer5 = wx.GridBagSizer(5,5) 63 self.sizer4 = wx.GridBagSizer(5,5) 64 65 #model selection 66 self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 57 self.static_line_1 = wx.StaticLine(self, -1) 58 self.modelbox = wx.ComboBox(self, -1) 59 id = wx.NewId() 60 self.vbox.Add(self.sizer3) 61 self.vbox.Add(self.sizer1) 62 self.vbox.Add(self.sizer2) 63 self.vbox.Add(self.static_line_1, 0, wx.EXPAND, 0) 64 self.vbox.Add(self.sizer5) 67 65 self.vbox.Add(self.sizer4) 68 #model paramaters layer 69 self.vbox.Add(self.sizer5) 70 #polydispersion selected 71 self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 72 self.vbox.Add(self.sizer6) 73 #combox box for type of dispersion 74 self.vbox.Add(self.sizer7) 75 #dispersion parameters layer 76 self.vbox.Add(self.sizer8) 77 # plotting range 78 self.vbox.Add(self.sizer9) 79 #close layer 80 self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 81 self.vbox.Add(wx.StaticLine(self, -1), 0, wx.EXPAND, 0) 82 self.vbox.Add(self.sizer10) 83 84 85 #------------------ sizer 4 draw------------------------ 86 self.modelbox = wx.ComboBox(self, -1) 87 # preview selected model name 88 self.prevmodel_name=name 89 #print "model view prev_model",name 90 self.modelbox.SetValue(self.prevmodel_name) 91 #filling sizer2 66 67 id = wx.NewId() 68 self.btClose =wx.Button(self,id,'Close') 69 self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 70 self.btClose.SetToolTipString("Close page.") 71 ix = 1 72 iy = 1 73 self.sizer4.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ 74 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 75 ix += 1 76 self.sizer4.Add(wx.StaticText(self, -1, 'Max'),(iy, ix),(1,1),\ 77 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 78 ix += 1 79 self.sizer4.Add(wx.StaticText(self, -1, 'Npts'),(iy, ix),(1,1),\ 80 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 92 81 ix = 0 93 iy = 1 94 self.sizer4.Add(wx.StaticText(self,-1,'Model'),(iy,ix),(1,1)\ 95 , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 96 ix += 1 97 self.sizer4.Add(self.modelbox,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 98 ix += 1 99 id = wx.NewId() 100 self.model_view =wx.Button(self,id,'View 2D') 101 self.model_view.Bind(wx.EVT_BUTTON, self.onModel2D,id=id) 102 self.model_view.SetToolTipString("View model in 2D") 103 self.sizer4.Add(self.model_view,(iy,ix),(1,1),\ 104 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 105 self.model_view.SetFocus() 106 #----------sizer6------------------------------------------------- 107 self.disable_disp = wx.RadioButton(self, -1, 'No', (10, 10), style=wx.RB_GROUP) 108 self.enable_disp = wx.RadioButton(self, -1, 'Yes', (10, 30)) 109 self.Bind(wx.EVT_RADIOBUTTON, self.Set_DipersParam, id=self.disable_disp.GetId()) 110 self.Bind(wx.EVT_RADIOBUTTON, self.Set_DipersParam, id=self.enable_disp.GetId()) 111 ix= 0 112 iy=1 113 self.sizer6.Add(wx.StaticText(self,-1,'Polydispersity: '),(iy,ix),(1,1)\ 114 , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 115 ix += 1 116 self.sizer6.Add(self.enable_disp ,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 117 ix += 1 118 self.sizer6.Add(self.disable_disp ,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 119 ix =0 120 iy+=1 121 self.sizer6.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 122 123 124 #---------sizer 9 draw---------------------------------------- 125 126 ## Q range 82 iy += 1 83 self.sizer4.Add(wx.StaticText(self, -1, 'x range'),(iy, ix),(1,1),\ 84 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 85 ## Q range 127 86 self.qmin= 0.001 128 87 self.qmax= 0.1 129 88 self.num_points= 100 130 89 131 90 ix += 1 132 91 self.xmin = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 133 92 self.xmin.SetValue(format_number(self.qmin)) … … 135 94 self.xmin.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 136 95 self.xmin.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 137 self.xmin.Disable() 138 96 self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 97 98 99 ix += 1 139 100 self.xmax = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 140 101 self.xmax.SetValue(format_number(self.qmax)) … … 142 103 self.xmax.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 143 104 self.xmax.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 144 self. xmax.Disable()145 105 self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 106 ix += 1 146 107 self.npts = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 147 108 self.npts.SetValue(format_number(self.num_points)) … … 149 110 self.npts.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 150 111 self.npts.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 151 self.npts.Disable() 152 ix = 0 153 iy = 1 154 self.sizer9.Add(wx.StaticText(self, -1, 'Plotting Range'),(iy, ix),(1,1),\ 155 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 156 ix += 1 157 self.sizer9.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ 158 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 159 ix += 1 160 self.sizer9.Add(wx.StaticText(self, -1, 'Max'),(iy, ix),(1,1),\ 161 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 162 ix += 1 163 self.sizer9.Add(wx.StaticText(self, -1, 'Npts'),(iy, ix),(1,1),\ 164 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 112 113 self.sizer4.Add(self.npts,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 165 114 ix = 0 166 115 iy += 1 167 self.sizer9.Add(wx.StaticText(self, -1, 'x range'),(iy, ix),(1,1),\ 168 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 169 ix += 1 170 self.sizer9.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 171 ix += 1 172 self.sizer9.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 173 ix += 1 174 self.sizer9.Add(self.npts,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 175 176 ix =0 177 iy+=1 178 self.sizer9.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 179 #----------sizer 10 draw------------------------------------------------------ 116 self.sizer4.Add((20,20),(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 117 ix +=3 118 self.sizer4.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 119 ix = 0 120 iy = 1 121 self.sizer3.Add(wx.StaticText(self,-1,'Model'),(iy,ix),(1,1)\ 122 , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 123 ix += 1 124 self.sizer3.Add(self.modelbox,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 125 #ix = 0 126 #iy += 1 127 ix += 1 180 128 id = wx.NewId() 181 self.btClose =wx.Button(self,id,'Close') 182 self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 183 self.btClose.SetToolTipString("Close page.") 184 185 ix= 3 186 iy= 1 187 self.sizer10.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 188 ix +=1 189 self.sizer10.Add( self.btClose,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 190 ix =0 191 iy+=1 192 self.sizer10.Add((20,20),(iy,ix),(1,1),wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 193 129 self.model_view =wx.Button(self,id,'View 2D') 130 self.model_view.Bind(wx.EVT_BUTTON, self.onModel2D,id=id) 131 self.model_view.SetToolTipString("View model in 2D") 132 self.sizer3.Add(self.model_view,(iy,ix),(1,1),\ 133 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 194 134 # contains link between model ,all its parameters, and panel organization 195 135 self.parameters=[] 196 self.fixed_param=[]197 136 #contains link between a model and selected parameters to fit 198 137 self.param_toFit=[] 199 138 # model on which the fit would be performed 200 self.model=None 139 self.model=model 140 try: 141 #print"init modelpage",model.name 142 self.set_panel(model) 143 except: 144 raise 145 # preview selected model name 146 self.prevmodel_name=name 147 #print "model view prev_model",name 148 self.modelbox.SetValue(self.prevmodel_name) 149 # flag to check if the user has selected a new model in the combox box 150 self.model_hasChanged=False 201 151 #dictionary of model name and model class 202 152 self.model_list_box={} 203 153 204 # # Q range205 self. qmin= 0.001206 self.qmax= 0.1207 154 #enable model 2D draw 155 self.enable2D= False 156 # Data1D to make a deep comparison between 2 Data1D for checking data 157 #change 208 158 self.vbox.Layout() 209 159 self.vbox.Fit(self) 160 210 161 self.SetSizer(self.vbox) 211 162 self.SetScrollbars(20,20,55,40) 212 163 213 164 self.Centre() 214 self.Layout() 215 self.GrandParent.GetSizer().Layout() 165 166 def set_range(self, qmin, qmax, npts): 167 """ 168 Set the range for the plotted models 169 @param qmin: minimum Q 170 @param qmax: maximum Q 171 @param npts: number of Q bins 172 """ 173 # Set the data members 174 self.qmin = qmin 175 self.qmax = qmax 176 self.num_points = npts 177 178 # Set the controls 179 self.xmin.SetValue(format_number(self.qmin)) 180 self.xmax.SetValue(format_number(self.qmax)) 181 self.npts.SetValue(format_number(self.num_points)) 182 183 def onClose(self,event): 184 """ close the page associated with this panel""" 185 self.GrandParent.onClose() 216 186 217 187 def set_owner(self,owner): … … 228 198 @param manager: instance of plugin fitting 229 199 """ 230 self.manager = manager 231 200 self.manager = manager 201 202 def onModel2D(self, event): 203 """ 204 call manager to plot model in 2D 205 """ 206 # If the 2D display is not currently enabled, plot the model in 2D 207 # and set the enable2D flag. 208 if self.enable2D==False: 209 self.enable2D=True 210 self._draw_model() 211 212 else: 213 print "enable is true:",self.enable2D 214 #self.manager.parent. show_panel(147) 215 self.manager.show_panel2D( id=None ) 216 #self.manager.menu1.Append(event_id, new_panel.window_caption, 217 # "Show %s plot panel" % new_panel.window_caption) 218 232 219 def populate_box(self, dict): 233 220 """ … … 243 230 name = item.name 244 231 list_name.append(name) 245 list_name.sort() 246 232 list_name.sort() 247 233 for name in list_name: 248 234 self.modelbox.Insert(name,int(id)) … … 250 236 wx.EVT_COMBOBOX(self.modelbox,-1, self._on_select_model) 251 237 return 0 252 253 254 def Set_DipersParam(self, event):255 if self.enable_disp.GetValue():256 self.set_panel_dispers()257 else:258 self.sizer7.Clear(True)259 self.sizer8.Clear(True)260 261 def set_range(self, qmin, qmax, npts):262 """263 Set the range for the plotted models264 @param qmin: minimum Q265 @param qmax: maximum Q266 @param npts: number of Q bins267 """268 # Set the data members269 self.qmin = qmin270 self.qmax = qmax271 self.num_points = npts272 273 # Set the controls274 self.xmin.SetValue(format_number(self.qmin))275 self.xmax.SetValue(format_number(self.qmax))276 self.npts.SetValue(format_number(self.num_points))277 def checkFitRange(self):278 """279 Check the validity of fitting range280 @note: xmin should always be less than xmax or else each control box281 background is colored in pink.282 """283 284 flag = True285 valueMin = self.xmin.GetValue()286 valueMax = self.xmax.GetValue()287 # Check for possible values entered288 #print "fitpage: checkfitrange:",valueMin,valueMax289 try:290 if (float(valueMax)> float(valueMin)):291 self.xmax.SetBackgroundColour(wx.WHITE)292 self.xmin.SetBackgroundColour(wx.WHITE)293 else:294 flag = False295 self.xmin.SetBackgroundColour("pink")296 self.xmax.SetBackgroundColour("pink")297 except:298 flag = False299 self.xmin.SetBackgroundColour("pink")300 self.xmax.SetBackgroundColour("pink")301 302 self.xmin.Refresh()303 self.xmax.Refresh()304 return flag305 306 307 308 def onClose(self,event):309 """ close the page associated with this panel"""310 self.GrandParent.onClose()311 312 313 314 def onModel2D(self, event):315 """316 call manager to plot model in 2D317 """318 # If the 2D display is not currently enabled, plot the model in 2D319 # and set the enable2D flag.320 if self.enable2D==False:321 self.enable2D=True322 self._draw_model()323 324 else:325 print "enable is true:",self.enable2D326 #self.manager.parent. show_panel(147)327 self.manager.show_panel2D( id=None )328 #self.manager.menu1.Append(event_id, new_panel.window_caption,329 # "Show %s plot panel" % new_panel.window_caption)330 331 238 332 239 def select_model(self, model, name): … … 353 260 post an event to its owner to draw an appropriate theory 354 261 """ 355 262 self.model_view.SetFocus() 356 263 for item in self.model_list_box.itervalues(): 357 264 name = item.__name__ … … 391 298 @param model: the model selected in combo box for fitting purpose 392 299 """ 300 301 self.sizer2.Clear(True) 302 self.sizer1.Clear(True) 393 303 self.sizer5.Clear(True) 394 304 self.parameters = [] … … 396 306 self.model = model 397 307 keys = self.model.getParamList() 398 #print "fitpage1D : dispersion list",self.model.getDispParamList()399 308 keys.sort() 400 ik=0 401 im=1 402 309 description=None 310 if hasattr(self.model,'description'): 311 description =model.description 312 disp_list=self.model.getDispParamList() 313 ip=0 314 iq=1 315 if len(disp_list)>0: 316 disp = wx.StaticText(self, -1, 'Dispersion') 317 self.sizer5.Add(disp,( iq, ip),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 318 ip += 1 319 values = wx.StaticText(self, -1, 'Values') 320 self.sizer5.Add(values,( iq, ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 321 322 disp_list.sort() 323 #print "went here",self.model.name,model.description 403 324 iy = 1 404 325 ix = 0 405 self.cb1 = wx.CheckBox(self, -1,"Select all", (10, 10)) 406 if self.data!=None: 407 wx.EVT_CHECKBOX(self, self.cb1.GetId(), self.select_all_param) 408 self.cb1.SetValue(False) 409 else: 410 self.cb1.Disable() 411 self.cb1.Hide() 412 413 self.sizer5.Add(self.cb1,(iy, ix),(1,1),\ 326 self.cb0 = wx.StaticText(self, -1,'Model Description:') 327 self.sizer1.Add(self.cb0,(iy, ix),(1,1),\ 328 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 329 iy += 1 330 331 self.cb01 = wx.StaticText(self, -1,str(description),style=wx.ALIGN_LEFT) 332 self.cb01.Wrap(400) 333 #self.cb01 = wx.StaticText(self, -1,str(description),(45, 25),style=wx.ALIGN_LEFT) 334 335 self.sizer1.Add(self.cb01,(iy, ix),(1,1),\ 336 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 337 ix = 0 338 iy = 1 339 self.cb1 = wx.StaticText(self, -1,'Parameters') 340 self.sizer2.Add(self.cb1,(iy, ix),(1,1),\ 414 341 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 415 342 ix +=1 416 343 self.text2_2 = wx.StaticText(self, -1, 'Values') 417 self.sizer 5.Add(self.text2_2,(iy, ix),(1,1),\344 self.sizer2.Add(self.text2_2,(iy, ix),(1,1),\ 418 345 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 419 ix +=2420 self.text2_3 = wx.StaticText(self, -1, 'Errors')421 self.sizer5.Add(self.text2_3,(iy, ix),(1,1),\422 wx.EXPAND|wx.ADJUST_MINSIZE, 0)423 self.text2_3.Hide()424 346 ix +=1 425 347 self.text2_4 = wx.StaticText(self, -1, 'Units') 426 self.sizer 5.Add(self.text2_4,(iy, ix),(1,1),\348 self.sizer2.Add(self.text2_4,(iy, ix),(1,1),\ 427 349 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 428 350 self.text2_4.Hide() 429 disp_list=self.model.getDispParamList()430 351 for item in keys: 431 352 if not item in disp_list: 432 353 iy += 1 433 354 ix = 0 434 435 cb = wx.CheckBox(self, -1, item, (10, 10)) 436 if self.data!=None: 437 cb.SetValue(False) 438 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 439 else: 440 cb.Disable() 441 self.sizer5.Add( cb,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 442 355 cb=wx.StaticText(self, -1, item) 356 self.sizer2.Add( cb,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 443 357 ix += 1 444 358 value= self.model.getParam(item) … … 446 360 ctl1.SetValue(str (format_number(value))) 447 361 ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 448 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 449 self.sizer5.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 362 ctl1.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 363 self.sizer2.Add(ctl1, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 364 ix +=1 450 365 451 ix += 1452 text2=wx.StaticText(self, -1, '+/-')453 self.sizer5.Add(text2,(iy, ix),(1,1),\454 wx.EXPAND|wx.ADJUST_MINSIZE, 0)455 text2.Hide()456 ix += 1457 ctl2 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER)458 self.sizer5.Add(ctl2, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)459 ctl2.Hide()460 ix +=1461 366 # Units 462 367 try: … … 464 369 except: 465 370 units = wx.StaticText(self, -1, "", style=wx.ALIGN_LEFT) 466 self.sizer5.Add(units, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 467 468 self.parameters.append([cb,ctl1,text2,ctl2]) 371 self.sizer2.Add(units, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 372 else: 373 ip = 0 374 iq += 1 375 cb=wx.StaticText(self, -1, item) 376 self.sizer5.Add( cb,( iq, ip),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 377 wx.EVT_CHECKBOX(self, cb.GetId(), self._on_select_model) 469 378 379 ip += 1 380 value= self.model.getParam(item) 381 ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 382 ctl1.SetValue(str (format_number(value))) 383 ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 384 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 385 self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 386 #save data 387 self.parameters.append([cb,ctl1]) 470 388 iy+=1 471 self.sizer 5.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)389 self.sizer2.Add((20,20),(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 472 390 473 391 #Display units text on panel … … 478 396 else: 479 397 self.text2_4.Hide() 480 #Disable or enable fit button481 482 if not (len(self.param_toFit ) >0):483 self.xmin.Disable()484 self.xmax.Disable()485 else:486 self.xmin.Enable()487 self.xmax.Enable()488 489 398 self.vbox.Layout() 490 399 self.SetScrollbars(20,20,55,40) 491 self.Layout()400 492 401 self.GrandParent.GetSizer().Layout() 493 494 402 495 def set_panel_dispers(self):496 self.sizer7.Clear(True)497 self.sizer8.Clear(True)498 disp_list=self.model.getDispParamList()499 ix=0500 iy=1501 if len(disp_list)>0:502 model_disp = wx.StaticText(self, -1, 'Model Disp')503 self.sizer7.Add(model_disp,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)504 ix += 1505 self.disp_box = wx.ComboBox(self, -1)506 self.sizer7.Add(self.disp_box,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)507 ix = 0508 iy = 1509 disp = wx.StaticText(self, -1, 'Dispersion')510 self.sizer8.Add(disp,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)511 ix += 1512 values = wx.StaticText(self, -1, 'Values')513 self.sizer8.Add(values,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)514 ix += 1515 npts = wx.StaticText(self, -1, 'Npts')516 self.sizer8.Add(npts,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)517 ix += 1518 nsigmas = wx.StaticText(self, -1, 'Nsigmas')519 self.sizer8.Add(nsigmas,( iy, ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)520 521 disp_list.sort()522 print disp_list,self.model.fixed523 for item in disp_list:524 if item in self.model.fixed:525 ix = 0526 iy += 1527 cb = wx.CheckBox(self, -1, item, (10, 10))528 if self.data !=None:529 cb.SetValue(False)530 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param)531 else:532 cb.Disable()533 self.sizer7.Add( cb,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)534 535 536 ix += 1537 value= self.model.getParam(item)538 ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER)539 ctl1.SetValue(str (format_number(value)))540 ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)541 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter)542 self.sizer7.Add(ctl1, (iy,ix),(1,1), wx.EXPAND)543 544 self.parameters.append([cb,ctl1])545 iy+= 1546 self.vbox.Layout()547 self.SetScrollbars(20,20,55,40)548 self.Layout()549 self.GrandParent.GetSizer().Layout()550 551 403 552 404 def _onparamEnter(self,event): … … 600 452 if name==None: 601 453 name= self.model.name 602 self.manager.draw_model(self.model, name, data=self.data,454 self.manager.draw_model(self.model, name, 603 455 qmin=self.qmin, qmax=self.qmax, 604 456 qstep= self.num_points, … … 610 462 enable2D=self.enable2D) 611 463 """ 612 def select_param(self,event): 613 pass 614 def select_all_param(self,event): 615 pass 616 617 464 465 466
Note: See TracChangeset
for help on using the changeset viewer.