Changeset 9d31a8b in sasview for sansview/perspectives/fitting/fitpage2D.py
- Timestamp:
- Oct 17, 2008 4:25:40 PM (16 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:
- d4f7262
- Parents:
- 49815a2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitpage2D.py
re1a310f r9d31a8b 39 39 40 40 41 def __init__(self, parent, *args, **kwargs):41 def __init__(self, parent,data, *args, **kwargs): 42 42 wx.Panel.__init__(self, parent, *args, **kwargs) 43 43 """ … … 54 54 self.sizer1 = wx.GridBagSizer(5,5) 55 55 self.DataSource = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 56 self.DataSource.SetValue(str(data.name)) 56 57 self.DataSource.SetToolTipString("name of data to fit") 57 58 self.modelbox = wx.ComboBox(self, -1) … … 83 84 ix += 1 84 85 self.sizer3.Add(self.modelbox,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 85 ix = 1 86 87 ix = 0 86 88 iy = 1 89 #set maximum range for x in linear scale 90 self.text4_3 = wx.StaticText(self, -1, 'Maximum Data\n Range (Linear)', style=wx.ALIGN_LEFT) 91 self.sizer4.Add(self.text4_3,(iy,ix),(1,1),\ 92 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 93 ix += 1 87 94 self.text4_1 = wx.StaticText(self, -1, 'Min') 88 95 self.sizer4.Add(self.text4_1,(iy, ix),(1,1),\ … … 94 101 wx.EXPAND|wx.ADJUST_MINSIZE, 0) 95 102 #self.text4_2.Hide() 103 104 #self.text4_3.Hide() 96 105 ix = 0 97 106 iy += 1 98 #set maximum range for x in linear scale 99 self.text4_3 = wx.StaticText(self, -1, 'Maximum Data\n Range (Linear)', style=wx.ALIGN_LEFT) 100 self.sizer4.Add(self.text4_3,(iy,ix),(1,1),\ 101 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 102 #self.text4_3.Hide() 107 self.text4_4 = wx.StaticText(self, -1, 'x range') 108 self.sizer4.Add(self.text4_4,(iy, ix),(1,1),\ 109 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 103 110 ix += 1 104 111 self.xmin = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 112 self.xmin.SetValue(format_number(data.xmin)) 105 113 self.xmin.SetToolTipString("Minimun value of x in linear scale.") 106 114 self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) … … 110 118 ix += 2 111 119 self.xmax = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 120 self.xmax.SetValue(format_number(data.xmax)) 112 121 self.xmax.SetToolTipString("Maximum value of x in linear scale.") 113 122 self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) … … 116 125 117 126 iy +=1 118 ix = 1 127 ix = 0 128 self.text4_5 = wx.StaticText(self, -1, 'y range') 129 self.sizer4.Add(self.text4_5,(iy, ix),(1,1),\ 130 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 131 ix += 1 119 132 self.ymin = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 133 self.ymin.SetValue(format_number(data.ymin)) 120 134 self.ymin.SetToolTipString("Minimun value of y in linear scale.") 121 135 self.sizer4.Add(self.ymin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) … … 125 139 ix += 2 126 140 self.ymax = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 141 self.ymax.SetValue(format_number(data.ymax)) 127 142 self.ymax.SetToolTipString("Maximum value of y in linear scale.") 128 143 self.sizer4.Add(self.ymax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) … … 152 167 self.model=None 153 168 # preview selected model name 154 self.prevmodel_name=None 155 # flag to check if the user has selected a new model in the combox box 156 self.model_hasChanged=False 169 157 170 158 171 #dictionary of model name and model class 159 172 self.model_list_box={} 160 # comparison between 2 group_id for checking data changes 161 self.prev_group_id= None 162 163 self.data=None 173 174 self.data = data 164 175 self.vbox.Layout() 165 176 self.vbox.Fit(self) … … 183 194 self.manager = manager 184 195 185 186 def _DataNameEnter(self):187 """188 reset the panel when a new data is selected189 """190 if len(self.parameters )>0:191 for item in self.parameters:192 item[0].SetValue(False)193 wx.EVT_CHECKBOX(self, item[0].GetId(), self.select_param)194 item[2].Hide()195 item[3].Clear()196 item[3].Hide()197 self.xmax.Disable()198 self.xmin.Disable()199 self.text1_1.Hide()200 self.tcChi.Clear()201 self.vbox.Layout()202 self.GrandParent.GetSizer().Layout()203 204 205 196 206 197 def onClose(self,event): … … 214 205 """ 215 206 flag=self.checkFitRange() 207 res=[] 216 208 if flag== True: 217 209 try: 218 qmin = float(self.xmin.GetValue()) 219 qmax = float(self.xmax.GetValue()) 220 res=[] 221 if qmin==None and qmax==None: 222 for i in range(len(self.data.x_bins)): 223 res.append( (self.data.image[i][i]- fn([self.data.x_bins[i],self.data.y_bins[i]]))\ 224 /self.data.err_image[i][i] ) 225 else: 226 for i in range(len(self.data.x_bins)): 227 res.append( (self.data.image[i][i]- fn([self.data.x_bins[i],self.data.y_bins[i]]))\ 228 /self.data.err_image[i][i] ) 210 xmin = float(self.xmin.GetValue()) 211 xmax = float(self.xmax.GetValue()) 212 ymin = float(self.ymin.GetValue()) 213 ymax = float(self.ymax.GetValue()) 214 215 for i in range(len(self.data.y_bins)): 216 if self.data.y_bins[i]>= ymin and self.data.y_bins[i]<= ymax: 217 for j in range(len(self.data.x_bins)): 218 if self.data.x_bins[j]>= xmin and self.data.x_bins[j]<= xmax: 219 res.append( (self.data.image[j][i]- self.model.runXY(\ 220 [self.data.x_bins[j],self.data.y_bins[i]]))\ 221 /self.data.err_image[j][i] ) 229 222 sum=0 223 230 224 for item in res: 231 225 if numpy.isfinite(item): … … 335 329 return flag 336 330 337 338 339 def set_data_name(self,dataset): 340 """ 341 set data's name.if data has changed reset the panel and xmin and xmax 342 @param name: data 's name 343 @attention: still haven't find a better way to display Q name and unit 344 for xmin and xmax range sizer 345 """ 346 347 #if self.prev_group_id !=dataset.group_id: 348 # self._DataNameEnter() 349 self.data = dataset 350 self.prev_group_id=dataset.group_id 351 #Displaying Data information 352 self.DataSource.SetValue(str(dataset.name)) 353 self.text4_3.SetLabel(self.data._xaxis+"["+self.data._xunit+"]") 354 self.text4_1.Show() 355 self.text4_2.Show() 356 self.text4_3.Show() 357 358 self.xmin.SetValue(format_number(dataset.xmin)) 359 self.xmax.SetValue(format_number(dataset.xmax)) 360 self.ymin.SetValue(format_number(dataset.ymin)) 361 self.ymax.SetValue(format_number(dataset.ymax)) 362 if ((len(self.param_toFit ) >0) and self.DataSource.GetValue()and \ 363 self.modelbox.GetValue() and (self.model_hasChanged ==False)): 364 self.xmin.Enable() 365 self.xmax.Enable() 366 self.ymin.Enable() 367 self.ymax.Enable() 368 else: 369 self.xmin.Disable() 370 self.xmax.Disable() 371 self.ymin.Disable() 372 self.ymax.Disable() 373 374 self.vbox.Layout() 375 self.GrandParent.GetSizer().Layout() 376 377 378 def set_model_name(self,name): 379 """ 380 set model name. set also self.model_hasChanged to true is the model 381 type has changed or false if it didn't 382 @param name: model 's name 383 """ 384 self.model_hasChanged=False 385 if (name != self.prevmodel_name): 386 self.model_hasChanged=True 387 self.tcChi.Clear() 388 #self.modelbox.SetValue(str(name)) 389 self.prevmodel_name=self.modelbox.GetValue() 390 391 331 392 332 def get_model_box(self): 393 333 """ return reference to combox box self.model""" … … 540 480 list= [item[0],item[1],item[2],item[3]] 541 481 self.param_toFit.append(list ) 542 if (self.modelbox.GetValue() and self.DataSource.GetValue()):543 544 545 546 547 548 549 550 551 552 482 483 if not (len(self.param_toFit ) >0): 484 self.xmin.Disable() 485 self.xmax.Disable() 486 self.ymin.Disable() 487 self.ymax.Disable() 488 else: 489 self.xmin.Enable() 490 self.xmax.Enable() 491 self.ymin.Enable() 492 self.ymax.Enable() 553 493 else: 554 494 for item in self.parameters: … … 579 519 else: 580 520 self.cb1.SetValue(False) 581 if (self.modelbox.GetValue() and self.DataSource.GetValue()): 582 if not (len(self.param_toFit ) >0): 583 self.xmin.Disable() 584 self.xmax.Disable() 585 self.ymin.Disable() 586 self.ymax.Disable() 587 else: 588 self.xmin.Enable() 589 self.xmax.Enable() 590 self.ymin.Enable() 591 self.ymax.Enable() 592 else: 521 522 if not (len(self.param_toFit ) >0): 593 523 self.xmin.Disable() 594 524 self.xmax.Disable() 595 525 self.ymin.Disable() 596 526 self.ymax.Disable() 527 else: 528 self.xmin.Enable() 529 self.xmax.Enable() 530 self.ymin.Enable() 531 self.ymax.Enable() 532 597 533 598 534
Note: See TracChangeset
for help on using the changeset viewer.