Changeset ef16f59 in sasview


Ignore:
Timestamp:
Aug 9, 2010 11:38:42 AM (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:
e683abb
Parents:
4da35bc
Message:

Now it saves and opens all states of fitv taps.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • guiframe/data_loader.py

    r4da35bc ref16f59  
    181181      
    182182    filename = os.path.basename(path) 
    183      
    184183    if not  output.__class__.__name__ == "list": 
    185184        ## Creating a Data2D with output 
     
    202201        ## name of the data allow to differentiate data when plotted 
    203202        name = parse_name(name=output.filename, expression="_") 
    204         #if not name in parent.indice_load_data.keys(): 
    205         #    parent.indice_load_data[name] = 0 
    206         #else: 
    207             ## create a copy of the loaded data 
    208         #    parent.indice_load_data[name] += 1 
    209         #    name = name +"[%i]"%parent.indice_load_data[name] 
    210203        
    211204        new_plot.name = name 
     
    233226                        #add this plot the an existing panel 
    234227                        new_plot.group_id = existing_panel.group_id 
     228        # plot data 
    235229        wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=title)) 
     230        # set state and plot computation if exists 
    236231        wx.PostEvent(parent,InvStateUpdateEvent()) 
    237232        wx.PostEvent(parent,FitStateUpdateEvent()) 
    238233    ## the output of the loader is a list , some xml files contain more than one data 
    239234    else: 
    240          
    241         i=1 
    242         for item in output: 
     235        i=0 
     236        for item in output:  
    243237            try: 
    244238                ## Creating a Data2D with output 
     
    261255         
    262256                    new_plot = Data1D(x=item.x,y=item.y,dx=dx,dy=item.dy) 
     257                    if dxl != None: 
     258                        new_plot.dxl = dxl 
     259                    if dxl != None: 
     260                        new_plot.dxw = dxw 
     261                 
     262                new_plot.copy_from_datainfo(item)     
     263                item.clone_without_data(clone=new_plot)     
     264                 
     265                name = parse_name(name=str(item.run[0]), expression="_") 
    263266                     
    264                     new_plot.dxl = dxl 
    265                     new_plot.dxw = dxw 
    266                      
    267                 item.clone_without_data(clone=new_plot)     
    268                 new_plot.copy_from_datainfo(item) 
    269                 name = parse_name(name=str(item.run[0]), expression="_") 
    270                 #if not name in parent.indice_load_data.keys(): 
    271                 #    parent.indice_load_data[name] = 0 
    272                 #else: 
    273                     ## create a copy of the loaded data 
    274                      
    275                     #TODO: this is a very annoying feature. We should make this 
    276                     # an option. Excel doesn't do this. Why should we? 
    277                     # What is the requirement for this feature, and are the 
    278                     # counter arguments stronger? Is this feature developed 
    279                     # to please at least 80% of the users or a special few? 
    280                     #parent.indice_load_data[name] += 1 
    281                     #name = name + "(copy %i)"%parent.indice_load_data[name] 
    282                      
     267                #TODO: this is a very annoying feature. We should make this 
     268                # an option. Excel doesn't do this. Why should we? 
     269                # What is the requirement for this feature, and are the 
     270                # counter arguments stronger? Is this feature developed 
     271                # to please at least 80% of the users or a special few?                     
    283272                new_plot.name = name 
    284273                new_plot.interactive = True 
     
    286275                new_plot.id = name 
    287276                new_plot.is_data = True 
    288              
     277                title = item.filename 
     278                 
    289279                if hasattr(item,"title"): 
    290280                    title = item.title.lstrip().rstrip() 
     
    301291                            #add this plot the an existing panel 
    302292                            new_plot.group_id = existing_panel.group_id 
     293                # plot data 
    303294                wx.PostEvent(parent, NewPlotEvent(plot=new_plot, title=str(title))) 
     295 
     296                # set state and plot computation if exists 
    304297                wx.PostEvent(parent,InvStateUpdateEvent()) 
    305298                wx.PostEvent(parent,FitStateUpdateEvent()) 
    306                 i+=1 
    307299            except: 
    308                 pass 
     300                raise 
  • sansview/perspectives/fitting/fitting.py

    r4da35bc ref16f59  
    118118        self.state_reader = None  
    119119        self.temp_state = [] 
     120        self.state_index = 0 
    120121        # Log startup 
    121122        logging.info("Fitting plug-in started")  
     
    301302         
    302303        """ 
    303         #print "state", state 
    304         #return 
    305         #working on reading state 
    306         self.temp_state = [] 
    307         try:  
    308             # state 
     304        # store fitting state in temp_state 
     305        self.temp_state.append(state)  
     306        # index to start with for a new set_state 
     307        self.state_index = 0 
     308 
     309    def  on_set_state_helper(self,event=None): 
     310        """ 
     311        Set_state_helper. This acutally sets state after plotting data from state file. 
     312         
     313        : event: FitStateUpdateEvent called by plot_data from guiframe, data_loader 
     314        """ 
     315        if self.temp_state == None or len(self.temp_state) == 0: 
     316            return 
     317        try: 
    309318            # Load fitting state 
    310             self.temp_state.append(state)  
    311             # Make sure the user sees the fitting panel after loading 
    312             #self.parent.set_perspective(self.perspective)    
    313                     
     319            state = self.temp_state[self.state_index] 
     320            #set state 
     321            page = self.fit_panel.set_state(state)  
     322            # get ready for the next set state 
     323            self.state_index += 1 
     324             
     325            #reset state variables to default when all set_state is finished.  
     326            if len(self.temp_state) == self.state_index: 
     327                self.temp_state = [] 
     328                # Make sure the user sees the fitting panel after loading 
     329                self.parent.set_perspective(self.perspective)  
    314330        except: 
     331            self.temp_state = []  
    315332            raise 
    316          
    317     def  on_set_state_helper(self,event=None): 
    318         """ 
    319         """ 
    320         if self.temp_state == None: 
    321             return 
    322         # Load fitting state 
    323         for index in range(len(self.temp_state)): 
    324             page = self.fit_panel.set_state(self.temp_state[index])  
    325             # Make sure the user sees the fitting panel after loading 
    326             self.parent.set_perspective(self.perspective)   
    327               
    328         self.temp_state = []    
    329333                  
    330334    def save_fit_state(self, filepath, fitstate):   
  • sansview/perspectives/fitting/pagestate.py

    r4da35bc ref16f59  
    11391139                    if max_char < 0: 
    11401140                        max_char = len(state.file) 
    1141                     state.file = state.file[0:max_char] +' [' + time_str + ']' 
     1141                    original_fname = state.file[0:max_char] 
     1142                    state.file = original_fname +' [' + time_str + ']' 
    11421143                    
    11431144                         
     
    11491150                    state.data.name = output[ind].filename #state.data_name 
    11501151                    state.data.id = state.data_id 
    1151                     state.data.id = state.data_id 
    11521152                    if state.is_data is not None: 
    11531153                        state.data.is_data = state.is_data 
    1154                     state.data.group_id = output[ind].filename 
    1155                    
    1156                     # make sure to put run name if none 
    1157                     #if output[ind].run == None or output[ind].run ==[]: 
    1158                     #    exec 'output[%d].run = [output[%d].filename]'% (ind,ind) 
     1154                    if output[ind].run_name is not None and len(output[ind].run_name) != 0 : 
     1155                        name = output[ind].run_name 
     1156                    else:  
     1157                        name=original_fname 
     1158                    state.data.group_id = name 
     1159                    #store state in fitting 
    11591160                    self.call_back(state=state, datainfo=output[ind]) 
    1160                 return output[ind] 
     1161                     
     1162                return output 
    11611163               
    11621164        except: 
     
    11761178             
    11771179            # Add fitting information to the XML document 
    1178             self.write_toXML(datainfo, fitstate) 
     1180            doc = self.write_toXML(datainfo, fitstate) 
    11791181            # Write the XML document 
    11801182            fd = open(filename, 'w') 
Note: See TracChangeset for help on using the changeset viewer.