Ignore:
Timestamp:
Mar 26, 2010 3:50:29 PM (14 years ago)
Author:
Jae Cho <jhjcho@…>
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:
83ad478
Parents:
c6036f5
Message:

Added two more types of smear selections: Removed kill_focus on param box because it becomes very expensive with extensive model calculation

File:
1 edited

Legend:

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

    r2f189dc r7609f1a  
    172172                      if set_focus_callback is None else set_focus_callback 
    173173            self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus) 
    174             self.Bind(wx.EVT_KILL_FOCUS, parent._onparamEnter \ 
     174            self.Bind(wx.EVT_KILL_FOCUS, self._silent_kill_focus \ 
    175175                      if kill_focus_callback is None else kill_focus_callback)                 
    176176            self.Bind(wx.EVT_TEXT_ENTER, parent._onparamEnter \ 
     
    210210                    if start==end: 
    211211                        control.SetSelection(-1,-1) 
    212                   
     212                         
     213        def _silent_kill_focus(self,event): 
     214            """ 
     215               do nothing to kill focus 
     216            """ 
     217            event.Skip() 
     218            pass 
     219     
    213220    def set_page_info(self, page_info): 
    214221        """ 
     
    318325        self.event_owner = owner     
    319326        self.state.event_owner = owner 
    320    
     327         
    321328    def get_data(self): 
    322329        """ 
    323330            return the current data  
    324331        """ 
    325         return self.data 
     332        return self.data   
     333     
    326334    def set_manager(self, manager): 
    327335        """ 
     
    664672            self.state.enable_smearer = copy.deepcopy(self.enable_smearer.GetValue()) 
    665673            self.state.disable_smearer = copy.deepcopy(self.disable_smearer.GetValue()) 
    666              
     674 
     675        self.state.pinhole_smearer = copy.deepcopy(self.pinhole_smearer.GetValue()) 
     676        self.state.slit_smearer = copy.deepcopy(self.slit_smearer.GetValue())   
     677                   
    667678        if hasattr(self,"disp_box"): 
    668679            self.state.disp_box = self.disp_box.GetCurrentSelection() 
     
    744755            self.state.enable_smearer = copy.deepcopy(self.enable_smearer.GetValue()) 
    745756            self.state.disable_smearer = copy.deepcopy(self.disable_smearer.GetValue()) 
     757             
     758        self.state.pinhole_smearer = copy.deepcopy(self.pinhole_smearer.GetValue()) 
     759        self.state.slit_smearer = copy.deepcopy(self.slit_smearer.GetValue())   
    746760             
    747761        if hasattr(self,"disp_box"): 
     
    897911            self.disable_smearer.SetValue(state.disable_smearer) 
    898912            self.onSmear(event=None)            
     913        self.pinhole_smearer.SetValue(state.pinhole_smearer) 
     914        self.slit_smearer.SetValue(state.slit_smearer) 
     915        ## we have two more options for smearing 
     916        if self.pinhole_smearer.GetValue(): self.onPinholeSmear(event=None) 
     917        elif self.slit_smearer.GetValue(): self.onSlitSmear(event=None) 
    899918        
    900919        ## reset state of checkbox,textcrtl  and dispersity parameters value 
     
    10331052        """ 
    10341053        #flag for qmin qmax check values 
    1035         flag =False 
     1054        flag = True 
    10361055        is_modified = False 
    10371056        ##So make sure that update param values on_Fit. 
     
    10541073                if tempmax != self.qmax_x: 
    10551074                    self.qmax_x = tempmax 
    1056                 flag = True 
    1057             else: 
    1058                 flag = False 
    1059         else: 
     1075                if tempmax == tempmin: 
     1076                    flag = False     
     1077                temp_smearer = None 
     1078                if not self.disable_smearer.GetValue(): 
     1079                    temp_smearer= self.current_smearer 
     1080                    if self.slit_smearer.GetValue(): 
     1081                        flag = self.update_slit_smear() 
     1082                    elif self.pinhole_smearer.GetValue(): 
     1083                        flag = self.update_pinhole_smear() 
     1084                    else: 
     1085                        self.manager.set_smearer(smearer=temp_smearer, qmin= float(self.qmin_x), 
     1086                                                 qmax= float(self.qmax_x)) 
     1087                elif self.data.__class__.__name__ !="Data2D": 
     1088                    self.manager.set_smearer(smearer=temp_smearer, qmin= float(self.qmin_x), 
     1089                                                 qmax= float(self.qmax_x)) 
     1090            else: flag = False 
     1091        else:  
    10601092            flag = False 
    1061             msg= "Cannot Fit :Must select a model!!!  " 
     1093         
     1094        if not flag: 
     1095            msg= "Cannot Fit :Must select a model or Fitting range is not valid!!!  " 
    10621096            wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
    1063          
     1097             
     1098        self.save_current_state() 
    10641099        return flag                            
    10651100                
     
    12921327            temp_smear=None 
    12931328            if hasattr(self, "enable_smearer"): 
    1294                 if self.enable_smearer.GetValue(): 
    1295                     temp_smear= self.smearer 
     1329                if not self.disable_smearer.GetValue(): 
     1330                    temp_smear= self.current_smearer 
    12961331             
    12971332            self.manager.draw_model(self.model, data=self.data, 
     
    14491484      
    14501485        return 0 
    1451      
    1452     def _onparamEnter(self,event): 
     1486 
     1487    #def _onparamEnter(self,event): 
    14531488        """  
    1454             when enter value on panel redraw model according to changed 
     1489        #when enter value on panel redraw model according to changed 
     1490        """ 
    14551491        """ 
    14561492        tcrtl= event.GetEventObject() 
     
    14761512            #event.Skip() 
    14771513            return  
    1478     
     1514       """ 
    14791515    def _onQrangeEnter(self, event): 
    14801516        """ 
     
    15991635            qmin = float(qmin_ctrl.GetValue()) 
    16001636            qmax = float(qmax_ctrl.GetValue()) 
    1601             if qmin < qmax: 
     1637            if qmin <= qmax: 
    16021638                #Make sure to set both colours white.   
    16031639                qmin_ctrl.SetBackgroundColour(wx.WHITE) 
     
    19461982 
    19471983        self.qmin    = self.ModelTextCtrl(self, -1,size=(_BOX_WIDTH,20),style=wx.TE_PROCESS_ENTER, 
    1948                                             kill_focus_callback = self._onQrangeEnter, 
    1949                                             text_enter_callback = self._onQrangeEnter) 
     1984                                            text_enter_callback = self._onparamEnter) 
    19501985        self.qmin.SetValue(str(self.qmin_x)) 
    19511986        self.qmin.SetToolTipString("Minimun value of Q in linear scale.") 
    19521987      
    19531988        self.qmax    = self.ModelTextCtrl(self, -1,size=(_BOX_WIDTH,20),style=wx.TE_PROCESS_ENTER, 
    1954                                             kill_focus_callback = self._onQrangeEnter, 
    1955                                             text_enter_callback = self._onQrangeEnter) 
     1989                                            text_enter_callback = self._onparamEnter) 
    19561990        self.qmax.SetValue(str(self.qmax_x)) 
    19571991        self.qmax.SetToolTipString("Maximum value of Q in linear scale.") 
     
    20372071        #On 'Reset' button  for Q range clicked 
    20382072        """ 
     2073        flag = True 
    20392074        if self.check_invalid_panel(): 
    20402075            return 
     
    20492084            self.qmin_x = min(self.data.x) 
    20502085            self.qmax_x = max(self.data.x) 
     2086            # check smearing 
     2087            if not self.disable_smearer.GetValue(): 
     2088                temp_smearer= self.current_smearer 
     2089                ## set smearing value whether or not the data contain the smearing info 
     2090                if self.slit_smearer.GetValue(): 
     2091                    flag = self.update_slit_smear() 
     2092                elif self.pinhole_smearer.GetValue(): 
     2093                    flag = self.update_pinhole_smear() 
     2094                else: 
     2095                    flag = True 
    20512096        else: 
    20522097            self.qmin_x = _QMIN_DEFAULT 
     
    20552100            self.state.npts = self.num_points 
    20562101             
    2057  
     2102        if flag == False: 
     2103            msg= "Cannot Plot :Must enter a number!!!  " 
     2104            wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     2105             
     2106        self.save_current_state() 
    20582107        self.state.qmin = self.qmin_x 
    20592108        self.state.qmax = self.qmax_x 
Note: See TracChangeset for help on using the changeset viewer.