Changeset a074145 in sasview for sansview/perspectives/fitting


Ignore:
Timestamp:
Apr 9, 2009 3:06:08 PM (16 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
2d5f7a1
Parents:
800fc80
Message:

removing unsused code in fitpage

Location:
sansview/perspectives/fitting
Files:
5 edited

Legend:

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

    r7c845cb ra074145  
    33import wx 
    44import numpy 
     5import time 
    56 
    67from sans.guiframe.utils import format_number 
     
    6768         
    6869        self.state= PageState(parent= self.parent,model=self.model, data=self.data) 
     70         
     71        ## retrieve saved state 
     72        self.number_saved_state= 0 
     73        ## dictionary of saved state 
     74        self.saved_states={} 
     75        self.slicerpop = wx.Menu() 
     76        self.slicerpop.SetTitle("Model Saved States") 
     77        ## save initial state on context menu 
     78        self.onSave(event=None) 
     79        self.Bind(wx.EVT_CONTEXT_MENU, self.onContextMenu) 
     80         
    6981        ## create the basic structure of the panel with empty sizer 
    7082        self.define_page_structure() 
     
    7284        self.set_dispers_sizer() 
    7385        self._fill_save_sizer() 
    74          
    7586        ## layout 
    7687        self.set_layout() 
    7788        
     89        
     90    def onContextMenu(self, event):  
     91        """ 
     92            Retrieve the state selected state 
     93        """ 
     94        pos = event.GetPosition() 
     95        pos = self.ScreenToClient(pos) 
     96        self.PopupMenu(self.slicerpop, pos)  
     97         
     98         
    7899         
    79100    def define_page_structure(self): 
     
    106127        self.vbox.Add(self.sizer6) 
    107128         
     129         
    108130    def set_layout(self): 
    109131        """ 
     
    117139        self.Centre() 
    118140         
     141         
    119142    def set_scroll(self): 
    120143        self.SetScrollbars(20,20,200,100) 
    121144        self.Layout()    
    122145        self.SetAutoLayout(True) 
     146          
    123147          
    124148    def set_owner(self,owner): 
     
    166190        sizer_dispersion = wx.BoxSizer(wx.HORIZONTAL) 
    167191        sizer_dispersion.Add((20,20)) 
    168         sizer_dispersion.Add(wx.StaticText(self,-1,'Polydispersity: ')) 
     192        name="Polydispersity and \nOrientation average " 
     193        sizer_dispersion.Add(wx.StaticText(self,-1,name)) 
    169194        sizer_dispersion.Add(self.enable_disp ) 
    170195        sizer_dispersion.Add((20,20)) 
     
    273298        return 
    274299     
     300     
     301    def onResetModel(self, event): 
     302        """ 
     303            Reset model state 
     304        """ 
     305        ## post help message for the selected model  
     306        msg = self.slicerpop.GetHelpString(event.GetId()) 
     307        msg +=" reloaded" 
     308        wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     309         
     310        name= self.slicerpop.GetLabel(event.GetId()) 
     311        if name in self.saved_states.keys(): 
     312            previous_state = self.saved_states[name] 
     313            self.reset_page(previous_state) 
     314             
     315    
    275316    def onSave(self, event): 
    276317        """ 
    277318            save history of the data and model 
    278319        """ 
    279         self.state.model= self.model 
    280         self.state.data = self.data 
    281         import os 
    282                   
    283              
    284         path = None 
    285         dlg = wx.FileDialog(self, "Choose a file", os.getcwd(), "", "*.txt", wx.SAVE) 
    286         if dlg.ShowModal() == wx.ID_OK: 
    287             path = dlg.GetPath() 
    288             mypath = os.path.basename(path) 
    289              
    290         dlg.Destroy() 
    291              
    292         if not path == None: 
    293             out = open(path, 'w') 
    294             has_data = self.data !=None 
    295             has_model = self.model!=None 
    296             import time 
    297             year, month, day,hour,minute,second,tda,ty,tm_isdst= time.gmtime() 
    298             import os.path 
    299             out.write("Title: State for %s\n"%os.path.basename(path)) 
    300             out.write("Date: %g\%g\%g \n"%(year, month, day)) 
    301             out.write("GMT Time: %g:%g:%g \n\n"%(hour,minute, second)) 
    302             # Sanity check 
    303             if has_data: 
    304                 out.write("Fit Data name: %s\n\n"%self.data.name) 
    305      
    306             if has_model: 
    307                 out.write("Model name: %s\n"%self.model.name) 
    308                 if len(self.parameters)>0:   
    309                     out.write("Parameters Info:\n") 
    310                     msg= "Name\t\tValues\t\t+\-\tErrors\t\tMin\t\tMax\t\tUnits\t\tstate\n" 
    311                     out.write(msg) 
    312                     ##self.parameters= 
    313                     ##[cb state, name, value, "+/-", error of fit, min, max , units] 
    314                     for item in self.parameters: 
    315                         if item[1]!=None: 
    316                             name= item[1] 
    317                         else: 
    318                             name="" 
    319                         if item[2]!=None: 
    320                             value= str(item[2].GetValue().rstrip().lstrip()) 
    321                         else: 
    322                             value="" 
    323                         if item[3]!=None: 
    324                             sign= str(item[3].GetLabelText().rstrip().lstrip()) 
    325                         else: 
    326                             sign="" 
    327                         if item[4]!=None: 
    328                             error= str(item[4].GetValue().rstrip().lstrip()) 
    329                         else: 
    330                             error="" 
    331                         if item[5]!=None: 
    332                             min= str(item[5].GetValue().rstrip().lstrip()) 
    333                         else: 
    334                             min="" 
    335                         if item[6]!=None: 
    336                             max= str(item[6].GetValue().rstrip().lstrip()) 
    337                         else: 
    338                             max="" 
    339                         if item[7]!=None: 
    340                             unit= str(item[7].GetLabelText().rstrip().lstrip()) 
    341                         else: 
    342                             unit="" 
    343                         if item[0]!=None: 
    344                             if item[0].GetValue(): 
    345                                 state= "Fitted" 
    346                             else: 
    347                                 state= "Not Fitted" 
    348                         else: 
    349                             state="Not Fitted" 
    350      
    351                         msg= "%s\t\t%s\t\t%s\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"\ 
    352                          %(name,value,sign,error,min,max,unit,state) 
    353                         out.write(msg) 
    354                          
    355                  
    356             out.close() 
    357  
    358       
     320        if self.model==None: 
     321            return  
     322        if hasattr(self,"enable_disp"): 
     323            self.state.enable_disp=self.enable_disp.GetValue() 
     324        if hasattr(self, "disp_box"): 
     325            self.state.disp_box=SetSelection(self.disp_box.GetSelection())  
     326         
     327        self.state.model = self.model.clone() 
     328        new_state = self.state.clone() 
     329         
     330        ##Add model state on context menu 
     331        self.number_saved_state += 1 
     332        name= self.model.name+"[%g]"%self.number_saved_state  
     333        self.saved_states[name]= new_state 
     334         
     335        ## Add item in the context menu 
     336        year, month, day,hour,minute,second,tda,ty,tm_isdst= time.gmtime() 
     337        my_time= str(hour)+"hrs "+str(minute)+"min "+str(second)+"s" 
     338        date= str( month)+"|"+str(day)+"|"+str(year) 
     339        msg=  "Model saved at %s on %s"%(my_time, date) 
     340         ## post help message for the selected model  
     341        msg +=" Saved! right click on this page to retrieve this model" 
     342        wx.PostEvent(self.parent.parent, StatusEvent(status = msg )) 
     343         
     344        id = wx.NewId() 
     345        self.slicerpop.Append(id,name,str(msg)) 
     346        wx.EVT_MENU(self, id, self.onResetModel) 
     347         
    359348    def onSetFocus(self, evt): 
    360349        """ 
     
    461450        wx.PostEvent(self.parent, event) 
    462451     
     452     
    463453    def reset_page_helper(self, state): 
    464454        """ 
     
    485475        ##plotting range restore     
    486476        self._reset_plotting_range() 
    487          
     477        ## reset context menu items 
     478        self._reset_context_menu() 
    488479        ## reset state of checkbox,textcrtl  and parameters value 
    489480        if hasattr(self, "cb1"):     
     
    496487        self._draw_model() 
    497488         
     489    
     490    
     491          
    498492         
    499493    def _selectDlg(self): 
     
    510504     
    511505     
     506    def _reset_context_menu(self): 
     507        """ 
     508            reset the context menu 
     509        """ 
     510        for name, state in self.state.saved_states.iteritems(): 
     511            self.number_saved_state += 1 
     512            ## Add item in the context menu 
     513            id = wx.NewId() 
     514            self.slicerpop.Append(id,name, 'Save model and state %g'%self.number_saved_state) 
     515            wx.EVT_MENU(self, id, self.onResetModel) 
     516     
    512517    def _reset_plotting_range(self): 
    513518        """ 
     
    542547        """ 
    543548        if self.model !=None: 
    544              
     549            ## save current state 
     550            self.save_current_state() 
    545551            # Flag to register when a parameter has changed. 
    546552            is_modified = False 
     
    569575                    self.num_points = float(self.npts.GetValue()) 
    570576                    is_modified = True 
    571             ## save current state 
    572             self.save_current_state() 
     577            
    573578             
    574579            ## if any value is modify draw model with new value 
     
    952957            self.structurebox.SetSelection(0) 
    953958             
    954            
     959            
    955960        s_id = self.structurebox.GetCurrentSelection() 
    956961        struct_factor = self.structurebox.GetClientData( s_id ) 
    957              
     962        
    958963        if  struct_factor !=None: 
    959964            from sans.models.MultiplicationModel import MultiplicationModel 
     
    961966        else: 
    962967            self.model= form_factor() 
    963         
     968         
    964969        ## post state to fit panel 
    965970        self.save_current_state() 
  • sansview/perspectives/fitting/fitpage.py

    r7c845cb ra074145  
    7676        self.sizer3.Layout() 
    7777        self.SetScrollbars(20,20,200,100) 
    78              
    79              
    80     def _on_display_description(self, event): 
    81         """ 
    82             Show or Hide description 
    83             @param event: wx.EVT_RADIOBUTTON 
    84         """ 
    85         self._on_display_description_helper() 
    86          
    87          
    88          
    89     def _on_display_description_helper(self): 
    90         """ 
    91             Show or Hide description 
    92             @param event: wx.EVT_RADIOBUTTON 
    93         """ 
    94         ## save state of radiobox 
    95         #self.page_info. save_radiobox_state( self.description_hide ) 
    96         #self.page_info. save_radiobox_state( self.description_show ) 
    97         ## Show description 
    98         if not self.description_show.GetValue(): 
    99             self.sizer_description.Clear(True) 
    100              
    101         else: 
    102             #model=self.page_info.model 
    103              
    104             description="" 
    105             if self.model!=None: 
    106                 description = self.model.description 
    107                 #description = self.page_info.model.description 
    108             self.description = wx.StaticText( self,-1,str(description) ) 
    109             self.sizer_description.Add( self.description, 1, wx.EXPAND | wx.ALL, 10 ) 
    110             
    111         self.Layout() 
    112      
     78         
    11379     
    11480    def _fill_range_sizer(self): 
     
    406372        wx.PostEvent(self.event_owner, evt)    
    407373         
     374 
     375    def _onparamEnter(self,event): 
     376        """  
     377            when enter value on panel redraw model according to changed 
     378        """ 
     379        self._onparamEnter_helper() 
     380        self.compute_chisqr() 
     381         
     382         
    408383    def reset_page(self, state): 
    409384        """ 
     
    413388        evt = ModelEventbox(model=self.model) 
    414389        wx.PostEvent(self.event_owner, evt)    
    415          
    416          
    417     def _onparamEnter(self,event): 
    418         """  
    419             when enter value on panel redraw model according to changed 
    420         """ 
    421         self._onparamEnter_helper() 
    422         self.compute_chisqr() 
    423          
    424          
     390             
     391             
    425392    def get_range(self): 
    426393        """ 
     
    662629         
    663630     
    664     def set_model_description(self,description,sizer): 
    665         """ 
    666             fill a sizer with description 
    667             @param description: of type string 
    668             @param sizer: wx.BoxSizer() 
    669         """ 
    670      
    671         sizer.Clear(True) 
    672         box_description= wx.StaticBox(self, -1, 'Model Description') 
    673         boxsizer1 = wx.StaticBoxSizer(box_description, wx.VERTICAL) 
    674                  
    675         self.description = wx.StaticText( self,-1,str(description) ) 
    676         sizer_selection=wx.BoxSizer(wx.HORIZONTAL) 
    677          
    678          
    679         self.description_show = wx.RadioButton(self, -1, 'Show', style=wx.RB_GROUP) 
    680         self.description_hide = wx.RadioButton(self, -1, 'Hide') 
    681          
    682         self.Bind( wx.EVT_RADIOBUTTON, self._on_display_description, 
    683                    id=self.description_hide.GetId() ) 
    684          
    685         self.Bind( wx.EVT_RADIOBUTTON, self._on_display_description, 
    686                    id=self.description_show.GetId() ) 
    687          
    688         self.model_description = wx.Button(self, -1, "More Details") 
    689       
    690          
    691         #self.page_info.save_radiobox_state( self.description_hide ) 
    692         #self.page_info.save_radiobox_state( self.description_show ) 
    693          
    694         sizer_selection.Add( self.description_show ) 
    695         sizer_selection.Add( (20,20))  
    696         sizer_selection.Add( self.description_hide ) 
    697         sizer_selection.Add( (20,20))  
    698         sizer_selection.Add( self.model_description ) 
    699          
    700           
    701         self.sizer_description=wx.BoxSizer(wx.HORIZONTAL) 
    702         self.sizer_description.Add( self.description, 1, wx.EXPAND | wx.ALL, 10 ) 
    703         
    704         boxsizer1.Add( sizer_selection)  
    705         boxsizer1.Add( (20,20))  
    706         boxsizer1.Add( self.sizer_description)  
    707      
    708  
    709         sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
    710         sizer.Layout() 
    711     
    712     
    713          
    714631         
    715632    def set_model_param_sizer(self, model): 
  • sansview/perspectives/fitting/fitpanel.py

    r7c845cb ra074145  
    134134        if selected_page.window_name in self.list_fitpage_name: 
    135135            self.list_fitpage_name.remove(selected_page.window_name) 
    136      
    137          
    138          
    139          
     136             
    140137         
    141138    def set_manager(self, manager): 
  • sansview/perspectives/fitting/modelpage.py

    r7c845cb ra074145  
    3434        description="" 
    3535        if self.model!=None: 
    36             #description = self.page_info.model.description 
    3736            description = self.model.description 
    38             self.set_model_param_sizer(self.model) 
     37             
     38            self.select_model(self.model, self.model.name) 
    3939            self.set_model_description(description,self.sizer2) 
    40          
    41      
    42  
     40             
     41      
     42         
    4343         
    4444    def _on_display_description(self, event): 
     
    5656            @param event: wx.EVT_RADIOBUTTON 
    5757        """ 
    58         ## save state of radiobox 
    59         #self.page_info. save_radiobox_state( self.description_hide ) 
    60         #self.page_info. save_radiobox_state( self.description_show ) 
     58         
    6159        ## Show description 
    6260        if not self.description_show.GetValue(): 
     
    6462             
    6563        else: 
    66             #model=self.page_info.model 
    6764            description="" 
    6865            if self.model!=None: 
    69                 #description = self.page_info.model.description 
    7066                description = self.model.description 
     67                 
    7168            self.description = wx.StaticText( self,-1,str(description) ) 
    7269            self.sizer_description.Add( self.description, 1, wx.EXPAND | wx.ALL, 10 ) 
     
    293290        self.model_description.Bind(wx.EVT_BUTTON,self.on_button_clicked) 
    294291        self.model_description.SetToolTipString("Click Model Functions in HelpWindow...") 
    295          
    296         #self.page_info.save_radiobox_state( self.description_hide ) 
    297         #self.page_info.save_radiobox_state( self.description_show ) 
    298          
     292       
    299293        sizer_selection.Add( self.description_show ) 
    300294        sizer_selection.Add( (20,20))  
  • sansview/perspectives/fitting/pagestate.py

    rb787e68c ra074145  
    11 
    22 
    3 import wx 
    43import copy 
    54 
     
    4544        #contains link between a model and selected parameters to fit  
    4645        self.param_toFit =[] 
    47         #dictionary of model type and model class 
     46        ##dictionary of model type and model class 
    4847        self.model_list_box = None 
    49         
     48        ## save the state of the context menu 
     49        self.saved_states={} 
    5050        ## save  current value of combobox 
    5151        self.formfactorcombobox = "" 
     
    9393        obj.npts = copy.deepcopy(self.npts ) 
    9494        obj.cb1 = copy.deepcopy(self.cb1) 
     95        for name, state in self.saved_states.iteritems(): 
     96            copy_name = copy.deepcopy(name) 
     97            copy_state = state.clone() 
     98            obj.saved_states[copy_name]= copy_state 
     99                                            
     100        
    95101         
    96102        return obj 
Note: See TracChangeset for help on using the changeset viewer.