Ignore:
Timestamp:
Oct 17, 2008 4:25:40 PM (16 years ago)
Author:
Gervaise Alina <gervyh@…>
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
Message:

2 d fit working better still not plotting all data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sansview/perspectives/fitting/fitpage1D.py

    rbcd6d51 r9d31a8b  
    3939     
    4040     
    41     def __init__(self, parent, *args, **kwargs): 
     41    def __init__(self, parent,data, *args, **kwargs): 
    4242        wx.Panel.__init__(self, parent, *args, **kwargs) 
    4343        """  
     
    5555        self.DataSource      = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
    5656        self.DataSource.SetToolTipString("name of data to fit") 
     57        self.DataSource.SetValue(str(data.name)) 
    5758        self.modelbox = wx.ComboBox(self, -1) 
    5859        id = wx.NewId() 
     
    8384        ix += 1 
    8485        self.sizer3.Add(self.modelbox,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    85         ix = 1 
    86         iy = 1 
    87         self.text4_1 = wx.StaticText(self, -1, 'Min') 
    88         self.sizer4.Add(self.text4_1,(iy, ix),(1,1),\ 
    89                             wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    90         self.text4_1.Hide() 
    91         ix += 2 
    92         self.text4_2 = wx.StaticText(self, -1, 'Max') 
    93         self.sizer4.Add(self.text4_2,(iy, ix),(1,1),\ 
    94                             wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    95         self.text4_2.Hide() 
     86         
    9687        ix = 0 
    9788        iy += 1 
     
    10091        self.sizer4.Add(self.text4_3,(iy,ix),(1,1),\ 
    10192                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
    102         self.text4_3.Hide() 
     93         
    10394        ix += 1 
     95        self.text4_1 = wx.StaticText(self, -1, 'Min') 
     96        self.sizer4.Add(self.text4_1,(iy, ix),(1,1),\ 
     97                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     98         
     99        ix += 2 
     100        self.text4_2 = wx.StaticText(self, -1, 'Max') 
     101        self.sizer4.Add(self.text4_2,(iy, ix),(1,1),\ 
     102                            wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
     103        ix = 0 
     104        iy += 1 
     105        self.text4_4 = wx.StaticText(self, -1, 'x range') 
     106        self.sizer4.Add(self.text4_4,(iy, ix),(1,1),\ 
     107                            wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     108        ix += 1 
     109         
    104110        self.xmin    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
     111        self.xmin.SetValue(format_number(numpy.min(data.x))) 
    105112        self.xmin.SetToolTipString("Minimun value of x in linear scale.") 
    106113        self.sizer4.Add(self.xmin,(iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    107114        self.xmin.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter) 
    108115        self.xmin.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter) 
    109         self.xmin.Hide() 
     116         
    110117        ix += 2 
    111118        self.xmax    = wx.TextCtrl(self, -1,size=(_BOX_WIDTH,20)) 
     119        self.xmax.SetValue(format_number(numpy.max(data.x))) 
    112120        self.xmax.SetToolTipString("Maximum value of x in linear scale.") 
    113121        self.sizer4.Add(self.xmax,(iy,ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 0) 
    114122        self.xmax.Bind(wx.EVT_KILL_FOCUS, self._onTextEnter) 
    115123        self.xmax.Bind(wx.EVT_TEXT_ENTER, self._onTextEnter) 
    116         self.xmax.Hide() 
     124        
    117125        #Set chisqr  result into TextCtrl 
    118126        ix = 0 
     
    136144        # model on which the fit would be performed 
    137145        self.model=None 
    138         # preview selected model name 
    139         self.prevmodel_name=None 
    140         # flag to check if the user has selected a new model in the combox box 
    141         self.model_hasChanged=False 
    142          
     146        
     147     
    143148        #dictionary of model name and model class 
    144149        self.model_list_box={} 
    145         #  comparison between 2 group_id for checking data changes 
    146         self.prev_group_id= None 
    147          
    148         self.data=None 
     150       
     151        self.data=data 
    149152        self.vbox.Layout() 
     153        self.GrandParent.GetSizer().Layout() 
    150154        self.vbox.Fit(self)  
    151155        self.SetSizer(self.vbox) 
    152156        self.Centre() 
     157         
    153158         
    154159         
     
    168173        self.manager = manager 
    169174  
    170           
    171     def _DataNameEnter(self): 
    172         """ 
    173             reset the panel when a new data is selected 
    174         """ 
    175         if len(self.parameters )>0: 
    176             for item in self.parameters: 
    177                 item[0].SetValue(False) 
    178                 wx.EVT_CHECKBOX(self, item[0].GetId(), self.select_param) 
    179                 item[2].Hide() 
    180                 item[3].Clear() 
    181                 item[3].Hide() 
    182                 self.xmax.Disable() 
    183                 self.xmin.Disable() 
    184                 self.text1_1.Hide() 
    185                 self.tcChi.Clear() 
    186                 self.vbox.Layout()  
    187                 self.GrandParent.GetSizer().Layout() 
    188                  
    189    
    190175         
    191176    def onClose(self,event): 
     
    322307        return flag 
    323308     
    324     
    325                      
    326     def set_data_name(self,dataset): 
    327         """  
    328             set data's name.if data has changed reset the panel and xmin and xmax 
    329             @param name: data 's name 
    330             @attention:  still  haven't find a better way to display Q name and unit 
    331             for xmin and xmax range sizer 
    332         """ 
    333          
    334         if self.prev_group_id !=dataset.group_id: 
    335             self._DataNameEnter() 
    336         self.data = dataset 
    337         self.prev_group_id=dataset.group_id 
    338         #Displaying Data information 
    339         self.DataSource.SetValue(str(dataset.name)) 
    340         self._xaxis,self._xunit=dataset.get_xaxis() 
    341         self.text4_3.SetLabel(self._xaxis+"["+self._xunit+"]") 
    342         self.text4_1.Show() 
    343         self.text4_2.Show() 
    344         self.text4_3.Show() 
    345         
    346         self.xmin.SetValue(format_number(min(dataset.x))) 
    347         self.xmin.Show() 
    348         self.xmax.SetValue(format_number(max(dataset.x))) 
    349         self.xmax.Show() 
    350          
    351         if ((len(self.param_toFit ) >0) and self.DataSource.GetValue()and \ 
    352             self.modelbox.GetValue() and (self.model_hasChanged ==False)): 
    353             self.xmin.Enable() 
    354             self.xmax.Enable() 
    355         else: 
    356             self.xmin.Disable() 
    357             self.xmax.Disable() 
    358              
    359         self.vbox.Layout() 
    360         self.GrandParent.GetSizer().Layout() 
    361          
    362          
    363     def set_model_name(self,name): 
    364         """  
    365             set model name. set also self.model_hasChanged to true is the model  
    366             type has changed or false if it didn't 
    367             @param name: model 's name 
    368         """ 
    369         self.model_hasChanged=False 
    370         if (name != self.prevmodel_name): 
    371             self.model_hasChanged=True 
    372         self.tcChi.Clear() 
    373         #self.modelbox.SetValue(str(name)) 
    374         self.prevmodel_name=self.modelbox.GetValue() 
    375         
    376              
     309 
    377310    def get_model_box(self):  
    378311        """ return reference to combox box self.model""" 
     
    470403                self.text2_4.Hide() 
    471404        #Disable or enable fit button 
    472         if (self.modelbox.GetValue() and self.DataSource.GetValue()): 
    473             if not (len(self.param_toFit ) >0): 
    474                 self.xmin.Disable() 
    475                 self.xmax.Disable() 
    476             else: 
    477                 self.xmin.Enable() 
    478                 self.xmax.Enable() 
    479         else: 
     405         
     406        if not (len(self.param_toFit ) >0): 
    480407            self.xmin.Disable() 
    481408            self.xmax.Disable() 
    482          
     409        else: 
     410            self.xmin.Enable() 
     411            self.xmax.Enable() 
     412        
    483413        self.compute_chisqr() 
    484414        self.vbox.Layout() 
     
    522452                    list= [item[0],item[1],item[2],item[3]] 
    523453                    self.param_toFit.append(list ) 
    524                 if (self.modelbox.GetValue() and self.DataSource.GetValue()): 
    525                     if not (len(self.param_toFit ) >0): 
    526                         self.xmin.Disable() 
    527                         self.xmax.Disable() 
    528                     else: 
    529                         self.xmin.Enable() 
    530                         self.xmax.Enable() 
     454                
     455                if not (len(self.param_toFit ) >0): 
     456                    self.xmin.Disable() 
     457                    self.xmax.Disable() 
     458                else: 
     459                    self.xmin.Enable() 
     460                    self.xmax.Enable() 
    531461            else: 
    532462                for item in self.parameters: 
     
    555485        else: 
    556486            self.cb1.SetValue(False) 
    557         if (self.modelbox.GetValue() and self.DataSource.GetValue()): 
    558             if not (len(self.param_toFit ) >0): 
    559                 self.xmin.Disable() 
    560                 self.xmax.Disable() 
    561             else: 
    562                 self.xmin.Enable() 
    563                 self.xmax.Enable() 
    564         else: 
     487         
     488        if not (len(self.param_toFit ) >0): 
    565489            self.xmin.Disable() 
    566490            self.xmax.Disable() 
     491        else: 
     492            self.xmin.Enable() 
     493            self.xmax.Enable() 
     494   
    567495    
    568496        
Note: See TracChangeset for help on using the changeset viewer.