Ignore:
File:
1 edited

Legend:

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

    r5265420 r85ccd3a  
    2626from sas.perspectives.fitting.basepage import PageInfoEvent as PageInfoEvent 
    2727from sas.models.qsmearing import smear_selection 
    28 from .basepage import ModelTextCtrl 
    2928 
    3029 
     
    285284 
    286285        #textcntrl for custom resolution 
    287         self.smear_pinhole_max = ModelTextCtrl(self, -1, 
     286        self.smear_pinhole_max = self.ModelTextCtrl(self, -1, 
    288287                            size=(_BOX_WIDTH - 25, 20), 
    289288                            style=wx.TE_PROCESS_ENTER, 
    290289                            text_enter_callback=self.onPinholeSmear) 
    291         self.smear_pinhole_min = ModelTextCtrl(self, -1, 
     290        self.smear_pinhole_min = self.ModelTextCtrl(self, -1, 
    292291                            size=(_BOX_WIDTH - 25, 20), 
    293292                            style=wx.TE_PROCESS_ENTER, 
    294293                            text_enter_callback=self.onPinholeSmear) 
    295         self.smear_slit_height = ModelTextCtrl(self, -1, 
     294        self.smear_slit_height = self.ModelTextCtrl(self, -1, 
    296295                            size=(_BOX_WIDTH - 25, 20), 
    297296                            style=wx.TE_PROCESS_ENTER, 
    298297                            text_enter_callback=self.onSlitSmear) 
    299         self.smear_slit_width = ModelTextCtrl(self, -1, 
     298        self.smear_slit_width = self.ModelTextCtrl(self, -1, 
    300299                            size=(_BOX_WIDTH - 25, 20), 
    301300                            style=wx.TE_PROCESS_ENTER, 
     
    304303        ## smear 
    305304        self.smear_data_left = BGTextCtrl(self, -1, 
    306                                           size=(_BOX_WIDTH - 25, 20), style=0) 
     305                                         size=(_BOX_WIDTH - 25, 20), style=0) 
    307306        self.smear_data_left.SetValue(str(self.dq_l)) 
    308307        self.smear_data_right = BGTextCtrl(self, -1, 
    309                                            size=(_BOX_WIDTH - 25, 20), style=0) 
     308                                        size=(_BOX_WIDTH - 25, 20), style=0) 
    310309        self.smear_data_right.SetValue(str(self.dq_r)) 
    311310 
     
    356355        self.Npts_fit.SetToolTipString(\ 
    357356                            " Npts : number of points selected for fitting") 
    358         self.Npts_total = ModelTextCtrl(self, -1, 
    359                             size=(_BOX_WIDTH, 20), 
    360                             style=wx.TE_PROCESS_ENTER, 
    361                             text_enter_callback=self._onQrangeEnter) 
     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) 
    362361        self.Npts_total.SetValue(format_number(self.npts_x)) 
    363362        self.Npts_total.SetToolTipString(\ 
     
    516515        self.sizer5.Clear(True) 
    517516 
    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') 
     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') 
    523522        self.qmin.SetValue(str(self.qmin_x)) 
    524523        q_tip = "Click outside of the axes\n to remove the lines." 
     
    527526        self.qmin.SetToolTipString(qmin_tip) 
    528527 
    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') 
     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') 
    534533        self.qmax.SetValue(str(self.qmax_x)) 
    535534        qmax_tip = "Maximum value of Q.\n" 
     
    687686                        ix = 1 
    688687                        value = self.model.getParam(name1) 
    689                         ctl1 = ModelTextCtrl(self, -1, 
    690                                              size=(_BOX_WIDTH / 1.3, 20), 
    691                                              style=wx.TE_PROCESS_ENTER) 
     688                        ctl1 = self.ModelTextCtrl(self, -1, 
     689                                                  size=(_BOX_WIDTH / 1.3, 20), 
     690                                                  style=wx.TE_PROCESS_ENTER) 
    692691                        ctl1.SetLabel('PD[ratio]') 
    693692                        poly_text = "Polydispersity (STD/mean) of %s\n" % item 
     
    716715 
    717716                        ix = 4 
    718                         ctl3 = ModelTextCtrl(self, -1, 
    719                                              size=(_BOX_WIDTH / 2, 20), 
    720                                              style=wx.TE_PROCESS_ENTER, 
    721                             text_enter_callback=self._onparamRangeEnter) 
     717                        ctl3 = self.ModelTextCtrl(self, -1, 
     718                                                  size=(_BOX_WIDTH / 2, 20), 
     719                                                  style=wx.TE_PROCESS_ENTER, 
     720                                text_enter_callback=self._onparamRangeEnter) 
    722721 
    723722                        self.sizer4_4.Add(ctl3, (iy, ix), (1, 1), 
     
    725724 
    726725                        ix = 5 
    727                         ctl4 = ModelTextCtrl(self, -1, 
    728                                              size=(_BOX_WIDTH / 2, 20), 
    729                                              style=wx.TE_PROCESS_ENTER, 
     726                        ctl4 = self.ModelTextCtrl(self, -1, 
     727                                                  size=(_BOX_WIDTH / 2, 20), 
     728                                                  style=wx.TE_PROCESS_ENTER, 
    730729                            text_enter_callback=self._onparamRangeEnter) 
    731730 
     
    739738                        ix = 6 
    740739                        value = self.model.getParam(name2) 
    741                         Tctl = ModelTextCtrl(self, -1, 
    742                                              size=(_BOX_WIDTH / 2.2, 20), 
    743                                              style=wx.TE_PROCESS_ENTER) 
     740                        Tctl = self.ModelTextCtrl(self, -1, 
     741                                                  size=(_BOX_WIDTH / 2.2, 20), 
     742                                                  style=wx.TE_PROCESS_ENTER) 
    744743 
    745744                        Tctl.SetValue(str(format_number(value))) 
     
    751750                        ix = 7 
    752751                        value = self.model.getParam(name3) 
    753                         Tct2 = ModelTextCtrl(self, -1, 
    754                                              size=(_BOX_WIDTH / 2.2, 20), 
    755                                              style=wx.TE_PROCESS_ENTER) 
     752                        Tct2 = self.ModelTextCtrl(self, -1, 
     753                                                  size=(_BOX_WIDTH / 2.2, 20), 
     754                                                  style=wx.TE_PROCESS_ENTER) 
    756755 
    757756                        Tct2.SetValue(str(format_number(value))) 
     
    812811                        ix = 1 
    813812                        value = self.model.getParam(name1) 
    814                         ctl1 = ModelTextCtrl(self, -1, 
    815                                              size=(_BOX_WIDTH / 1.3, 20), 
    816                                              style=wx.TE_PROCESS_ENTER) 
     813                        ctl1 = self.ModelTextCtrl(self, -1, 
     814                                                  size=(_BOX_WIDTH / 1.3, 20), 
     815                                                  style=wx.TE_PROCESS_ENTER) 
    817816                        poly_tip = "Absolute Sigma for %s." % item 
    818817                        ctl1.SetToolTipString(poly_tip) 
     
    860859 
    861860                        ix = 4 
    862                         ctl3 = ModelTextCtrl(self, -1, 
    863                                              size=(_BOX_WIDTH / 2, 20), 
    864                                              style=wx.TE_PROCESS_ENTER, 
     861                        ctl3 = self.ModelTextCtrl(self, -1, 
     862                                                  size=(_BOX_WIDTH / 2, 20), 
     863                                                  style=wx.TE_PROCESS_ENTER, 
    865864                                text_enter_callback=self._onparamRangeEnter) 
    866865 
     
    871870 
    872871                        ix = 5 
    873                         ctl4 = ModelTextCtrl(self, -1, 
    874                                              size=(_BOX_WIDTH / 2, 20), 
    875                                              style=wx.TE_PROCESS_ENTER, 
     872                        ctl4 = self.ModelTextCtrl(self, -1, 
     873                            size=(_BOX_WIDTH / 2, 20), 
     874                            style=wx.TE_PROCESS_ENTER, 
    876875                            text_enter_callback=self._onparamRangeEnter) 
    877876                        self.sizer4_4.Add(ctl4, (iy, ix), (1, 1), 
     
    887886                        ix = 6 
    888887                        value = self.model.getParam(name2) 
    889                         Tctl = ModelTextCtrl(self, -1, 
    890                                              size=(_BOX_WIDTH / 2.2, 20), 
    891                                              style=wx.TE_PROCESS_ENTER) 
     888                        Tctl = self.ModelTextCtrl(self, -1, 
     889                                                 size=(_BOX_WIDTH / 2.2, 20), 
     890                                                 style=wx.TE_PROCESS_ENTER) 
    892891 
    893892                        Tctl.SetValue(str(format_number(value))) 
     
    907906                        ix = 7 
    908907                        value = self.model.getParam(name3) 
    909                         Tct2 = ModelTextCtrl(self, -1, 
    910                                              size=(_BOX_WIDTH / 2.2, 20), 
    911                                              style=wx.TE_PROCESS_ENTER) 
     908                        Tct2 = self.ModelTextCtrl(self, -1, 
     909                                                  size=(_BOX_WIDTH / 2.2, 20), 
     910                                                  style=wx.TE_PROCESS_ENTER) 
    912911 
    913912                        Tct2.SetValue(str(format_number(value))) 
     
    10621061            label = "Fit" 
    10631062            color = "black" 
    1064         #self.btFit.Enable(False) 
     1063        self.btFit.Enable(False) 
    10651064        self.btFit.SetLabel(label) 
    10661065        self.btFit.SetForegroundColour(color) 
     
    11411140        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    11421141        self.enable_fit_button() 
    1143         if self.model is not None: 
     1142        if self.model != None: 
    11441143            self.m_name = self.model.name 
    11451144            self.state.m_name = self.m_name 
     
    11531152                    self._keep.Enable(not self.batch_on) 
    11541153                    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) 
    11551158 
    11561159            # more disables for 2D 
     
    11591162            try: 
    11601163                # update smearer sizer 
     1164                #if not self.enable_smearer.GetValue(): 
     1165                #    self.disable_smearer.SetValue(True) 
    11611166                self.onSmear(None) 
    11621167                temp_smear = None 
     
    12631268                elif self.data.__class__.__name__ != "Data2D" and \ 
    12641269                        not self.enable2D: 
    1265                     enable_smearer = not self.disable_smearer.GetValue() 
    12661270                    self._manager.set_smearer(smearer=temp_smearer, 
    12671271                                              fid=self.data.id, 
     
    12691273                                              qmin=float(self.qmin_x), 
    12701274                                              qmax=float(self.qmax_x), 
    1271                                               enable_smearer=enable_smearer, 
    1272                                               draw=True) 
     1275                            enable_smearer=not self.disable_smearer.GetValue(), 
     1276                                            draw=True) 
    12731277                if flag: 
    12741278                    #self.compute_chisqr(smearer= temp_smearer) 
     
    17681772        self.current_smearer = smear_selection(data, self.model) 
    17691773        flag = self.disable_smearer.GetValue() 
    1770         if self.current_smearer is None: 
     1774        self.disable_smearer.SetValue(flag) 
     1775        if self.current_smearer == None: 
    17711776            self.enable_smearer.Disable() 
    17721777        else: 
     
    19541959        if flag: 
    19551960            #set model view button 
     1961            if not self.enable_smearer.GetValue(): 
     1962                    self.disable_smearer.SetValue(True) 
    19561963            self.onSmear(None) 
    19571964 
     
    21252132                            if numpy.isfinite(float(cov[ind])): 
    21262133                                val_err = format_number(cov[ind], 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 
     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 
    21352148                i += 1 
    21362149            else: 
     
    21832196 
    21842197        """ 
     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 
    21852208        # Need update param values 
    21862209        self._update_paramv_on_fit() 
     
    23222345        ## set smearing value whether or not the data contain the smearing info 
    23232346 
    2324         enable_smearer = not self.disable_smearer.GetValue() 
    23252347        self._manager.set_smearer(smearer=self.current_smearer, 
    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) 
     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) 
    23312353        return msg 
    23322354 
     
    23562378        are compute when fitting 
    23572379        """ 
     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 
    23582390        # Need update param values 
    23592391        self._update_paramv_on_fit() 
     
    24432475            of the values entered for slit smear 
    24442476        """ 
    2445         if self.data.__class__.__name__ == "Data2D" or self.enable2D: 
     2477        if self.data.__class__.__name__ == "Data2D" or \ 
     2478                        self.enable2D: 
    24462479            return 
    24472480        # make sure once more if it is smearer 
     
    24802513        self.current_smearer = smear_selection(data, self.model) 
    24812514        ## set smearing value whether or not the data contain the smearing info 
    2482         enable_smearer = not self.disable_smearer.GetValue() 
    24832515        self._manager.set_smearer(smearer=self.current_smearer, 
    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) 
     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) 
    24892521        return msg 
    24902522 
     
    25202552            return 
    25212553 
     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 
    25222563        # Need update param values 
    25232564        self._update_paramv_on_fit() 
    2524         if self.model is not None: 
     2565        if self.model != None: 
    25252566            if self.data.is_data: 
    25262567                self._manager.page_finder[self.uid].add_data(data=self.data) 
     
    25322573 
    25332574        ## set smearing value whether or not the data contain the smearing info 
    2534         enable_smearer = not self.disable_smearer.GetValue() 
    25352575        wx.CallAfter(self._manager.set_smearer, uid=self.uid, 
    25362576                     smearer=temp_smearer, 
     
    25382578                     qmin=float(self.qmin_x), 
    25392579                     qmax=float(self.qmax_x), 
    2540                      enable_smearer=enable_smearer, 
     2580                     enable_smearer=not self.disable_smearer.GetValue(), 
    25412581                     draw=True) 
    25422582 
     
    25542594        self._get_smear_info() 
    25552595        #renew smear sizer 
    2556         if self.smear_type is not None: 
     2596        if self.smear_type != None: 
    25572597            self.smear_description_smear_type.SetValue(str(self.smear_type)) 
    25582598            self.smear_data_left.SetValue(str(self.dq_l)) 
     
    25672607            self.current_smearer = temp_smearer 
    25682608        if self.enable_smearer.GetValue(): 
    2569             if self.current_smearer is None: 
     2609            if self.current_smearer == None: 
    25702610                wx.PostEvent(self._manager.parent, 
    25712611                    StatusEvent(status="Data contains no smearing information")) 
     
    29132953                        wx.EVT_COMBOBOX(fun_box, -1, self._on_fun_box) 
    29142954                    else: 
    2915                         fun_box = ModelTextCtrl(self, -1, 
    2916                                                 size=(_BOX_WIDTH, 20), 
     2955                        fun_box = self.ModelTextCtrl(self, -1, 
     2956                                                     size=(_BOX_WIDTH, 20), 
    29172957                                style=wx.TE_PROCESS_ENTER, name='%s' % item) 
    29182958                        fun_box.SetToolTipString(\ 
     
    29372977                    ix += 1 
    29382978                    value = self.model.getParam(item) 
    2939                     ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    2940                                          style=wx.TE_PROCESS_ENTER) 
     2979                    ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     2980                                        style=wx.TE_PROCESS_ENTER) 
    29412981                    ctl1.SetToolTipString(\ 
    29422982                                "Hit 'Enter' after typing to update the plot.") 
     
    29592999 
    29603000                    ix += 1 
    2961                     ctl3 = ModelTextCtrl(self, -1, 
    2962                                          size=(_BOX_WIDTH / 1.9, 20), 
    2963                                          style=wx.TE_PROCESS_ENTER, 
     3001                    ctl3 = self.ModelTextCtrl(self, -1, 
     3002                                              size=(_BOX_WIDTH / 1.9, 20), 
     3003                                              style=wx.TE_PROCESS_ENTER, 
    29643004                                text_enter_callback=self._onparamRangeEnter) 
    29653005                    min_bound = self.model.details[item][1] 
     
    29713011 
    29723012                    ix += 1 
    2973                     ctl4 = ModelTextCtrl(self, -1, 
    2974                                          size=(_BOX_WIDTH / 1.9, 20), 
    2975                                          style=wx.TE_PROCESS_ENTER, 
     3013                    ctl4 = self.ModelTextCtrl(self, -1, 
     3014                                              size=(_BOX_WIDTH / 1.9, 20), 
     3015                                              style=wx.TE_PROCESS_ENTER, 
    29763016                                text_enter_callback=self._onparamRangeEnter) 
    29773017                    max_bound = self.model.details[item][2] 
     
    30753115                    ix += 1 
    30763116                    value = self.model.getParam(item) 
    3077                     ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    3078                                          style=wx.TE_PROCESS_ENTER) 
     3117                    ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     3118                                        style=wx.TE_PROCESS_ENTER) 
    30793119                    ctl1.SetToolTipString(\ 
    30803120                                "Hit 'Enter' after typing to update the plot.") 
     
    31023142 
    31033143                    ix += 1 
    3104                     ctl3 = ModelTextCtrl(self, -1, 
    3105                                          size=(_BOX_WIDTH / 1.8, 20), 
    3106                                          style=wx.TE_PROCESS_ENTER, 
     3144                    ctl3 = self.ModelTextCtrl(self, -1, 
     3145                                              size=(_BOX_WIDTH / 1.8, 20), 
     3146                                              style=wx.TE_PROCESS_ENTER, 
    31073147                                text_enter_callback=self._onparamRangeEnter) 
    31083148 
     
    31123152 
    31133153                    ix += 1 
    3114                     ctl4 = ModelTextCtrl(self, -1, 
    3115                                          size=(_BOX_WIDTH / 1.8, 20), 
    3116                                          style=wx.TE_PROCESS_ENTER, 
     3154                    ctl4 = self.ModelTextCtrl(self, -1, 
     3155                                              size=(_BOX_WIDTH / 1.8, 20), 
     3156                                              style=wx.TE_PROCESS_ENTER, 
    31173157                            text_enter_callback=self._onparamRangeEnter) 
    31183158                    sizer.Add(ctl4, (iy, ix), (1, 1), 
Note: See TracChangeset for help on using the changeset viewer.