Ignore:
Timestamp:
Mar 4, 2015 3:39:45 PM (9 years ago)
Author:
Doucet, Mathieu <doucetm@…>
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:
74f419d
Parents:
2f732b0
Message:

Take care of white spaces (pylint)

File:
1 edited

Legend:

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

    r386ffe1 r2f4b430  
    3232    FitPanel class contains fields allowing to display results when 
    3333    fitting  a model and one data 
    34      
     34 
    3535    :note: For Fit to be performed the user should check at least one parameter 
    3636        on fit Panel window. 
     
    4242        """ 
    4343        BasicPage.__init__(self, parent, color=color) 
    44          
     44 
    4545        ## draw sizer 
    4646        self._fill_data_sizer() 
     
    6969        self.create_default_data() 
    7070        #self._manager.frame.Bind(wx.EVT_SET_FOCUS, self.on_set_focus) 
    71      
     71 
    7272    def enable_fit_button(self): 
    7373        """ 
     
    7676        flag = check_data_validity(self.data) & (self.model is not None) 
    7777        self.btFit.Enable(flag) 
    78          
     78 
    7979    def _fill_data_sizer(self): 
    8080        """ 
     
    9999        self.sizer0.Add(boxsizer1, 0, wx.EXPAND | wx.ALL, 10) 
    100100        self.sizer0.Layout() 
    101          
     101 
    102102    def enable_datasource(self): 
    103103        """ 
     
    108108        else: 
    109109            self.dataSource.Enable() 
    110              
     110 
    111111    def fill_data_combobox(self, data_list): 
    112112        """ 
     
    143143        if len(data_list) == 1: 
    144144            self.dataSource.Disable() 
    145                  
     145 
    146146    def on_select_data(self, event=None): 
    147147        """ 
     
    155155            data = self.dataSource.GetClientData(pos) 
    156156            self.set_data(data) 
    157      
     157 
    158158    def _on_fit_complete(self): 
    159159        """ 
     
    162162        self.fit_started = False 
    163163        self.set_fitbutton() 
    164          
     164 
    165165    def _is_2D(self): 
    166166        """ 
    167167        Check if data_name is Data2D 
    168          
     168 
    169169        :return: True or False 
    170          
     170 
    171171        """ 
    172172        if self.data.__class__.__name__ == "Data2D" or \ 
     
    174174            return True 
    175175        return False 
    176              
     176 
    177177    def _on_engine_change(self, name): 
    178178        """ 
     
    180180         and update the panel accordingly 
    181181        """ 
    182          
     182 
    183183        self.engine_type = str(name) 
    184184        self.state.engine_type = self.engine_type 
     
    189189            self.Layout() 
    190190            self.Refresh() 
    191          
     191 
    192192    def _fill_range_sizer(self): 
    193193        """ 
     
    196196        """ 
    197197        is_2Ddata = False 
    198          
     198 
    199199        # Check if data is 2D 
    200200        if self.data.__class__.__name__ == "Data2D" or \ 
    201201                        self.enable2D: 
    202202            is_2Ddata = True 
    203              
     203 
    204204        title = "Fitting" 
    205205        #smear messages & titles 
     
    218218        smear_message_slit_height_title = "Slit height[1/A]:" 
    219219        smear_message_slit_width_title = "Slit width[1/A]:" 
    220          
     220 
    221221        self._get_smear_info() 
    222          
     222 
    223223        #Sizers 
    224224        box_description_range = wx.StaticBox(self, -1, str(title)) 
     
    233233        sizer_smearer_box = wx.StaticBoxSizer(smear_set_box, wx.HORIZONTAL) 
    234234        sizer_smearer_box.SetMinSize((_DATA_BOX_WIDTH, 60)) 
    235          
     235 
    236236        weighting_set_box = wx.StaticBox(self, -1, \ 
    237237                                'Set Weighting by Selecting dI Source') 
     
    268268        self.dI_idata.Enable(False) 
    269269        weighting_box.Add(sizer_weighting) 
    270          
     270 
    271271        sizer_fit = wx.GridSizer(2, 4, 2, 6) 
    272          
     272 
    273273        # combobox for smear2d accuracy selection 
    274274        self.smear_accuracy = wx.ComboBox(self, -1, size=(50, -1), 
     
    279279        self.smear_accuracy.SetToolTipString(\ 
    280280            "'Higher' uses more Gaussian points for smearing computation.") 
    281                     
     281 
    282282        wx.EVT_COMBOBOX(self.smear_accuracy, -1, self._on_select_accuracy) 
    283283 
     
    287287        self.btFit.Bind(wx.EVT_BUTTON, self._onFit, id=self.btFit.GetId()) 
    288288        self.btFit.SetToolTipString("Start fitting.") 
    289          
     289 
    290290        #textcntrl for custom resolution 
    291291        self.smear_pinhole_max = self.ModelTextCtrl(self, -1, 
     
    343343                  id=self.slit_smearer.GetId()) 
    344344        self.disable_smearer.SetValue(True) 
    345          
     345 
    346346        # add 4 types of smearing to the sizer 
    347347        sizer_smearer.Add(self.disable_smearer, 0, wx.LEFT, 10) 
     
    353353        sizer_smearer.Add(self.slit_smearer) 
    354354        sizer_smearer.Add((10, 10)) 
    355          
     355 
    356356        # StaticText for chi2, N(for fitting), Npts + Log/linear spacing 
    357357        self.tcChi = BGTextCtrl(self, -1, "-", size=(75, 20), style=0) 
     
    367367        self.Npts_total.SetToolTipString(\ 
    368368                                " Total Npts : total number of data points") 
    369                  
     369 
    370370        # Update and Draw button 
    371371        self.draw_button = wx.Button(self, wx.NewId(), 
     
    374374                              self._onDraw, id=self.draw_button.GetId()) 
    375375        self.draw_button.SetToolTipString("Compute and Draw.") 
    376          
    377         self.points_sizer = wx.BoxSizer(wx.HORIZONTAL)  
     376 
     377        self.points_sizer = wx.BoxSizer(wx.HORIZONTAL) 
    378378        self.pointsbox = wx.CheckBox(self, -1, 'Log?', (10, 10)) 
    379379        self.pointsbox.SetValue(False) 
    380380        self.pointsbox.SetToolTipString("Check mark to use log spaced points") 
    381381        wx.EVT_CHECKBOX(self, self.pointsbox.GetId(), self.select_log) 
    382          
     382 
    383383        self.points_sizer.Add(wx.StaticText(self, -1, 'Npts    ')) 
    384384        self.points_sizer.Add(self.pointsbox) 
     
    389389        #box_description_3.SetToolTipString( \ 
    390390        #                        " Total Npts : total number of data points") 
    391          
     391 
    392392        sizer_fit.Add(box_description_1, 0, 0) 
    393393        sizer_fit.Add(box_description_2, 0, 0) 
     
    404404                                    smear_message_none, style=wx.ALIGN_LEFT) 
    405405        self.smear_description_dqdata = wx.StaticText(self, 
    406                                 -1, smear_message_dqdata, style=wx.ALIGN_LEFT) 
     406                                - 1, smear_message_dqdata, style=wx.ALIGN_LEFT) 
    407407        self.smear_description_type = wx.StaticText(self, 
    408                                      -1, "Type:", style=wx.ALIGN_LEFT) 
     408                                     - 1, "Type:", style=wx.ALIGN_LEFT) 
    409409        self.smear_description_accuracy_type = wx.StaticText(self, -1, 
    410410                                        "Accuracy:", style=wx.ALIGN_LEFT) 
     
    435435        self.smear_description_slit_width = wx.StaticText(self, -1, 
    436436                        smear_message_slit_width_title, style=wx.ALIGN_LEFT) 
    437          
     437 
    438438        #arrange sizers 
    439439        self.sizer_set_smearer.Add(sizer_smearer) 
     
    468468        self.sizer_new_smear.Add((20, -1)) 
    469469        self.sizer_new_smear.Add(self.smear_description_2d_y, 
    470                                   0, wx.CENTER, 10 ) 
     470                                  0, wx.CENTER, 10) 
    471471        self.sizer_new_smear.Add(self.smear_description_pin_max, 
    472                                   0, wx.CENTER, 10 ) 
     472                                  0, wx.CENTER, 10) 
    473473        self.sizer_new_smear.Add(self.smear_description_slit_width, 
    474                                   0, wx.CENTER, 10 ) 
     474                                  0, wx.CENTER, 10) 
    475475 
    476476        self.sizer_new_smear.Add(self.smear_pinhole_max, 0, wx.CENTER, 10) 
    477477        self.sizer_new_smear.Add(self.smear_slit_width, 0, wx.CENTER, 10) 
    478478        self.sizer_new_smear.Add(self.smear_data_right, 0, wx.CENTER, 10) 
    479             
     479 
    480480        self.sizer_set_smearer.Add(self.smear_message_new_s, 0, wx.CENTER, 10) 
    481481        self.sizer_set_smearer.Add(self.smear_message_new_p, 0, wx.CENTER, 10) 
    482482        self.sizer_set_smearer.Add((5, 2)) 
    483483        self.sizer_set_smearer.Add(self.sizer_new_smear, 0, wx.CENTER, 10) 
    484          
     484 
    485485        # add all to chi2 sizer 
    486486        sizer_smearer_box.Add(self.sizer_set_smearer) 
     
    489489        sizer_chi2.Add(weighting_box) 
    490490        sizer_chi2.Add((-1, 5)) 
    491          
     491 
    492492        # hide all smear messages and textctrl 
    493493        self._hide_all_smear_info() 
    494          
     494 
    495495        # get smear_selection 
    496496        self.current_smearer = smear_selection(self.data, self.model) 
     
    513513        #2D data? default 
    514514        is_2Ddata = False 
    515          
     515 
    516516        #check if it is 2D data 
    517517        if self.data.__class__.__name__ == "Data2D" or self.enable2D: 
    518518            is_2Ddata = True 
    519              
     519 
    520520        self.sizer5.Clear(True) 
    521       
     521 
    522522        self.qmin = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    523523                                    style=wx.TE_PROCESS_ENTER, 
     
    530530        qmin_tip += q_tip 
    531531        self.qmin.SetToolTipString(qmin_tip) 
    532       
     532 
    533533        self.qmax = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    534534                                       style=wx.TE_PROCESS_ENTER, 
     
    548548        id = wx.NewId() 
    549549        self.reset_qrange = wx.Button(self, id, 'Reset', size=(77, 20)) 
    550        
     550 
    551551        self.reset_qrange.Bind(wx.EVT_BUTTON, self.on_reset_clicked, id=id) 
    552552        self.reset_qrange.SetToolTipString("Reset Q range to the default") 
    553       
     553 
    554554        sizer = wx.GridSizer(2, 4, 2, 6) 
    555555 
     
    559559        self.btEditMask.SetToolTipString("Edit Mask.") 
    560560        self.EditMask_title = wx.StaticText(self, -1, ' Masking(2D)') 
    561          
     561 
    562562        sizer.Add(wx.StaticText(self, -1, '   Q range')) 
    563563        sizer.Add(wx.StaticText(self, -1, ' Min[1/A]')) 
     
    572572        boxsizer_range.Add((10, 10)) 
    573573        boxsizer_range.Add(sizer) 
    574          
     574 
    575575        boxsizer_range.Add((10, 15)) 
    576576        boxsizer_range.Add(sizer_fit) 
     
    586586        self.sizer5.Layout() 
    587587 
    588          
     588 
    589589    def _set_sizer_dispersion(self): 
    590590        """ 
     
    602602            ## the user didn't select dispersity display 
    603603            return 
    604              
     604 
    605605        self._reset_dispersity() 
    606          
     606 
    607607        ## fill a sizer with the combobox to select dispersion type 
    608608        model_disp = wx.StaticText(self, -1, 'Function') 
     
    632632        self.sizer4_4.Add(self.text_disp_1, (iy, ix), (1, 1), \ 
    633633                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    634          
     634 
    635635        ix += 1 
    636636        self.text_disp_min = wx.StaticText(self, -1, 'Min') 
     
    642642        self.sizer4_4.Add(self.text_disp_max, (iy, ix), (1, 1), 
    643643                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    644         
     644 
    645645        ix += 1 
    646646        npts = wx.StaticText(self, -1, 'Npts') 
     
    660660        self.sizer4_4.Add(model_disp, (iy, ix), (1, 1), 
    661661                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    662          
     662 
    663663        self.text_disp_max.Show(True) 
    664664        self.text_disp_min.Show(True) 
     
    680680                iy += 1 
    681681                for p in self.model.dispersion[item].keys(): 
    682          
     682 
    683683                    if p == "width": 
    684684                        ix = 0 
     
    713713                                           size=(_BOX_WIDTH / 1.3, 20), 
    714714                                           style=0) 
    715                    
     715 
    716716                        self.sizer4_4.Add(ctl2, (iy, ix), (1, 1), 
    717717                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     
    724724                                                  style=wx.TE_PROCESS_ENTER, 
    725725                                text_enter_callback=self._onparamRangeEnter) 
    726                          
     726 
    727727                        self.sizer4_4.Add(ctl3, (iy, ix), (1, 1), 
    728728                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    729                         
     729 
    730730                        ix = 5 
    731731                        ctl4 = self.ModelTextCtrl(self, -1, 
     
    733733                                                  style=wx.TE_PROCESS_ENTER, 
    734734                            text_enter_callback=self._onparamRangeEnter) 
    735                          
     735 
    736736                        self.sizer4_4.Add(ctl4, (iy, ix), (1, 1), 
    737737                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     
    739739                        ctl3.Show(True) 
    740740                        ctl4.Show(True) 
    741                                                                
     741 
    742742                    elif p == "npts": 
    743743                        ix = 6 
     
    746746                                                  size=(_BOX_WIDTH / 2.2, 20), 
    747747                                                  style=wx.TE_PROCESS_ENTER) 
    748                          
     748 
    749749                        Tctl.SetValue(str(format_number(value))) 
    750750                        self.sizer4_4.Add(Tctl, (iy, ix), (1, 1), 
     
    758758                                                  size=(_BOX_WIDTH / 2.2, 20), 
    759759                                                  style=wx.TE_PROCESS_ENTER) 
    760                          
     760 
    761761                        Tct2.SetValue(str(format_number(value))) 
    762762                        self.sizer4_4.Add(Tct2, (iy, ix), (1, 1), 
     
    777777                self.fittable_param.append([cb, name1, ctl1, text2, 
    778778                                            ctl2, ctl3, ctl4, disp_box]) 
    779                             
     779 
    780780        ix = 0 
    781781        iy += 1 
     
    794794                name2 = item + ".npts" 
    795795                name3 = item + ".nsigmas" 
    796                  
     796 
    797797                if not name1 in self.model.details: 
    798798                    self.model.details[name1] = ["", None, None] 
    799   
     799 
    800800                iy += 1 
    801801                for p in self.model.dispersion[item].keys(): 
    802          
     802 
    803803                    if p == "width": 
    804804                        ix = 0 
     
    832832                                poly_text += "It is the STD (ratio*mean)" 
    833833                                poly_text += " of the distribution.\n " 
    834                              
     834 
    835835                                values.SetToolTipString(poly_text) 
    836836                                first_orient = False 
     
    838838                        elif ctl1.IsShown(): 
    839839                            ctl1.Hide() 
    840                          
     840 
    841841                        self.sizer4_4.Add(ctl1, (iy, ix), (1, 1), wx.EXPAND) 
    842842                        ## text to show error sign 
     
    852852                                           size=(_BOX_WIDTH / 1.3, 20), 
    853853                                           style=0) 
    854                      
     854 
    855855                        self.sizer4_4.Add(ctl2, (iy, ix), (1, 1), 
    856856                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
     
    862862                                text2.Show(True) 
    863863                                ctl2.Show(True) 
    864                              
     864 
    865865                        ix = 4 
    866866                        ctl3 = self.ModelTextCtrl(self, -1, 
     
    873873 
    874874                        ctl3.Hide() 
    875                  
     875 
    876876                        ix = 5 
    877877                        ctl4 = self.ModelTextCtrl(self, -1, 
     
    882882                                          wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    883883                        ctl4.Hide() 
    884                          
     884 
    885885                        if self.data.__class__.__name__ == "Data2D" or \ 
    886886                                self.enable2D: 
    887887                            ctl3.Show(True) 
    888888                            ctl4.Show(True) 
    889                               
     889 
    890890                    elif p == "npts": 
    891891                        ix = 6 
     
    894894                                                 size=(_BOX_WIDTH / 2.2, 20), 
    895895                                                 style=wx.TE_PROCESS_ENTER) 
    896                          
     896 
    897897                        Tctl.SetValue(str(format_number(value))) 
    898898                        if self.data.__class__.__name__ == "Data2D" or \ 
     
    914914                                                  size=(_BOX_WIDTH / 2.2, 20), 
    915915                                                  style=wx.TE_PROCESS_ENTER) 
    916                          
     916 
    917917                        Tct2.SetValue(str(format_number(value))) 
    918918                        if self.data.__class__.__name__ == "Data2D" or \ 
     
    926926                        self.fixed_param.append([None, name3, Tct2, 
    927927                                                 None, None, None, None, None]) 
    928                                                     
     928 
    929929                        self.orientation_params_disp.append([None, name3, 
    930930                                        Tct2, None, None, None, None, None]) 
     
    943943                self.orientation_params_disp.append([cb, name1, ctl1, 
    944944                                            text2, ctl2, ctl3, ctl4, disp_box]) 
    945                         
     945 
    946946                if self.data.__class__.__name__ == "Data2D" or \ 
    947947                                self.enable2D: 
     
    949949                else: 
    950950                    disp_box.Hide() 
    951          
     951 
    952952        self.state.disp_cb_dict = copy.deepcopy(self.disp_cb_dict) 
    953            
     953 
    954954        self.state.model = self.model.clone() 
    955955        ## save state into 
     
    984984        """ 
    985985        flag = self._update_paramv_on_fit() 
    986      
     986 
    987987        wx.CallAfter(self._onparamEnter_helper) 
    988988        if not flag: 
     
    990990            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    991991            return 
    992          
     992 
    993993    def _onFit(self, event): 
    994994        """ 
     
    10151015                         StatusEvent(status="Fit: %s" % msg, type="stop")) 
    10161016            return 
    1017          
     1017 
    10181018        if len(self.param_toFit) <= 0: 
    10191019            msg = "Select at least one parameter to fit" 
     
    10221022                         StatusEvent(status=msg, type="stop")) 
    10231023            return 
    1024          
     1024 
    10251025        flag = self._update_paramv_on_fit() 
    1026          
     1026 
    10271027        if self.batch_on and not self._is_2D(): 
    10281028            if not self._validate_Npts_1D(): 
    10291029                return 
    1030                  
     1030 
    10311031        if not flag: 
    10321032            msg = "Fitting range or parameters are invalid" 
     
    10341034                         StatusEvent(status=msg, type="stop")) 
    10351035            return 
    1036                
     1036 
    10371037        self.select_param(event=None) 
    10381038 
     
    10501050        self.fit_started = self._manager.onFit(uid=self.uid) 
    10511051        wx.CallAfter(self.set_fitbutton) 
    1052      
     1052 
    10531053    def set_fitbutton(self): 
    10541054        """ 
     
    10591059        if self.is_mac: 
    10601060            return 
    1061          
     1061 
    10621062        if self.fit_started: 
    10631063            label = "Stop" 
     
    10701070        self.btFit.SetForegroundColour(color) 
    10711071        self.btFit.Enable(True) 
    1072                       
     1072 
    10731073    def get_weight_flag(self): 
    10741074        """ 
     
    10921092                break 
    10931093        return flag 
    1094                  
     1094 
    10951095    def _StopFit(self, event=None): 
    10961096        """ 
     
    11021102        self._manager._reset_schedule_problem(value=0) 
    11031103        self._on_fit_complete() 
    1104           
     1104 
    11051105    def rename_model(self): 
    11061106        """ 
     
    11091109        if self.model is not None: 
    11101110            self.model.name = "M" + str(self.index_model) 
    1111      
     1111 
    11121112    def _on_select_model(self, event=None): 
    11131113        """ 
     
    11411141        self.state.pinhole_smearer = self.pinhole_smearer.GetValue() 
    11421142        self.state.slit_smearer = self.slit_smearer.GetValue() 
    1143      
     1143 
    11441144        self.state.structurecombobox = self.structurebox.GetLabel() 
    11451145        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
     
    11611161                self.disable_smearer.SetValue(True) 
    11621162                self.enable_smearer.SetValue(False) 
    1163      
     1163 
    11641164            # more disables for 2D 
    11651165            self._set_smear_buttons() 
    1166              
     1166 
    11671167            try: 
    11681168                # update smearer sizer 
     
    11801180            ## event to post model to fit to fitting plugins 
    11811181            (ModelEventbox, EVT_MODEL_BOX) = wx.lib.newevent.NewEvent() 
    1182           
     1182 
    11831183            ## set smearing value whether or not 
    11841184            #    the data contain the smearing info 
     
    11901190                            caption=self.window_caption, 
    11911191                            qmax=float(self.qmax_x)) 
    1192     
     1192 
    11931193            self._manager._on_model_panel(evt=evt) 
    1194             self.mbox_description.SetLabel("Model [ %s ]"% str(self.model.name)) 
     1194            self.mbox_description.SetLabel("Model [ %s ]" % str(self.model.name)) 
    11951195            self.mbox_description.SetForegroundColour(wx.BLUE) 
    11961196            self.state.model = self.model.clone() 
     
    12251225                self.get_paste_params(copy_flag) 
    12261226                wx.CallAfter(self._onDraw, None) 
    1227                  
     1227 
    12281228        else: 
    12291229            self._draw_model() 
    1230              
     1230 
    12311231        if self.batch_on: 
    12321232            self.slit_smearer.Enable(False) 
     
    12341234            self.btEditMask.Disable() 
    12351235            self.EditMask_title.Disable() 
    1236              
     1236 
    12371237        self.Show(True) 
    12381238        self.SetupScrolling() 
    1239           
     1239 
    12401240    def _onparamEnter(self, event): 
    12411241        """ 
     
    12821282                if flag: 
    12831283                    #self.compute_chisqr(smearer= temp_smearer) 
    1284          
     1284 
    12851285                    ## new state posted 
    12861286                    if self.state_change: 
     
    12971297            msg = "Cannot Plot :Must enter a number!!!  " 
    12981298            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    1299               
     1299 
    13001300        self.save_current_state() 
    13011301        return 
    1302     
     1302 
    13031303    def _onparamRangeEnter(self, event): 
    13041304        """ 
     
    13231323        else: 
    13241324            tcrtl.SetBackgroundColour(wx.WHITE) 
    1325             
     1325 
    13261326        #self._undo.Enable(True) 
    13271327        self.save_current_state() 
     
    13291329        wx.PostEvent(self.parent, event) 
    13301330        self.state_change = False 
    1331          
    1332     def qrang_set_focus(self, event=None):   
     1331 
     1332    def qrang_set_focus(self, event=None): 
    13331333        """ 
    13341334        ON Qrange focus 
     
    13381338        #tcrtl = event.GetEventObject() 
    13391339        self._validate_qrange(self.qmin, self.qmax) 
    1340          
     1340 
    13411341    def qrange_click(self, event): 
    13421342        """ 
     
    13521352            d_group_id = self.data.group_id 
    13531353            act_ctrl = event.GetEventObject() 
    1354             wx.PostEvent(self._manager.parent,  
    1355                          PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id,  
     1354            wx.PostEvent(self._manager.parent, 
     1355                         PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id, 
    13561356                                     group_id=d_group_id, leftdown=is_click, 
    13571357                                     active=act_ctrl)) 
    1358              
     1358 
    13591359    def on_qrange_text(self, event): 
    13601360        """ 
     
    13681368        d_id = self.data.id 
    13691369        d_group_id = self.data.group_id 
    1370         wx.PostEvent(self._manager.parent,  
    1371                      PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id,  
    1372                                      group_id=d_group_id, leftdown=False,  
     1370        wx.PostEvent(self._manager.parent, 
     1371                     PlotQrangeEvent(ctrl=[self.qmin, self.qmax], id=d_id, 
     1372                                     group_id=d_group_id, leftdown=False, 
    13731373                                     active=act_ctrl)) 
    13741374        self._validate_qrange(self.qmin, self.qmax) 
    1375      
    1376     def on_key(self, event):    
     1375 
     1376    def on_key(self, event): 
    13771377        """ 
    13781378        On Key down 
     
    13851385            x_data = float(ctrl.GetValue()) 
    13861386        except: 
    1387             return  
     1387            return 
    13881388        key = event.GetKeyCode() 
    13891389        length = len(self.data.x) 
     
    14021402        ctrl.SetValue(str(self.data.x[indx])) 
    14031403        self._validate_qrange(self.qmin, self.qmax) 
    1404                 
     1404 
    14051405    def _onQrangeEnter(self, event): 
    14061406        """ 
     
    14631463                              (self.data.x <= self.qmax_x)) 
    14641464                self.Npts_fit.SetValue(str(len(self.data.x[index_data]))) 
    1465              
     1465 
    14661466            self.npts_x = self.Npts_total.GetValue() 
    14671467            self.create_default_data() 
     
    14711471            msg = "Model Error:wrong value entered!!!" 
    14721472            wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    1473          
     1473 
    14741474        self._draw_model() 
    14751475        self.save_current_state() 
     
    14781478        self.state_change = False 
    14791479        return 
    1480      
     1480 
    14811481    def _clear_Err_on_Fit(self): 
    14821482        """ 
     
    15081508                    if item[4] != None and item[4].IsShown(): 
    15091509                        item[4].Hide() 
    1510    
     1510 
    15111511        if len(self.fittable_param) > 0: 
    15121512            for item in self.fittable_param: 
     
    15281528                        item[4].Hide() 
    15291529        return 
    1530                  
     1530 
    15311531    def _get_defult_custom_smear(self): 
    15321532        """ 
     
    15421542        if self.dx_max == None: 
    15431543            self.dx_max = SMEAR_SIZE_H 
    1544          
     1544 
    15451545    def _get_smear_info(self): 
    15461546        """ 
    15471547        Get the smear info from data. 
    1548         
     1548 
    15491549        :return: self.smear_type, self.dq_l and self.dq_r, 
    15501550            respectively the type of the smear, dq_min and 
     
    15771577            self.dq_l = data.dx[0] 
    15781578            self.dq_r = data.dx[-1] 
    1579              
     1579 
    15801580        # check if it is slit smear and get min max if it is. 
    15811581        elif data.dxl != None or data.dxw != None: 
     
    15861586                self.dq_r = data.dxw[0] 
    15871587        #return self.smear_type,self.dq_l,self.dq_r 
    1588      
     1588 
    15891589    def _show_smear_sizer(self): 
    15901590        """ 
     
    16501650        self.smear_description_2d_y.Hide() 
    16511651        self.smear_description_2d.Hide() 
    1652          
     1652 
    16531653        self.smear_accuracy.Hide() 
    16541654        self.smear_data_left.Hide() 
     
    16641664        self.smear_message_new_p.Hide() 
    16651665        self.smear_message_new_s.Hide() 
    1666      
     1666 
    16671667    def _set_accuracy_list(self): 
    16681668        """ 
     
    16741674        for idx in range(len(list)): 
    16751675            self.smear_accuracy.Append(list[idx], idx) 
    1676              
     1676 
    16771677    def _set_fun_box_list(self, fun_box): 
    16781678        """ 
     
    16951695                    break 
    16961696            ind += 1 
    1697          
     1697 
    16981698    def _on_select_accuracy(self, event): 
    16991699        """ 
     
    17101710            if self.current_smearer != None: 
    17111711                self.current_smearer.set_accuracy(accuracy=\ 
    1712                                                   self.smear2d_accuracy)  
     1712                                                  self.smear2d_accuracy) 
    17131713        event.Skip() 
    17141714 
     
    17351735        # get ready for new event 
    17361736        event.Skip() 
    1737          
     1737 
    17381738    def _onMask(self, event): 
    17391739        """ 
     
    17421742        from sas.guiframe.local_perspectives.plotting.masking \ 
    17431743        import MaskPanel as MaskDialog 
    1744          
     1744 
    17451745        self.panel = MaskDialog(base=self, data=self.data, id=wx.NewId()) 
    17461746        self.panel.ShowModal() 
    1747          
     1747 
    17481748    def _draw_masked_model(self, event): 
    17491749        """ 
     
    17971797        """ 
    17981798        return self.enable2D 
    1799      
     1799 
    18001800    def compute_data_set_range(self, data_list): 
    18011801        """ 
     
    18101810                self.npts_data_set += npts 
    18111811        return self.qmin_data_set, self.qmax_data_set, self.npts_data_set 
    1812          
     1812 
    18131813    def compute_data_range(self, data): 
    18141814        """ 
     
    18261826                    npts = len(data.x) 
    18271827                except: 
    1828                     msg = "Unable to find min/max/length of \n data named %s"% \ 
    1829                                 data.filename   
     1828                    msg = "Unable to find min/max/length of \n data named %s" % \ 
     1829                                data.filename 
    18301830                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg, 
    18311831                                               info="error")) 
    18321832                    raise ValueError, msg 
    1833                      
     1833 
    18341834            else: 
    18351835                qmin = 0 
     
    18381838                    y = max(math.fabs(data.ymin), math.fabs(data.ymax)) 
    18391839                except: 
    1840                     msg = "Unable to find min/max of \n data named %s"% \ 
    1841                                 data.filename   
     1840                    msg = "Unable to find min/max of \n data named %s" % \ 
     1841                                data.filename 
    18421842                    wx.PostEvent(self._manager.parent, StatusEvent(status=msg, 
    18431843                                               info="error")) 
     
    18471847                npts = len(data.data) 
    18481848        return qmin, qmax, npts 
    1849              
     1849 
    18501850    def set_data(self, data): 
    18511851        """ 
     
    18741874            self.graph_id = data.group_id 
    18751875        self.data.group_id = self.graph_id 
    1876          
     1876 
    18771877        if self.data is None: 
    18781878            data_name = "" 
     
    18841884                self._set_bookmark_flag(not self.batch_on) 
    18851885                self._keep.Enable(not self.batch_on) 
    1886             if self.data.is_data:     
     1886            if self.data.is_data: 
    18871887                self._set_save_flag(True) 
    18881888                self._set_preview_flag(True) 
     
    19221922            self.dI_sqrdata.Enable(True) 
    19231923            self.dI_idata.Enable(True) 
    1924                
     1924 
    19251925            self.formfactorbox.Enable() 
    19261926            self.structurebox.Enable() 
     
    19341934                self.btEditMask.Enable() 
    19351935                self.EditMask_title.Enable() 
    1936      
     1936 
    19371937        self.Npts_total.SetValue(str(npts)) 
    19381938        #default:number of data points selected to fit 
     
    19411941        self.Npts_total.SetBackgroundColour(\ 
    19421942                                    self.GetParent().GetBackgroundColour()) 
    1943          
     1943 
    19441944        self.Npts_total.Bind(wx.EVT_MOUSE_EVENTS, self._npts_click) 
    19451945        self.pointsbox.Disable() 
     
    19521952        if check_data_validity(data): 
    19531953            self.data_box_description.SetForegroundColour(wx.BLUE) 
    1954          
     1954 
    19551955        if self.batch_on: 
    19561956            self.slit_smearer.Enable(False) 
     
    19881988                                      title=str(self.data.title))) 
    19891989            self._draw_model() 
    1990      
     1990 
    19911991    def _npts_click(self, event): 
    19921992        """ 
     
    19951995        """ 
    19961996        pass 
    1997      
     1997 
    19981998    def reset_page(self, state, first=False): 
    19991999        """ 
     
    20022002        try: 
    20032003            self.reset_page_helper(state) 
    2004      
     2004 
    20052005            self.select_param(event=None) 
    20062006            #Save state_fit 
     
    20102010            msg = "Error: This model state has missing or outdated " 
    20112011            msg += "information.\n" 
    2012             msg += "%s"% (sys.exc_value) 
     2012            msg += "%s" % (sys.exc_value) 
    20132013            wx.PostEvent(self._manager.parent, 
    20142014                         StatusEvent(status=msg, info="error")) 
    20152015        self._lay_out() 
    20162016        self.Refresh() 
    2017          
     2017 
    20182018    def get_range(self): 
    20192019        """ 
     
    20212021        """ 
    20222022        return float(self.qmin_x), float(self.qmax_x) 
    2023      
     2023 
    20242024    def get_npts2fit(self): 
    20252025        """ 
    20262026        return numbers of data points within qrange 
    2027          
     2027 
    20282028        :Note: This is to normalize chisq by Npts of fit 
    2029          
     2029 
    20302030        """ 
    20312031        if self.data is None: 
     
    20522052        """ 
    20532053        self.Npts_fit.SetValue(str(self.get_npts2fit())) 
    2054          
     2054 
    20552055    def get_chi2(self): 
    20562056        """ 
     
    20582058        """ 
    20592059        return self.tcChi.GetValue() 
    2060          
     2060 
    20612061    def onsetValues(self, chisqr, p_name, out, cov): 
    20622062        """ 
    20632063        Build the panel from the fit result 
    2064          
     2064 
    20652065        :param chisqr: Value of the goodness of fit metric 
    20662066        :param p_name: the name of parameters 
    20672067        :param out: list of parameter with the best value found during fitting 
    20682068        :param cov: Covariance matrix 
    2069     
    2070         """ 
    2071          
     2069 
     2070        """ 
     2071 
    20722072        # make sure stop button to fit button all the time 
    20732073        self._on_fit_complete() 
    20742074        if out == None or not numpy.isfinite(chisqr): 
    20752075            raise ValueError, "Fit error occured..." 
    2076          
     2076 
    20772077        is_modified = False 
    20782078        has_error = False 
    20792079        dispersity = '' 
    2080          
     2080 
    20812081        #Hide textctrl boxes of errors. 
    20822082        self._clear_Err_on_Fit() 
    2083          
     2083 
    20842084        #Check if chi2 is finite 
    20852085        if chisqr != None and numpy.isfinite(chisqr): 
     
    20902090        else: 
    20912091            self.tcChi.SetValue("-") 
    2092          
     2092 
    20932093        #Hide error title 
    20942094        if self.text2_3.IsShown() and not self.is_mac: 
    20952095            self.text2_3.Hide() 
    2096        
     2096 
    20972097        try: 
    20982098            if self.enable_disp.GetValue(): 
     
    21032103            dispersity = None 
    21042104            pass 
    2105        
     2105 
    21062106        i = 0 
    21072107        #Set the panel when fit result are list 
     
    21212121                        val_out = format_number(out[ind], True) 
    21222122                        item[2].SetValue(val_out) 
    2123      
     2123 
    21242124                    if(cov != None and len(cov) == len(out)): 
    21252125                        try: 
     
    21332133                        except: 
    21342134                            pass 
    2135                          
     2135 
    21362136                        if cov[ind] != None: 
    21372137                            if numpy.isfinite(float(cov[ind])): 
     
    21602160        ## save current state 
    21612161        self.save_current_state() 
    2162          
     2162 
    21632163        if not self.is_mac: 
    21642164            self.Layout() 
     
    21672167        #plot model ( when drawing, do not update chisqr value again) 
    21682168        self._draw_model(update_chisqr=False, source='fit') 
    2169      
     2169 
    21702170    def onWeighting(self, event): 
    21712171        """ 
     
    21742174        self.weightbt_string = event.GetEventObject().GetLabelText() 
    21752175        self._set_weight() 
    2176          
     2176 
    21772177    def _set_weight(self, is_2D=None): 
    21782178        """ 
     
    21912191                                     is2d=is_2D, 
    21922192                                     fid=None) 
    2193      
     2193 
    21942194    def onPinholeSmear(self, event): 
    21952195        """ 
    21962196        Create a custom pinhole smear object that will change the way residuals 
    21972197        are compute when fitting 
    2198          
     2198 
    21992199        :Note: accuracy is given by strings'High','Med', 'Low' FOR 2d, 
    22002200                     None for 1D 
    2201                       
     2201 
    22022202        """ 
    22032203        if self.model == None: 
     
    22322232        # hide all silt sizer 
    22332233        self._hide_all_smear_info() 
    2234          
     2234 
    22352235        # show relevant slit sizers 
    22362236        self._show_smear_sizer() 
     
    22382238        self.sizer_set_smearer.Layout() 
    22392239        self.Layout() 
    2240          
     2240 
    22412241        if event != None: 
    22422242            event.Skip() 
     
    22452245        event = PageInfoEvent(page=self) 
    22462246        wx.PostEvent(self.parent, event) 
    2247          
     2247 
    22482248    def _is_changed_pinhole(self): 
    22492249        """ 
    22502250        check if any of pinhole smear is changed 
    2251          
     2251 
    22522252        :return: True or False 
    2253          
     2253 
    22542254        """ 
    22552255        # get the values 
    22562256        pin_min = self.smear_pinhole_min.GetValue() 
    22572257        pin_max = self.smear_pinhole_max.GetValue() 
    2258                      
     2258 
    22592259        # Check changes in slit width 
    22602260        try: 
     
    22642264        if self.dx_min != dx_min: 
    22652265            return True 
    2266          
     2266 
    22672267        # Check changes in slit heigth 
    22682268        try: 
     
    22732273            return True 
    22742274        return False 
    2275      
     2275 
    22762276    def _set_pinhole_smear(self): 
    22772277        """ 
    22782278        Set custom pinhole smear 
    2279          
     2279 
    22802280        :return: msg 
    2281          
     2281 
    22822282        """ 
    22832283        # copy data 
     
    22952295            data.dxw = None 
    22962296        msg = None 
    2297     
     2297 
    22982298        get_pin_min = self.smear_pinhole_min 
    22992299        get_pin_max = self.smear_pinhole_max 
     
    23492349            get_pin_max.SetBackgroundColour("white") 
    23502350        ## set smearing value whether or not the data contain the smearing info 
    2351          
     2351 
    23522352        self._manager.set_smearer(smearer=self.current_smearer, 
    23532353                            fid=self.data.id, 
     
    23572357                            uid=self.uid) 
    23582358        return msg 
    2359          
     2359 
    23602360    def update_pinhole_smear(self): 
    23612361        """ 
    23622362        called by kill_focus on pinhole TextCntrl 
    23632363        to update the changes 
    2364          
     2364 
    23652365        :return: False when wrong value was entered 
    2366          
     2366 
    23672367        """ 
    23682368        # msg default 
     
    23772377        else: 
    23782378            return True 
    2379                       
     2379 
    23802380    def onSlitSmear(self, event): 
    23812381        """ 
     
    24102410        else: 
    24112411            is_new_slit = True 
    2412          
     2412 
    24132413        # if any value is changed 
    24142414        if is_new_slit: 
    24152415            msg = self._set_slit_smear() 
    2416              
     2416 
    24172417        # hide all silt sizer 
    24182418        self._hide_all_smear_info() 
     
    24332433        """ 
    24342434        check if any of slit lengths is changed 
    2435          
     2435 
    24362436        :return: True or False 
    2437          
     2437 
    24382438        """ 
    24392439        # get the values 
    24402440        width = self.smear_slit_width.GetValue() 
    24412441        height = self.smear_slit_height.GetValue() 
    2442          
     2442 
    24432443        # check and change the box bg color if it was pink 
    24442444        #    but it should be white now 
     
    24482448        if width.lstrip().rstrip() == "": 
    24492449            self.smear_slit_width.SetBackgroundColour(wx.WHITE) 
    2450              
     2450 
    24512451        # Check changes in slit width 
    24522452        if width == "": 
     
    24592459        if self.dxw != dxw: 
    24602460            return True 
    2461          
     2461 
    24622462        # Check changes in slit heigth 
    24632463        if height == "": 
     
    24722472 
    24732473        return False 
    2474      
     2474 
    24752475    def _set_slit_smear(self): 
    24762476        """ 
    24772477        Set custom slit smear 
    2478          
     2478 
    24792479        :return: message to inform the user about the validity 
    24802480            of the values entered for slit smear 
     
    24902490        data.dxw = None 
    24912491        msg = None 
    2492     
     2492 
    24932493        try: 
    24942494            self.dxl = float(self.smear_slit_height.GetValue()) 
     
    25152515            else: 
    25162516                self.smear_slit_width.SetBackgroundColour(wx.WHITE) 
    2517                
     2517 
    25182518        self.current_smearer = smear_selection(data, self.model) 
    25192519        ## set smearing value whether or not the data contain the smearing info 
     
    25252525                                 uid=self.uid) 
    25262526        return msg 
    2527      
     2527 
    25282528    def update_slit_smear(self): 
    25292529        """ 
    25302530        called by kill_focus on pinhole TextCntrl 
    25312531        to update the changes 
    2532          
     2532 
    25332533        :return: False when wrong value was entered 
    2534          
     2534 
    25352535        """ 
    25362536        # msg default 
     
    25462546        else: 
    25472547            return True 
    2548                              
     2548 
    25492549    def onSmear(self, event): 
    25502550        """ 
     
    25722572                self._manager.page_finder[self.uid].add_data(data=self.data) 
    25732573        temp_smearer = self.on_smear_helper() 
    2574          
     2574 
    25752575        self.sizer_set_smearer.Layout() 
    25762576        self.Layout() 
    25772577        self._set_weight() 
    2578          
     2578 
    25792579        ## set smearing value whether or not the data contain the smearing info 
    25802580        wx.CallAfter(self._manager.set_smearer, uid=self.uid, 
     
    25852585                     enable_smearer=not self.disable_smearer.GetValue(), 
    25862586                     draw=True) 
    2587          
     2587 
    25882588        self.state.enable_smearer = self.enable_smearer.GetValue() 
    25892589        self.state.disable_smearer = self.disable_smearer.GetValue() 
    25902590        self.state.pinhole_smearer = self.pinhole_smearer.GetValue() 
    25912591        self.state.slit_smearer = self.slit_smearer.GetValue() 
    2592          
     2592 
    25932593    def on_smear_helper(self, update=False): 
    25942594        """ 
    25952595        Help for onSmear 
    2596          
     2596 
    25972597        :param update: force or not to update 
    25982598        """ 
     
    26062606        self._hide_all_smear_info() 
    26072607        data = copy.deepcopy(self.data) 
    2608          
     2608 
    26092609        # make sure once more if it is smearer 
    26102610        temp_smearer = smear_selection(data, self.model) 
     
    26292629            self.onSlitSmear(None) 
    26302630        self._show_smear_sizer() 
    2631          
     2631 
    26322632        return temp_smearer 
    2633      
     2633 
    26342634    def on_complete_chisqr(self, event): 
    26352635        """ 
     
    26482648        except: 
    26492649            pass 
    2650              
     2650 
    26512651    def get_all_checked_params(self): 
    26522652        """ 
     
    26642664                    self.param_toFit.append(item) 
    26652665        self.save_current_state_fit() 
    2666         
     2666 
    26672667        event = PageInfoEvent(page=self) 
    26682668        wx.PostEvent(self.parent, event) 
     
    26722672                param2fit.append(item[1]) 
    26732673        self._manager.set_param2fit(self.uid, param2fit) 
    2674                  
     2674 
    26752675    def select_all_param(self, event): 
    26762676        """ 
     
    27062706                            except: 
    27072707                                pass 
    2708      
     2708 
    27092709                        else: 
    27102710                            ## for 1D all parameters except orientation 
     
    27262726                    item[0].SetValue(False) 
    27272727                self.param_toFit = [] 
    2728             
     2728 
    27292729        self.save_current_state_fit() 
    2730         
     2730 
    27312731        if event != None: 
    27322732            #self._undo.Enable(True) 
     
    27392739                param2fit.append(item[1]) 
    27402740        self.parent._manager.set_param2fit(self.uid, param2fit) 
    2741      
     2741 
    27422742    def select_param(self, event): 
    27432743        """ 
     
    27922792        else: 
    27932793            self.cb1.SetValue(False) 
    2794         
     2794 
    27952795        self.save_current_state_fit() 
    27962796        if event != None: 
     
    27982798            event = PageInfoEvent(page=self) 
    27992799            wx.PostEvent(self.parent, event) 
    2800          
     2800 
    28012801        param2fit = [] 
    28022802        for item in self.param_toFit: 
     
    28042804                param2fit.append(item[1]) 
    28052805        self._manager.set_param2fit(self.uid, param2fit) 
    2806          
     2806 
    28072807    def set_model_param_sizer(self, model): 
    28082808        """ 
    28092809        Build the panel from the model content 
    2810          
     2810 
    28112811        :param model: the model selected in combo box for fitting purpose 
    2812          
     2812 
    28132813        """ 
    28142814        self.sizer3.Clear(True) 
     
    28202820        self.orientation_params = [] 
    28212821        self.orientation_params_disp = [] 
    2822          
     2822 
    28232823        if model == None: 
    28242824            self.sizer3.Layout() 
     
    28342834        ## save the current model 
    28352835        self.model = model 
    2836             
     2836 
    28372837        keys = self.model.getParamList() 
    2838          
     2838 
    28392839        #list of dispersion parameters 
    28402840        self.disp_list = self.model.getDispParamList() 
     
    28922892 
    28932893        keys.sort(custom_compare) 
    2894      
     2894 
    28952895        iy = 0 
    28962896        ix = 0 
     
    29002900        self.cb1.SetToolTipString("To check/uncheck all the boxes below.") 
    29012901        self.cb1.SetValue(True) 
    2902          
     2902 
    29032903        sizer.Add(self.cb1, (iy, ix), (1, 1), \ 
    29042904                             wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 
     
    29282928                            wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    29292929        self.text2_4.Hide() 
    2930          
     2930 
    29312931        CHECK_STATE = self.cb1.GetValue() 
    29322932        for item in keys: 
    2933              
     2933 
    29342934            if not item in self.disp_list and not item in \ 
    29352935                    self.model.orientation_params: 
    2936                  
     2936 
    29372937                ##prepare a spot to store errors 
    29382938                if not item in self.model.details: 
    29392939                    self.model.details[item] = ["", None, None] 
    2940           
     2940 
    29412941                iy += 1 
    29422942                ix = 0 
     
    29782978                    #cb.SetValue(True) 
    29792979                    wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 
    2980                      
     2980 
    29812981                    sizer.Add(cb, (iy, ix), (1, 1), 
    29822982                              wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 
     
    30173017                    sizer.Add(ctl3, (iy, ix), (1, 1), 
    30183018                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    3019              
     3019 
    30203020                    ix += 1 
    30213021                    ctl4 = self.ModelTextCtrl(self, -1, 
     
    30283028                    sizer.Add(ctl4, (iy, ix), (1, 1), 
    30293029                              wx.EXPAND | wx.FIXED_MINSIZE, 0) 
    3030      
     3030 
    30313031                    ix += 1 
    30323032                    # Units 
     
    30393039                    sizer.Add(units, (iy, ix), (1, 1), 
    30403040                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    3041                          
     3041 
    30423042                    self.parameters.append([cb, item, ctl1, 
    30433043                                            text2, ctl2, ctl3, ctl4, units]) 
    3044                                    
     3044 
    30453045        iy += 1 
    30463046        sizer.Add((10, 10), (iy, ix), (1, 1), 
    30473047                  wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    3048          
     3048 
    30493049        # type can be either Guassian or Array 
    30503050        if len(self.model.dispersion.values()) > 0: 
     
    30523052        else: 
    30533053            type = "Gaussian" 
    3054              
     3054 
    30553055        iy += 1 
    30563056        ix = 0 
     
    30593059            if item in self.model.orientation_params: 
    30603060                orient_angle = wx.StaticText(self, -1, '[For 2D only]:') 
    3061                 mag_on_button = wx.Button(self, -1, "Magnetic ON" ) 
     3061                mag_on_button = wx.Button(self, -1, "Magnetic ON") 
    30623062                mag_on_button.Bind(wx.EVT_BUTTON, self._on_mag_on) 
    3063                 mag_help_button = wx.Button(self, -1,"Magnetic angles?" ) 
    3064                 mag_help_button.Bind(wx.EVT_BUTTON,self._on_mag_help) 
     3063                mag_help_button = wx.Button(self, -1, "Magnetic angles?") 
     3064                mag_help_button.Bind(wx.EVT_BUTTON, self._on_mag_help) 
    30653065                sizer.Add(orient_angle, (iy, ix), (1, 1), 
    30663066                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
    30673067                iy += 1 
    3068                 sizer.Add(mag_on_button,(iy, ix ),(1,1),  
    3069                           wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)  
    3070                 sizer.Add(mag_help_button,(iy, ix + 1),(1,1),  
    3071                           wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)  
    3072                  
     3068                sizer.Add(mag_on_button, (iy, ix), (1, 1), 
     3069                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
     3070                sizer.Add(mag_help_button, (iy, ix + 1), (1, 1), 
     3071                          wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 15) 
     3072 
    30733073                #handle the magnetic buttons 
    30743074                if not self._has_magnetic: 
     
    30823082                    if self.magnetic_on: 
    30833083                        mag_on_button.SetLabel("Magnetic OFF") 
    3084                         mag_help_button.Show(True)  
     3084                        mag_help_button.Show(True) 
    30853085                    else: 
    30863086                        mag_on_button.SetLabel("Magnetic ON") 
    30873087                        mag_help_button.Show(False) 
    3088                          
     3088 
    30893089                if not self.data.__class__.__name__ == "Data2D" and \ 
    30903090                        not self.enable2D: 
     
    30933093                    orient_angle.Show(True) 
    30943094                break 
    3095        
     3095 
    30963096        #For Gaussian only 
    30973097        if type.lower() != "array": 
     
    31043104                    if not item in self.model.details: 
    31053105                        self.model.details[item] = ["", None, None] 
    3106                            
     3106 
    31073107                    iy += 1 
    31083108                    ix = 0 
     
    31193119                    sizer.Add(cb, (iy, ix), (1, 1), 
    31203120                              wx.LEFT | wx.EXPAND | wx.ADJUST_MINSIZE, 5) 
    3121      
     3121 
    31223122                    ## add parameter value 
    31233123                    ix += 1 
     
    31483148 
    31493149                    ctl2.Hide() 
    3150                      
     3150 
    31513151                    ix += 1 
    31523152                    ctl3 = self.ModelTextCtrl(self, -1, 
     
    31543154                                              style=wx.TE_PROCESS_ENTER, 
    31553155                                text_enter_callback=self._onparamRangeEnter) 
    3156                      
     3156 
    31573157                    sizer.Add(ctl3, (iy, ix), (1, 1), 
    31583158                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    31593159                    ctl3.Hide() 
    3160                   
     3160 
    31613161                    ix += 1 
    31623162                    ctl4 = self.ModelTextCtrl(self, -1, 
     
    31663166                    sizer.Add(ctl4, (iy, ix), (1, 1), 
    31673167                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    3168                     
     3168 
    31693169                    ctl4.Hide() 
    3170                      
     3170 
    31713171                    if self.data.__class__.__name__ == "Data2D" or \ 
    31723172                            self.enable2D: 
     
    31763176                        ctl3.Show(True) 
    31773177                        ctl4.Show(True) 
    3178                      
     3178 
    31793179                    ix += 1 
    31803180                    # Units 
     
    31913191                    else: 
    31923192                        units.Hide() 
    3193                      
     3193 
    31943194                    sizer.Add(units, (iy, ix), (1, 1), 
    31953195                              wx.EXPAND | wx.ADJUST_MINSIZE, 0) 
    3196                                            
     3196 
    31973197                    self.parameters.append([cb, item, ctl1, 
    31983198                                            text2, ctl2, ctl3, ctl4, units]) 
    31993199                    self.orientation_params.append([cb, item, ctl1, 
    32003200                                            text2, ctl2, ctl3, ctl4, units]) 
    3201                
     3201 
    32023202        iy += 1 
    32033203        box_description.SetForegroundColour(wx.BLUE) 
     
    32353235            wx.PostEvent(self._manager.parent, 
    32363236                        StatusEvent(status=msg, info=infor)) 
    3237          
     3237 
    32383238    def _onModel2D(self, event): 
    32393239        """ 
     
    32433243            self.model_view.SetLabel("Show 1D") 
    32443244            self.enable2D = True 
    3245                
     3245 
    32463246        else: 
    32473247            self.model_view.SetLabel("Show 2D") 
     
    32583258        self.SetupScrolling() 
    32593259        self._draw_model() 
    3260          
     3260 
    32613261        self.state.enable2D = copy.deepcopy(self.enable2D) 
    3262      
     3262 
    32633263    def _set_smear_buttons(self): 
    32643264        """ 
     
    32743274            self.slit_smearer.Enable(True) 
    32753275            self.pinhole_smearer.Enable(True) 
    3276              
    3277              
     3276 
     3277 
    32783278class BGTextCtrl(wx.TextCtrl): 
    32793279    """ 
     
    32863286        self.SetEditable(False) 
    32873287        self.SetBackgroundColour(self.GetParent().parent.GetBackgroundColour()) 
    3288          
     3288 
    32893289        # Bind to mouse event to avoid text highlighting 
    32903290        # The event will be skipped once the call-back 
    32913291        # is called. 
    32923292        self.Bind(wx.EVT_MOUSE_EVENTS, self._click) 
    3293          
     3293 
    32943294    def _click(self, event): 
    32953295        """ 
Note: See TracChangeset for help on using the changeset viewer.