Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/perspectives/fitting/fitpage.py

    r85ccd3a r5265420  
    2626from sas.perspectives.fitting.basepage import PageInfoEvent as PageInfoEvent 
    2727from sas.models.qsmearing import smear_selection 
     28from .basepage import ModelTextCtrl 
    2829 
    2930 
     
    284285 
    285286        #textcntrl for custom resolution 
    286         self.smear_pinhole_max = self.ModelTextCtrl(self, -1, 
     287        self.smear_pinhole_max = ModelTextCtrl(self, -1, 
    287288                            size=(_BOX_WIDTH - 25, 20), 
    288289                            style=wx.TE_PROCESS_ENTER, 
    289290                            text_enter_callback=self.onPinholeSmear) 
    290         self.smear_pinhole_min = self.ModelTextCtrl(self, -1, 
     291        self.smear_pinhole_min = ModelTextCtrl(self, -1, 
    291292                            size=(_BOX_WIDTH - 25, 20), 
    292293                            style=wx.TE_PROCESS_ENTER, 
    293294                            text_enter_callback=self.onPinholeSmear) 
    294         self.smear_slit_height = self.ModelTextCtrl(self, -1, 
     295        self.smear_slit_height = ModelTextCtrl(self, -1, 
    295296                            size=(_BOX_WIDTH - 25, 20), 
    296297                            style=wx.TE_PROCESS_ENTER, 
    297298                            text_enter_callback=self.onSlitSmear) 
    298         self.smear_slit_width = self.ModelTextCtrl(self, -1, 
     299        self.smear_slit_width = ModelTextCtrl(self, -1, 
    299300                            size=(_BOX_WIDTH - 25, 20), 
    300301                            style=wx.TE_PROCESS_ENTER, 
     
    303304        ## smear 
    304305        self.smear_data_left = BGTextCtrl(self, -1, 
    305                                          size=(_BOX_WIDTH - 25, 20), style=0) 
     306                                          size=(_BOX_WIDTH - 25, 20), style=0) 
    306307        self.smear_data_left.SetValue(str(self.dq_l)) 
    307308        self.smear_data_right = BGTextCtrl(self, -1, 
    308                                         size=(_BOX_WIDTH - 25, 20), style=0) 
     309                                           size=(_BOX_WIDTH - 25, 20), style=0) 
    309310        self.smear_data_right.SetValue(str(self.dq_r)) 
    310311 
     
    355356        self.Npts_fit.SetToolTipString(\ 
    356357                            " Npts : number of points selected for fitting") 
    357         self.Npts_total = self.ModelTextCtrl(self, -1, 
    358                         size=(_BOX_WIDTH, 20), 
    359                         style=wx.TE_PROCESS_ENTER, 
    360                         text_enter_callback=self._onQrangeEnter) 
     358        self.Npts_total = ModelTextCtrl(self, -1, 
     359                            size=(_BOX_WIDTH, 20), 
     360                            style=wx.TE_PROCESS_ENTER, 
     361                            text_enter_callback=self._onQrangeEnter) 
    361362        self.Npts_total.SetValue(format_number(self.npts_x)) 
    362363        self.Npts_total.SetToolTipString(\ 
     
    515516        self.sizer5.Clear(True) 
    516517 
    517         self.qmin = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    518                                     style=wx.TE_PROCESS_ENTER, 
    519                                     set_focus_callback=self.qrang_set_focus, 
    520                                     text_enter_callback=self._onQrangeEnter, 
    521                                     name='qmin') 
     518        self.qmin = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     519                                  style=wx.TE_PROCESS_ENTER, 
     520                                  set_focus_callback=self.qrang_set_focus, 
     521                                  text_enter_callback=self._onQrangeEnter, 
     522                                  name='qmin') 
    522523        self.qmin.SetValue(str(self.qmin_x)) 
    523524        q_tip = "Click outside of the axes\n to remove the lines." 
     
    526527        self.qmin.SetToolTipString(qmin_tip) 
    527528 
    528         self.qmax = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    529                                        style=wx.TE_PROCESS_ENTER, 
    530                                        set_focus_callback=self.qrang_set_focus, 
    531                                        text_enter_callback=self._onQrangeEnter, 
    532                                        name='qmax') 
     529        self.qmax = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     530                                  style=wx.TE_PROCESS_ENTER, 
     531                                  set_focus_callback=self.qrang_set_focus, 
     532                                  text_enter_callback=self._onQrangeEnter, 
     533                                  name='qmax') 
    533534        self.qmax.SetValue(str(self.qmax_x)) 
    534535        qmax_tip = "Maximum value of Q.\n" 
     
    686687                        ix = 1 
    687688                        value = self.model.getParam(name1) 
    688                         ctl1 = self.ModelTextCtrl(self, -1, 
    689                                                   size=(_BOX_WIDTH / 1.3, 20), 
    690                                                   style=wx.TE_PROCESS_ENTER) 
     689                        ctl1 = ModelTextCtrl(self, -1, 
     690                                             size=(_BOX_WIDTH / 1.3, 20), 
     691                                             style=wx.TE_PROCESS_ENTER) 
    691692                        ctl1.SetLabel('PD[ratio]') 
    692693                        poly_text = "Polydispersity (STD/mean) of %s\n" % item 
     
    715716 
    716717                        ix = 4 
    717                         ctl3 = self.ModelTextCtrl(self, -1, 
    718                                                   size=(_BOX_WIDTH / 2, 20), 
    719                                                   style=wx.TE_PROCESS_ENTER, 
    720                                 text_enter_callback=self._onparamRangeEnter) 
     718                        ctl3 = ModelTextCtrl(self, -1, 
     719                                             size=(_BOX_WIDTH / 2, 20), 
     720                                             style=wx.TE_PROCESS_ENTER, 
     721                            text_enter_callback=self._onparamRangeEnter) 
    721722 
    722723                        self.sizer4_4.Add(ctl3, (iy, ix), (1, 1), 
     
    724725 
    725726                        ix = 5 
    726                         ctl4 = self.ModelTextCtrl(self, -1, 
    727                                                   size=(_BOX_WIDTH / 2, 20), 
    728                                                   style=wx.TE_PROCESS_ENTER, 
     727                        ctl4 = ModelTextCtrl(self, -1, 
     728                                             size=(_BOX_WIDTH / 2, 20), 
     729                                             style=wx.TE_PROCESS_ENTER, 
    729730                            text_enter_callback=self._onparamRangeEnter) 
    730731 
     
    738739                        ix = 6 
    739740                        value = self.model.getParam(name2) 
    740                         Tctl = self.ModelTextCtrl(self, -1, 
    741                                                   size=(_BOX_WIDTH / 2.2, 20), 
    742                                                   style=wx.TE_PROCESS_ENTER) 
     741                        Tctl = ModelTextCtrl(self, -1, 
     742                                             size=(_BOX_WIDTH / 2.2, 20), 
     743                                             style=wx.TE_PROCESS_ENTER) 
    743744 
    744745                        Tctl.SetValue(str(format_number(value))) 
     
    750751                        ix = 7 
    751752                        value = self.model.getParam(name3) 
    752                         Tct2 = self.ModelTextCtrl(self, -1, 
    753                                                   size=(_BOX_WIDTH / 2.2, 20), 
    754                                                   style=wx.TE_PROCESS_ENTER) 
     753                        Tct2 = ModelTextCtrl(self, -1, 
     754                                             size=(_BOX_WIDTH / 2.2, 20), 
     755                                             style=wx.TE_PROCESS_ENTER) 
    755756 
    756757                        Tct2.SetValue(str(format_number(value))) 
     
    811812                        ix = 1 
    812813                        value = self.model.getParam(name1) 
    813                         ctl1 = self.ModelTextCtrl(self, -1, 
    814                                                   size=(_BOX_WIDTH / 1.3, 20), 
    815                                                   style=wx.TE_PROCESS_ENTER) 
     814                        ctl1 = ModelTextCtrl(self, -1, 
     815                                             size=(_BOX_WIDTH / 1.3, 20), 
     816                                             style=wx.TE_PROCESS_ENTER) 
    816817                        poly_tip = "Absolute Sigma for %s." % item 
    817818                        ctl1.SetToolTipString(poly_tip) 
     
    859860 
    860861                        ix = 4 
    861                         ctl3 = self.ModelTextCtrl(self, -1, 
    862                                                   size=(_BOX_WIDTH / 2, 20), 
    863                                                   style=wx.TE_PROCESS_ENTER, 
     862                        ctl3 = ModelTextCtrl(self, -1, 
     863                                             size=(_BOX_WIDTH / 2, 20), 
     864                                             style=wx.TE_PROCESS_ENTER, 
    864865                                text_enter_callback=self._onparamRangeEnter) 
    865866 
     
    870871 
    871872                        ix = 5 
    872                         ctl4 = self.ModelTextCtrl(self, -1, 
    873                             size=(_BOX_WIDTH / 2, 20), 
    874                             style=wx.TE_PROCESS_ENTER, 
     873                        ctl4 = ModelTextCtrl(self, -1, 
     874                                             size=(_BOX_WIDTH / 2, 20), 
     875                                             style=wx.TE_PROCESS_ENTER, 
    875876                            text_enter_callback=self._onparamRangeEnter) 
    876877                        self.sizer4_4.Add(ctl4, (iy, ix), (1, 1), 
     
    886887                        ix = 6 
    887888                        value = self.model.getParam(name2) 
    888                         Tctl = self.ModelTextCtrl(self, -1, 
    889                                                  size=(_BOX_WIDTH / 2.2, 20), 
    890                                                  style=wx.TE_PROCESS_ENTER) 
     889                        Tctl = ModelTextCtrl(self, -1, 
     890                                             size=(_BOX_WIDTH / 2.2, 20), 
     891                                             style=wx.TE_PROCESS_ENTER) 
    891892 
    892893                        Tctl.SetValue(str(format_number(value))) 
     
    906907                        ix = 7 
    907908                        value = self.model.getParam(name3) 
    908                         Tct2 = self.ModelTextCtrl(self, -1, 
    909                                                   size=(_BOX_WIDTH / 2.2, 20), 
    910                                                   style=wx.TE_PROCESS_ENTER) 
     909                        Tct2 = ModelTextCtrl(self, -1, 
     910                                             size=(_BOX_WIDTH / 2.2, 20), 
     911                                             style=wx.TE_PROCESS_ENTER) 
    911912 
    912913                        Tct2.SetValue(str(format_number(value))) 
     
    10611062            label = "Fit" 
    10621063            color = "black" 
    1063         self.btFit.Enable(False) 
     1064        #self.btFit.Enable(False) 
    10641065        self.btFit.SetLabel(label) 
    10651066        self.btFit.SetForegroundColour(color) 
     
    11401141        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    11411142        self.enable_fit_button() 
    1142         if self.model != None: 
     1143        if self.model is not None: 
    11431144            self.m_name = self.model.name 
    11441145            self.state.m_name = self.m_name 
     
    11521153                    self._keep.Enable(not self.batch_on) 
    11531154                    self._set_save_flag(True) 
    1154             # Reset smearer, model and data 
    1155             if not copy_flag: 
    1156                 self.disable_smearer.SetValue(True) 
    1157                 self.enable_smearer.SetValue(False) 
    11581155 
    11591156            # more disables for 2D 
     
    11621159            try: 
    11631160                # update smearer sizer 
    1164                 #if not self.enable_smearer.GetValue(): 
    1165                 #    self.disable_smearer.SetValue(True) 
    11661161                self.onSmear(None) 
    11671162                temp_smear = None 
     
    12681263                elif self.data.__class__.__name__ != "Data2D" and \ 
    12691264                        not self.enable2D: 
     1265                    enable_smearer = not self.disable_smearer.GetValue() 
    12701266                    self._manager.set_smearer(smearer=temp_smearer, 
    12711267                                              fid=self.data.id, 
     
    12731269                                              qmin=float(self.qmin_x), 
    12741270                                              qmax=float(self.qmax_x), 
    1275                             enable_smearer=not self.disable_smearer.GetValue(), 
    1276                                             draw=True) 
     1271                                              enable_smearer=enable_smearer, 
     1272                                              draw=True) 
    12771273                if flag: 
    12781274                    #self.compute_chisqr(smearer= temp_smearer) 
     
    17721768        self.current_smearer = smear_selection(data, self.model) 
    17731769        flag = self.disable_smearer.GetValue() 
    1774         self.disable_smearer.SetValue(flag) 
    1775         if self.current_smearer == None: 
     1770        if self.current_smearer is None: 
    17761771            self.enable_smearer.Disable() 
    17771772        else: 
     
    19591954        if flag: 
    19601955            #set model view button 
    1961             if not self.enable_smearer.GetValue(): 
    1962                     self.disable_smearer.SetValue(True) 
    19631956            self.onSmear(None) 
    19641957 
     
    21322125                            if numpy.isfinite(float(cov[ind])): 
    21332126                                val_err = format_number(cov[ind], True) 
    2134                                 if not self.is_mac: 
    2135                                     item[3].Show(True) 
    2136                                     item[4].Show(True) 
    2137                                     item[4].SetForegroundColour(wx.BLACK) 
    2138                                 item[4].SetValue(val_err) 
    2139                                 has_error = True 
    2140                             else: 
    2141                                 val_err = 'NaN' 
    2142                                 if not self.is_mac: 
    2143                                     item[3].Show(True) 
    2144                                     item[4].Show(True) 
    2145                                     item[4].SetForegroundColour(wx.RED) 
    2146                                 item[4].SetValue(val_err) 
    2147                                 has_error = True 
     2127                            else: 
     2128                                val_err = 'NaN' 
     2129                            if not self.is_mac: 
     2130                                item[3].Show(True) 
     2131                                item[4].Show(True) 
     2132                                item[4].SetForegroundColour(wx.RED) 
     2133                            item[4].SetValue(val_err) 
     2134                            has_error = True 
    21482135                i += 1 
    21492136            else: 
     
    21962183 
    21972184        """ 
    2198         if self.model == None: 
    2199             self.disable_smearer.SetValue(True) 
    2200             if event == None: 
    2201                 return 
    2202             msg = "Please select a Model first..." 
    2203             wx.MessageBox(msg, 'Info') 
    2204             wx.PostEvent(self._manager.parent, 
    2205                          StatusEvent(status="Smear: %s" % msg)) 
    2206             return 
    2207  
    22082185        # Need update param values 
    22092186        self._update_paramv_on_fit() 
     
    23452322        ## set smearing value whether or not the data contain the smearing info 
    23462323 
     2324        enable_smearer = not self.disable_smearer.GetValue() 
    23472325        self._manager.set_smearer(smearer=self.current_smearer, 
    2348                             fid=self.data.id, 
    2349                             qmin=float(self.qmin_x), 
    2350                             qmax=float(self.qmax_x), 
    2351                             enable_smearer=not self.disable_smearer.GetValue(), 
    2352                             uid=self.uid) 
     2326                                  fid=self.data.id, 
     2327                                  qmin=float(self.qmin_x), 
     2328                                  qmax=float(self.qmax_x), 
     2329                                  enable_smearer=enable_smearer, 
     2330                                  uid=self.uid) 
    23532331        return msg 
    23542332 
     
    23782356        are compute when fitting 
    23792357        """ 
    2380         if self.model == None: 
    2381             self.disable_smearer.SetValue(True) 
    2382             if event == None: 
    2383                 return 
    2384             msg = "Please select a Model first..." 
    2385             wx.MessageBox(msg, 'Info') 
    2386             wx.PostEvent(self._manager.parent, 
    2387                          StatusEvent(status="Smear: %s" % msg)) 
    2388             return 
    2389  
    23902358        # Need update param values 
    23912359        self._update_paramv_on_fit() 
     
    24752443            of the values entered for slit smear 
    24762444        """ 
    2477         if self.data.__class__.__name__ == "Data2D" or \ 
    2478                         self.enable2D: 
     2445        if self.data.__class__.__name__ == "Data2D" or self.enable2D: 
    24792446            return 
    24802447        # make sure once more if it is smearer 
     
    25132480        self.current_smearer = smear_selection(data, self.model) 
    25142481        ## set smearing value whether or not the data contain the smearing info 
     2482        enable_smearer = not self.disable_smearer.GetValue() 
    25152483        self._manager.set_smearer(smearer=self.current_smearer, 
    2516                                  fid=self.data.id, 
    2517                                  qmin=float(self.qmin_x), 
    2518                                  qmax=float(self.qmax_x), 
    2519                         enable_smearer=not self.disable_smearer.GetValue(), 
    2520                                  uid=self.uid) 
     2484                                  fid=self.data.id, 
     2485                                  qmin=float(self.qmin_x), 
     2486                                  qmax=float(self.qmax_x), 
     2487                                  enable_smearer=enable_smearer, 
     2488                                  uid=self.uid) 
    25212489        return msg 
    25222490 
     
    25522520            return 
    25532521 
    2554         if self.model == None: 
    2555             self.disable_smearer.SetValue(True) 
    2556             if event == None: 
    2557                 return 
    2558             msg = "Please select a Model first..." 
    2559             wx.MessageBox(msg, 'Info') 
    2560             wx.PostEvent(self._manager.parent, 
    2561                          StatusEvent(status="Smear: %s" % msg)) 
    2562             return 
    25632522        # Need update param values 
    25642523        self._update_paramv_on_fit() 
    2565         if self.model != None: 
     2524        if self.model is not None: 
    25662525            if self.data.is_data: 
    25672526                self._manager.page_finder[self.uid].add_data(data=self.data) 
     
    25732532 
    25742533        ## set smearing value whether or not the data contain the smearing info 
     2534        enable_smearer = not self.disable_smearer.GetValue() 
    25752535        wx.CallAfter(self._manager.set_smearer, uid=self.uid, 
    25762536                     smearer=temp_smearer, 
     
    25782538                     qmin=float(self.qmin_x), 
    25792539                     qmax=float(self.qmax_x), 
    2580                      enable_smearer=not self.disable_smearer.GetValue(), 
     2540                     enable_smearer=enable_smearer, 
    25812541                     draw=True) 
    25822542 
     
    25942554        self._get_smear_info() 
    25952555        #renew smear sizer 
    2596         if self.smear_type != None: 
     2556        if self.smear_type is not None: 
    25972557            self.smear_description_smear_type.SetValue(str(self.smear_type)) 
    25982558            self.smear_data_left.SetValue(str(self.dq_l)) 
     
    26072567            self.current_smearer = temp_smearer 
    26082568        if self.enable_smearer.GetValue(): 
    2609             if self.current_smearer == None: 
     2569            if self.current_smearer is None: 
    26102570                wx.PostEvent(self._manager.parent, 
    26112571                    StatusEvent(status="Data contains no smearing information")) 
     
    29532913                        wx.EVT_COMBOBOX(fun_box, -1, self._on_fun_box) 
    29542914                    else: 
    2955                         fun_box = self.ModelTextCtrl(self, -1, 
    2956                                                      size=(_BOX_WIDTH, 20), 
     2915                        fun_box = ModelTextCtrl(self, -1, 
     2916                                                size=(_BOX_WIDTH, 20), 
    29572917                                style=wx.TE_PROCESS_ENTER, name='%s' % item) 
    29582918                        fun_box.SetToolTipString(\ 
     
    29772937                    ix += 1 
    29782938                    value = self.model.getParam(item) 
    2979                     ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    2980                                         style=wx.TE_PROCESS_ENTER) 
     2939                    ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     2940                                         style=wx.TE_PROCESS_ENTER) 
    29812941                    ctl1.SetToolTipString(\ 
    29822942                                "Hit 'Enter' after typing to update the plot.") 
     
    29992959 
    30002960                    ix += 1 
    3001                     ctl3 = self.ModelTextCtrl(self, -1, 
    3002                                               size=(_BOX_WIDTH / 1.9, 20), 
    3003                                               style=wx.TE_PROCESS_ENTER, 
     2961                    ctl3 = ModelTextCtrl(self, -1, 
     2962                                         size=(_BOX_WIDTH / 1.9, 20), 
     2963                                         style=wx.TE_PROCESS_ENTER, 
    30042964                                text_enter_callback=self._onparamRangeEnter) 
    30052965                    min_bound = self.model.details[item][1] 
     
    30112971 
    30122972                    ix += 1 
    3013                     ctl4 = self.ModelTextCtrl(self, -1, 
    3014                                               size=(_BOX_WIDTH / 1.9, 20), 
    3015                                               style=wx.TE_PROCESS_ENTER, 
     2973                    ctl4 = ModelTextCtrl(self, -1, 
     2974                                         size=(_BOX_WIDTH / 1.9, 20), 
     2975                                         style=wx.TE_PROCESS_ENTER, 
    30162976                                text_enter_callback=self._onparamRangeEnter) 
    30172977                    max_bound = self.model.details[item][2] 
     
    31153075                    ix += 1 
    31163076                    value = self.model.getParam(item) 
    3117                     ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    3118                                         style=wx.TE_PROCESS_ENTER) 
     3077                    ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     3078                                         style=wx.TE_PROCESS_ENTER) 
    31193079                    ctl1.SetToolTipString(\ 
    31203080                                "Hit 'Enter' after typing to update the plot.") 
     
    31423102 
    31433103                    ix += 1 
    3144                     ctl3 = self.ModelTextCtrl(self, -1, 
    3145                                               size=(_BOX_WIDTH / 1.8, 20), 
    3146                                               style=wx.TE_PROCESS_ENTER, 
     3104                    ctl3 = ModelTextCtrl(self, -1, 
     3105                                         size=(_BOX_WIDTH / 1.8, 20), 
     3106                                         style=wx.TE_PROCESS_ENTER, 
    31473107                                text_enter_callback=self._onparamRangeEnter) 
    31483108 
     
    31523112 
    31533113                    ix += 1 
    3154                     ctl4 = self.ModelTextCtrl(self, -1, 
    3155                                               size=(_BOX_WIDTH / 1.8, 20), 
    3156                                               style=wx.TE_PROCESS_ENTER, 
     3114                    ctl4 = ModelTextCtrl(self, -1, 
     3115                                         size=(_BOX_WIDTH / 1.8, 20), 
     3116                                         style=wx.TE_PROCESS_ENTER, 
    31573117                            text_enter_callback=self._onparamRangeEnter) 
    31583118                    sizer.Add(ctl4, (iy, ix), (1, 1), 
Note: See TracChangeset for help on using the changeset viewer.