Changeset 9b18735 in sasview


Ignore:
Timestamp:
Aug 11, 2010 3:35:03 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:
b63dc6e
Parents:
3eb2811
Message:

now all panels are reset when opening svs files: except prview

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • guiframe/data_loader.py

    ref16f59 r9b18735  
    1212 
    1313from sans.guicomm.events import NewPlotEvent, StatusEvent 
     14SVS_FILE_EXT = ['.svs','.inv','.prv','.fitv'] 
    1415 
    1516def enable_add_data(existing_panel, new_plot): 
     
    228229        # plot data 
    229230        wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=title)) 
    230         # set state and plot computation if exists 
    231         wx.PostEvent(parent,InvStateUpdateEvent()) 
    232         wx.PostEvent(parent,FitStateUpdateEvent()) 
     231        if format in SVS_FILE_EXT: 
     232            # set state and plot computation if exists 
     233            wx.PostEvent(parent,InvStateUpdateEvent()) 
     234            wx.PostEvent(parent,FitStateUpdateEvent()) 
    233235    ## the output of the loader is a list , some xml files contain more than one data 
    234236    else: 
     
    262264                new_plot.copy_from_datainfo(item)     
    263265                item.clone_without_data(clone=new_plot)     
    264                  
     266                # find original data file name without timestemp 
    265267                name = parse_name(name=str(item.run[0]), expression="_") 
    266                      
     268                max_char = name.find("[") 
     269                if max_char < 0: 
     270                    max_char = len(name) 
     271                original_name =name[0:max_char] 
    267272                #TODO: this is a very annoying feature. We should make this 
    268273                # an option. Excel doesn't do this. Why should we? 
     
    272277                new_plot.name = name 
    273278                new_plot.interactive = True 
    274                 new_plot.group_id = name 
     279                new_plot.group_id = original_name 
    275280                new_plot.id = name 
    276281                new_plot.is_data = True 
     
    293298                # plot data 
    294299                wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=str(title))) 
    295  
    296                 # set state and plot computation if exists 
    297                 wx.PostEvent(parent,InvStateUpdateEvent()) 
    298                 wx.PostEvent(parent,FitStateUpdateEvent()) 
     300                 
     301                if format in SVS_FILE_EXT: 
     302                    # set state and plot computation if exists 
     303                    wx.PostEvent(parent,InvStateUpdateEvent()) 
     304                    wx.PostEvent(parent,FitStateUpdateEvent()) 
    299305            except: 
    300306                raise 
  • guiframe/gui_manager.py

    r028a0e8 r9b18735  
    715715         
    716716        from data_loader import plot_data 
     717        from sans.perspectives import invariant 
    717718        if path and os.path.isfile(path): 
    718719             basename  = os.path.basename(path) 
    719720             if  basename.endswith('.svs'): 
     721                #remove panels for new states 
     722                 for item in self.panels: 
     723                     try: 
     724                         self.panels[item].clear_panel() 
     725                     except: pass 
    720726                 plot_data(self, path,'.inv') 
    721727                 plot_data(self, path,'.prv') 
  • invariantview/perspectives/invariant/invariant.py

    r4da35bc r9b18735  
    265265        """ 
    266266        Call-back method for the state reader. 
    267         This method is called when a .inv file is loaded. 
     267        This method is called when a .inv/.svs file is loaded. 
    268268         
    269269        :param state: State object 
     
    271271        self.temp_state = None 
    272272        try: 
     273             
    273274            if datainfo is None: 
    274275                raise RuntimeError, "invariant.set_state: datainfo parameter cannot be None in standalone mode" 
     276             
    275277            datainfo.meta_data['invstate'].file = datainfo.meta_data['invstate'].file 
    276278            datainfo.name = datainfo.meta_data['invstate'].file 
     
    283285            # set state 
    284286            self.invariant_panel.is_state_data = True 
    285             # Load the invariant states 
     287             
    286288            # Make sure the user sees the invariant panel after loading 
    287289            self.parent.set_perspective(self.perspective) 
     290            # Load the invariant states 
    288291            self.temp_state = temp_state 
    289292            #self.invariant_panel.set_state(state=temp_state,data=self.__data)          
    290  
     293             
    291294        except: 
    292295            logging.error("invariant.set_state: %s" % sys.exc_value) 
    293296             
    294     def on_set_state_helper(self,event=None): 
    295         """ 
     297    def on_set_state_helper(self, event=None): 
     298        """ 
     299        Set the state when called by EVT_STATE_UPDATE event from guiframe 
     300        after a .inv/.svs file is loaded  
    296301        """ 
    297302        self.invariant_panel.set_state(state=self.temp_state,data=self.__data) 
    298303        self.temp_state = None 
     304         
     305         
    299306         
    300307    def plot_theory(self, data=None, name=None): 
  • invariantview/perspectives/invariant/invariant_panel.py

    r085bf4c r9b18735  
    123123        if self._data is not None: 
    124124            self.err_check_on_data() 
     125            self.get_state_by_num(0) 
    125126            data_name = self._data.name 
    126127            data_qmin = min (self._data.x) 
     
    132133            self.compute_invariant(event=None) 
    133134            self.state.file = self._data.name 
     135            #Reset the list of states 
     136            self.state.data = copy.deepcopy(data) 
     137            self._reset_state_list() 
    134138        return True   
    135139    def set_message(self): 
     
    159163    def set_state(self,state=None,data=None): 
    160164        """ 
    161         set state when loading it from a .inv file 
     165        set state when loading it from a .inv/.svs file 
    162166        """ 
    163167        if state == None or data == None: 
     
    197201            self.is_state_data = False 
    198202 
    199              
     203    def clear_panel(self, format='.svs'): 
     204        """ 
     205        Clear panel to defaults, used by set_state of manager 
     206        """ 
     207        if format == '.svs': 
     208            self._data = None 
     209            # default data testctrl 
     210            self.hint_msg_txt.SetLabel('') 
     211            data_name = '' 
     212            data_qmin = '' 
     213            data_qmax = '' 
     214            self.data_name_tcl.SetValue(str(data_name)) 
     215            self.data_min_tcl.SetLabel(str(data_qmin)) 
     216            self.data_max_tcl.SetLabel(str(data_qmax)) 
     217            #reset output textctrl 
     218            self._reset_output() 
     219            #reset panel 
     220            self.reset_panel() 
     221            #reset state w/o data 
     222            self.set_state() 
     223            # default flags for state 
     224            self.new_state = False 
     225            self.is_state_data = False 
     226            self.is_power_out = False 
    200227 
    201228    def get_background(self): 
     
    744771        self.button_bookmark.Disable() 
    745772        self.button_report.Disable() 
     773        self.button_save.Disable()  
    746774        self.button_calculate.SetFocus() 
    747775        #self.SetupScrolling() 
  • sansview/perspectives/fitting/fitpanel.py

    r8897d66 r9b18735  
    187187        self.Bind(basepage.EVT_NEXT_STATE, self._onRedo) 
    188188         
    189         #add default page 
    190         from hint_fitpage import HintFitPage 
    191         self.hint_page = HintFitPage(self)  
    192         self.AddPage(page=self.hint_page, caption="Hint") 
    193          
    194          
    195              
    196         #Add the first fit page 
    197         self.add_empty_page() 
     189        #add default pages 
     190        self.add_default_pages() 
    198191         
    199192        # increment number for model name 
     
    203196        self.Center() 
    204197         
     198    def add_default_pages(self): 
     199        """ 
     200        Add default pages such as a hint page and an empty fit page 
     201        """ 
     202        #add default page 
     203        from hint_fitpage import HintFitPage 
     204        self.hint_page = HintFitPage(self)  
     205        self.AddPage(page=self.hint_page, caption="Hint") 
     206          
     207        #Add the first fit page 
     208        self.add_empty_page() 
     209 
     210     
    205211    def close_all(self): 
    206212        """ 
     
    241247                    panel.reset_page(state=state) 
    242248                     
     249    def clear_panel(self, format='.svs'): 
     250        """ 
     251        Clear and close all panels, used by guimanager 
     252        """ 
     253        if format == '.svs': 
     254            #close all panels only when svs file opened 
     255            self.close_all() 
     256            self.manager.mypanels = [] 
     257                        
    243258    def on_close_page(self, event=None): 
    244259        """ 
     
    438453            panel = self.add_page(page_info=page_info) 
    439454            return panel 
    440      
     455         
    441456    def  _onGetstate(self, event): 
    442457        """ 
  • sansview/perspectives/fitting/fitting.py

    r3eb2811 r9b18735  
    261261        loader.associate_file_reader(".fitv", self.state_reader) 
    262262        loader.associate_file_reader(".svs", self.state_reader) 
    263         self.format = None 
     263 
    264264        #Send the fitting panel to guiframe 
    265265        self.mypanels.append(self.fit_panel) 
     
    295295        pass 
    296296     
    297     def set_state(self, state, datainfo=None, format=None): 
     297    def set_state(self, state, datainfo=None): 
    298298        """ 
    299299        Call-back method for the fit page state reader. 
     
    302302        : param state: PageState object 
    303303        : param datainfo: data 
    304         : param format: file extension in lower case with dot in front 
    305304        """ 
    306305        # store fitting state in temp_state 
     
    308307        # index to start with for a new set_state 
    309308        self.state_index = 0 
    310         #file format (extension of the file) opened 
    311         self.format = format 
    312309 
    313310    def  on_set_state_helper(self,event=None): 
     
    315312        Set_state_helper. This actually sets state after plotting data from state file. 
    316313         
    317         : event: FitStateUpdateEvent called by plot_data from guiframe, data_loader 
     314        : event: FitStateUpdateEvent called by dataloader.plot_data from guiframe 
    318315        """ 
    319316        if self.temp_state == None or len(self.temp_state) == 0: 
     317            if self.state_index==0 and len(self.mypanels) <= 0: 
     318                self.fit_panel.add_default_pages() 
    320319            return 
    321320         
    322321        try: 
    323             #close all panels only when svs file opened 
    324             if self.format == '.svs': 
    325                 self.fit_panel.close_all() 
    326322            # Load fitting state 
    327323            state = self.temp_state[self.state_index] 
     
    333329                #just set data because set_state won't work 
    334330                page_info = self.fit_panel.get_page_info(data=state.data) 
    335                 self.fit_panel.add_page(page_info) 
     331                panel = self.fit_panel.add_page(page_info) 
     332                self.store_page(page=panel, data=state.data) 
    336333                 
    337             # get ready for the next set state 
     334            # get ready for the next set_state 
    338335            self.state_index += 1 
    339              
     336 
    340337            #reset state variables to default when all set_state is finished.  
    341338            if len(self.temp_state) == self.state_index: 
     339                 
    342340                self.temp_state = [] 
    343341                # Make sure the user sees the fitting panel after loading 
     
    345343        except: 
    346344            self.temp_state = [] 
    347             self.format = None  
    348345            raise 
    349346                  
  • sansview/perspectives/fitting/pagestate.py

    r8897d66 r9b18735  
    11581158                    state.data.group_id = name 
    11591159                    #store state in fitting 
    1160                     self.call_back(state=state, datainfo=output[ind], format=extension.lower()) 
     1160                    self.call_back(state=state, datainfo=output[ind]) 
    11611161                     
    11621162                return output 
Note: See TracChangeset for help on using the changeset viewer.