Changeset 343fdb6 in sasview for invariantview


Ignore:
Timestamp:
Jul 26, 2010 5:38:56 PM (14 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:
72a6bf8
Parents:
aebc4cc
Message:

working on guiframe

Location:
invariantview/perspectives/invariant
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • invariantview/perspectives/invariant/invariant.py

    rcb463b4 r343fdb6  
    228228                else: 
    229229                    data = plottable 
    230                 # Store reference to data 
    231                 self.__data = data 
    232                 # Set the data set to be user for invariant calculation 
    233                 self.invariant_panel.set_current_data(data=data) 
     230                self.compute_helper(data=data) 
    234231                 
     232    def compute_helper(self, data): 
     233        """ 
     234        """ 
     235        if data is None: 
     236            return  
     237        # Store reference to data 
     238        self.__data = data 
     239        # Set the data set to be user for invariant calculation 
     240        self.invariant_panel.set_current_data(data=data) 
     241         
    235242    def save_file(self, filepath, state=None): 
    236243        """ 
  • invariantview/perspectives/invariant/invariant_panel.py

    ra94c4e1 r343fdb6  
    8282        self.new_state = False 
    8383        self.is_power_out = False 
    84  
     84         
    8585        #container of invariant value 
    8686        self.inv_container = None 
     
    9696        ## Default file location for save 
    9797        self._default_save_location = os.getcwd() 
    98          
     98  
    9999    def err_check_on_data(self): 
    100100        """ 
     
    114114        return flag 
    115115     
     116    def on_select_data(self, event=None): 
     117        """ 
     118        """ 
     119        n = self.data_cbbox.GetCurrentSelection() 
     120        data, path = self.data_cbbox.GetClientData(n) 
     121        self._manager.compute_helper(data=data) 
     122        title = os.path.basename(path) 
     123        if hasattr(data,"title"): 
     124            title = str(data.title.lstrip().rstrip()) 
     125            if title == "": 
     126                title = str(data.name) 
     127        else: 
     128            title = str(data.name) 
     129        wx.PostEvent(self.parent, NewPlotEvent(plot=data, title=title)) 
     130     
    116131    def set_data(self, list=[], state=None): 
    117132        """ 
    118133        Receive  a list of data from gui_manager to compute invariant 
    119134        """ 
    120         if list==[]: 
    121             msg = "Please select data for Invariant perspective.\n" 
    122             dial = wx.MessageDialog(None, msg, 'Error Loading File',  
    123                                     wx.OK | wx.ICON_EXCLAMATION) 
    124             dial.ShowModal()  
    125             return 
    126         elif len(list) == 1: 
    127             data, filepath = list[0] 
    128             if data.__class__.__name__ == "Data2D": 
    129                 msg = "Invariant cannot be computed for Data2D.\n" 
    130                 msg += "Please load another file.\n" 
    131                 dial = wx.MessageDialog(None, msg, 'Error Loading File',  
    132                                         wx.OK | wx.ICON_EXCLAMATION) 
    133                 dial.ShowModal()  
    134             else: 
    135                  self.set_current_data(data=data) 
    136         else: 
    137             msg = " Invariant cannot be computed for more than one data.\n" 
    138             msg += "Please load only file.\n" 
    139             dial = wx.MessageDialog(None, msg, 'Error Loading File',  
    140                                     wx.OK | wx.ICON_EXCLAMATION) 
    141             dial.ShowModal()  
    142      
     135        if not list: 
     136            return  
     137        for data, path in list: 
     138            if data.__class__.__name__ != "Data2D" and \ 
     139                data.name not in self.data_cbbox.GetItems(): 
     140                self.data_cbbox.Insert(item=data.name, pos=0, 
     141                                    clientData=(data, path)) 
     142        if self.data_cbbox.GetCount() >0: 
     143            self.data_cbbox.SetSelection(0) 
     144            self.data_cbbox.Enable() 
     145            self.on_select_data(event=None) 
     146             
    143147    def set_current_data(self, data): 
    144148        """ 
     
    206210            self.state = IState() 
    207211        else: 
    208              
    209212            if not self.set_current_data(data): 
    210213                return 
     
    213216 
    214217            num = self.state.saved_state['state_num'] 
     218            self.get_state_by_num(state_num=num) 
    215219             
    216220            if num > 0 : 
     
    219223                self._redo_enable() 
    220224                 
     225             
    221226            # get bookmarks 
    222227            self.bookmark_num = len(self.state.bookmark_list) 
    223  
    224228            total_bookmark_num = self.bookmark_num+1 
    225229            for ind in range(1,total_bookmark_num): 
     
    230234                id = wx.NewId() 
    231235                self.popUpMenu.Append(id,name,str('')) 
    232                 wx.EVT_MENU(self, id, self._back_to_bookmark)  
     236                 wx.EVT_MENU(self, id, self._back_to_bookmark)  
    233237 
    234238            self.get_state_by_num(state_num=str(num)) 
    235239             
    236240            self._get_input_list()  
     241           
    237242             
    238243            self.new_state = False  
     
    502507            msg= "\n\nStarting a new invariant computation..."             
    503508            wx.PostEvent(self.parent, StatusEvent(status=msg)) 
    504              
    505509 
    506510        if self._data is None or self.err_check_on_data(): 
     
    589593            self.is_power_out = False 
    590594            wx.PostEvent(self.parent, StatusEvent(status = msg )) 
    591  
     595         
    592596        #enable the button_ok for more details 
    593597        self.button_details.Enable() 
     
    596600            self.button_report.Enable(True) 
    597601            wx.PostEvent(self.parent, StatusEvent(status = '\nFinished invariant computation...')) 
    598          
     602     
    599603    def undo(self,event=None): 
    600604        """ 
     
    666670 
    667671        backup_state_list = copy.deepcopy(self.state.state_list) 
    668          
     672 
    669673        # get the previous state 
    670674        try: 
     
    674678        except : 
    675679            raise ValueError,  "No such state exists in history" 
    676          
     680 
    677681        # get the state at pre_compute_num 
    678682        comp_state = copy.deepcopy(self.state.state_list[current_compute_num]) 
     
    687691            except: 
    688692                pass 
    689            
     693             
    690694        self.compute_invariant(event=None) 
    691695        # set the input params at the state at pre_state_num 
     
    711715        self.state.saved_state = current_state 
    712716        self.state.state_num = state_num 
    713          
    714          
     717 
    715718         
    716719    def get_bookmark_by_num(self, num=None): 
     
    752755                pass 
    753756        self.state.saved_state = copy.deepcopy(current_state) 
    754         
     757 
    755758        self._enable_high_q_section(event=None) 
    756759        self._enable_low_q_section(event=None) 
     
    872875        self._redo_disable() 
    873876         
    874          
    875877    def _reset_state_list(self,data=None): 
    876878        """ 
     
    11401142        else: 
    11411143            return False 
    1142  
    11431144         
    11441145    def _reset_output(self): 
     
    11781179        self.data_name_boxsizer.SetMinSize((PANEL_WIDTH,-1)) 
    11791180        self.hint_msg_sizer = wx.BoxSizer(wx.HORIZONTAL) 
     1181        self.loaded_data_name_sizer = wx.BoxSizer(wx.HORIZONTAL) 
    11801182        self.data_name_sizer = wx.BoxSizer(wx.HORIZONTAL) 
    11811183        self.data_range_sizer = wx.BoxSizer(wx.HORIZONTAL) 
     
    12231225        self.hint_msg_txt.SetToolTipString(msg) 
    12241226        self.hint_msg_sizer.Add(self.hint_msg_txt) 
     1227         
     1228        self.data_txt = wx.StaticText(self, -1,"Loaded Data: ") 
     1229        self.data_cbbox = wx.ComboBox(self, -1, size=(260,20)) 
     1230        self.data_cbbox.Disable() 
     1231        wx.EVT_COMBOBOX(self.data_cbbox ,-1, self.on_select_data)  
     1232         
     1233 
    12251234        #Data name [string] 
    12261235        data_name_txt = wx.StaticText(self, -1, 'Data : ')   
    12271236        
    1228         self.data_name_tcl = OutputTextCtrl(self, -1, size=(_BOX_WIDTH*5, 20), style=0, name='data_name_tcl')  
     1237        self.data_name_tcl = OutputTextCtrl(self, -1,size=(260,20), style=0,  
     1238                                            name='data_name_tcl')  
    12291239        self.data_name_tcl.SetToolTipString("Data's name.") 
     1240        self.loaded_data_name_sizer.AddMany([(self.data_txt, 0, 
     1241                                               wx.LEFT|wx.RIGHT, 10), 
     1242                                      (self.data_cbbox, 0, wx.EXPAND)]) 
    12301243        self.data_name_sizer.AddMany([(data_name_txt, 0, wx.LEFT|wx.RIGHT, 10), 
    1231                                        (self.data_name_tcl, 0, wx.EXPAND)]) 
     1244                                       (self.data_name_tcl, 0, wx.EXPAND|wx.LEFT,35)]) 
     1245     
    12321246        #Data range [string] 
    12331247        data_range_txt = wx.StaticText(self, -1, 'Total Q Range (1/A): ')  
     
    12381252        self.data_max_tcl = OutputTextCtrl(self, -1, size=(_BOX_WIDTH, 20), style=0, name='data_max_tcl')  
    12391253        self.data_max_tcl.SetToolTipString("The maximum value of q range.") 
     1254        
    12401255        self.data_range_sizer.AddMany([(data_range_txt, 0, wx.RIGHT, 10), 
    12411256                                       (data_min_txt, 0, wx.RIGHT, 10), 
     
    12441259                                       (self.data_max_tcl, 0, wx.RIGHT, 10)]) 
    12451260        self.data_name_boxsizer.AddMany([(self.hint_msg_sizer, 0 , wx.ALL, 5), 
    1246                                          (self.data_name_sizer, 0 , wx.RIGHT, 10), 
    1247                                          (self.data_range_sizer, 0 , wx.ALL, 10)]) 
     1261                            (self.loaded_data_name_sizer, 0 , wx.ALL, 10), 
     1262                                    (self.data_name_sizer, 0 , wx.LEFT|wx.RIGHT, 10), 
     1263                                     (self.data_range_sizer, 0 , wx.ALL, 10)]) 
    12481264     
    12491265    def _layout_bkg_scale(self): 
Note: See TracChangeset for help on using the changeset viewer.