Changeset 90a7bbd in sasview for sansview/perspectives


Ignore:
Timestamp:
Feb 11, 2011 8:53:03 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:
229da98
Parents:
eec8dbb
Message:

working save state

Location:
sansview/perspectives/fitting
Files:
5 edited

Legend:

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

    r3cd5806 r90a7bbd  
    175175        """ 
    176176        """ 
    177         print "fitting panel", self.window_name 
    178177        if self._manager is not None: 
    179178            wx.PostEvent(self._manager.parent, PanelOnFocusEvent(panel=self)) 
     
    380379         
    381380        """ 
    382         print "manager", manager 
    383381        self._manager = manager   
    384382        self.state.manager = manager 
  • sansview/perspectives/fitting/fitpage.py

    r13913ec r90a7bbd  
    796796            msg="Please select a Model first..." 
    797797            wx.MessageBox(msg, 'Info') 
    798             wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     798            wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    799799                            "Fit: %s"%msg)) 
    800800            return 
     
    821821        self.qmin_x = float(self.qmin.GetValue()) 
    822822        self.qmax_x = float( self.qmax.GetValue()) 
    823         self.manager._reset_schedule_problem( value=0) 
    824         self.manager.schedule_for_fit( value=1,page=self,fitproblem =None)  
    825         self.manager.set_fit_range(page= self,qmin= self.qmin_x,  
     823        self._manager._reset_schedule_problem( value=0) 
     824        self._manager.schedule_for_fit( value=1,page=self,fitproblem =None)  
     825        self._manager.set_fit_range(page= self,qmin= self.qmin_x,  
    826826                                   qmax= self.qmax_x) 
    827827         
    828828        #single fit  
    829         self.manager.onFit() 
     829        self._manager.onFit() 
    830830        ## allow stopping the fit  
    831831        #if self.engine_type=="scipy": 
     
    845845        self.btFit.SetLabel("Fit") 
    846846        if self.engine_type=="scipy": 
    847             self.manager.stop_fit() 
     847            self._manager.stop_fit() 
    848848        self.btFit.Unbind(event=wx.EVT_BUTTON, id=self.btFit.GetId()) 
    849849        self.btFit.Bind(event=wx.EVT_BUTTON, handler=self._onFit, 
     
    900900                 evt = ModelEventbox(model = self.model) 
    901901           
    902             self.manager._on_model_panel(evt = evt) 
     902            self._manager._on_model_panel(evt = evt) 
    903903            self.state.model = self.model.clone() 
    904904            self.state.model.name = self.model.name 
     
    919919            msg="Please select a Model first..." 
    920920            wx.MessageBox(msg, 'Info') 
    921             #wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     921            #wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    922922            #                "Parameters: %s"%msg)) 
    923923            return 
     
    928928        #get event object 
    929929        tcrtl= event.GetEventObject() 
    930         wx.PostEvent(self.manager.parent, StatusEvent(status=" \ 
     930        wx.PostEvent(self._manager.parent, StatusEvent(status=" \ 
    931931                                updating ... ",type="update")) 
    932932        #Clear msg if previously shown. 
     
    950950                        flag = flag or flag1 
    951951                elif self.data.__class__.__name__ !="Data2D": 
    952                     self.manager.set_smearer(smearer=temp_smearer,  
     952                    self._manager.set_smearer(smearer=temp_smearer,  
    953953                                             qmin= float(self.qmin_x), 
    954954                                            qmax= float(self.qmax_x))  
     
    14341434    
    14351435        if self.engine_type != None: 
    1436             self.manager._on_change_engine(engine=self.engine_type) 
     1436            self._manager._on_change_engine(engine=self.engine_type) 
    14371437 
    14381438        self.select_param(event = None)  
     
    16231623        #PostStatusEvent      
    16241624        msg = "Fit completed! " 
    1625         wx.PostEvent(self.manager.parent, StatusEvent(status=msg)) 
     1625        wx.PostEvent(self._manager.parent, StatusEvent(status=msg)) 
    16261626 
    16271627    def onPinholeSmear(self, event): 
     
    16411641            msg="Please select a Model first..." 
    16421642            wx.MessageBox(msg, 'Info') 
    1643             wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     1643            wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    16441644                            "Smear: %s"%msg)) 
    16451645            return 
     
    17761776 
    17771777        if msg != None: 
    1778             wx.PostEvent(self.manager.parent, StatusEvent(status = msg )) 
     1778            wx.PostEvent(self._manager.parent, StatusEvent(status = msg )) 
    17791779        else: 
    17801780            get_pin_min.SetBackgroundColour("white") 
    17811781            get_pin_max.SetBackgroundColour("white") 
    17821782        ## set smearing value whether or not the data contain the smearing info 
    1783         self.manager.set_smearer(smearer=self.current_smearer, qmin= \ 
     1783        self._manager.set_smearer(smearer=self.current_smearer, qmin= \ 
    17841784                                 float(self.qmin_x),qmax= float(self.qmax_x)) 
    17851785        return msg 
     
    18201820            msg="Please select a Model first..." 
    18211821            wx.MessageBox(msg, 'Info') 
    1822             wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     1822            wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    18231823                            "Smear: %s"%msg)) 
    18241824            return 
     
    18621862        wx.PostEvent(self.parent, event) 
    18631863        if msg != None: 
    1864             wx.PostEvent(self.manager.parent, StatusEvent(status = msg)) 
     1864            wx.PostEvent(self._manager.parent, StatusEvent(status = msg)) 
    18651865 
    18661866    def _is_changed_slit(self):   
     
    19511951        #temp_smearer = self.current_smearer 
    19521952        ## set smearing value whether or not the data contain the smearing info 
    1953         self.manager.set_smearer(smearer=self.current_smearer, qmin= \ 
     1953        self._manager.set_smearer(smearer=self.current_smearer, qmin= \ 
    19541954                                 float(self.qmin_x), qmax= float(self.qmax_x))  
    19551955        return msg 
     
    19891989            msg="Please select a Model first..." 
    19901990            wx.MessageBox(msg, 'Info') 
    1991             wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     1991            wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    19921992                            "Smear: %s"%msg)) 
    19931993            return 
     
    20182018                msg= ": Slit smearing parameters" 
    20192019            if self.smearer ==None: 
    2020                 wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     2020                wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    20212021                            "Data contains no smearing information")) 
    20222022            else: 
    2023                 wx.PostEvent(self.manager.parent, StatusEvent(status=\ 
     2023                wx.PostEvent(self._manager.parent, StatusEvent(status=\ 
    20242024                            "Data contains smearing information")) 
    20252025 
     
    20362036        self.Layout() 
    20372037        ## set smearing value whether or not the data contain the smearing info 
    2038         self.manager.set_smearer(smearer=temp_smearer, qmin= float(self.qmin_x), 
     2038        self._manager.set_smearer(smearer=temp_smearer, qmin= float(self.qmin_x), 
    20392039                                     qmax= float(self.qmax_x))  
    20402040 
     
    21852185            return 
    21862186        ## the panel is drawn using the current value of the fit engine 
    2187         if self.engine_type==None and self.manager !=None: 
    2188             self.engine_type= self.manager._return_engine_type() 
     2187        if self.engine_type==None and self._manager !=None: 
     2188            self.engine_type= self._manager._return_engine_type() 
    21892189 
    21902190        box_description= wx.StaticBox(self, -1,str("Model Parameters")) 
  • sansview/perspectives/fitting/fitpanel.py

    r3cd5806 r90a7bbd  
    1111_BOX_WIDTH = 80 
    1212 
    13  
    14 class StateIterator(object): 
    15     """ 
    16     Contains all saved state of a given page. 
    17     Provide position of the current state of a page, the first save state 
    18     and the last state for a given page.  
    19     Allow easy undo or redo for a given page   
    20     """ 
    21     def __init__(self): 
    22         """ 
    23         """ 
    24         self._current=0 
    25         
    26     def __iter__(self): 
    27         """ 
    28         """ 
    29         return self 
    30      
    31     def first(self): 
    32         """ 
    33         """ 
    34         self._current =0 
    35         return self._current 
    36      
    37     def next(self, max ): 
    38         """ 
    39         """ 
    40         if self._current < max: 
    41             self._current += 1 
    42         return self._current 
    43      
    44     def previous(self): 
    45         """ 
    46         """ 
    47         if self._current > 0: 
    48             self._current = self._current -1 
    49         return self._current 
    50      
    51     def currentPosition(self): 
    52         """ 
    53         """ 
    54         return self._current 
    55      
    56     def setPosition(self, value): 
    57         """ 
    58         """ 
    59         if value >=0: 
    60             self._current = int(value) 
    61          
    62      
    63 class ListOfState(list):     
    64     """ 
    65     """  
    66     def __init__(self, *args, **kw): 
    67         list.__init__(self, *args, **kw) 
    68         self.iterator = StateIterator() 
    69          
    70     def appendItem(self, x): 
    71         """ 
    72         """ 
    73         self.append(x) 
    74         self.iterator.setPosition(value= len(self)-1) 
    75          
    76     def removeItem(self, x): 
    77         """ 
    78         """ 
    79         self.iterator.previous() 
    80         self.remove(x) 
    81          
    82     def getPreviousItem(self): 
    83         """ 
    84         """ 
    85         position = self.iterator.previous() 
    86          
    87         if position < 0: 
    88             return None 
    89         else: 
    90             return self[position] 
    91          
    92     def getNextItem(self): 
    93         """ 
    94         """ 
    95         position = self.iterator.next(max= len(self)-1) 
    96         if position >= len(self): 
    97             return None 
    98         else: 
    99             return self[position] 
    100          
    101     def getCurrentItem(self): 
    102         """ 
    103         """ 
    104         postion = self.iterator.currentPosition() 
    105         if postion >= 0 and position < len(self): 
    106             return self[postion] 
    107         else: 
    108             return None 
    109          
    110     def getCurrentPosition(self): 
    111         """ 
    112         """ 
    113         return self.iterator.currentPosition() 
    114            
    11513 
    11614class PageInfo(object): 
     
    18987        self.Bind(basepage.EVT_PREVIOUS_STATE, self._onUndo) 
    19088        self.Bind(basepage.EVT_NEXT_STATE, self._onRedo) 
     89        self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, self.on_page_changing) 
    19190        
    19291        #add default pages 
     
    19998        self.Center() 
    20099         
     100    def on_page_changing(self, event): 
     101        pos = self.GetSelection() 
     102        if pos != -1: 
     103            selected_page = self.GetPage(pos) 
     104            wx.PostEvent(self.parent, PanelOnFocusEvent(panel=selected_page)) 
    201105    def on_set_focus(self, event): 
    202106        """ 
    203107        """ 
    204108        pos = self.GetSelection() 
    205         selected_page = self.GetPage(pos) 
    206         print "panel on fogus", selected_page.window_name 
    207         wx.PostEvent(self.parent, PanelOnFocusEvent(panel=selected_page)) 
     109        if pos != -1: 
     110            selected_page = self.GetPage(pos) 
     111            wx.PostEvent(self.parent, PanelOnFocusEvent(panel=selected_page)) 
    208112         
    209113    def get_data(self): 
     
    212116        """ 
    213117        pos = self.GetSelection() 
    214         selected_page = self.GetPage(pos) 
    215         return selected_page.get_data() 
     118        if pos != -1: 
     119            selected_page = self.GetPage(pos) 
     120            return selected_page.get_data() 
    216121     
    217122    def get_state(self): 
     
    220125        """ 
    221126        pos = self.GetSelection() 
    222         selected_page = self.GetPage(pos) 
    223         return selected_page.get_state() 
     127        if pos != -1: 
     128            selected_page = self.GetPage(pos) 
     129            return selected_page.get_state() 
    224130     
    225131    def add_default_pages(self): 
     
    240146        remove all pages, used when a svs file is opened 
    241147        """ 
     148         
    242149        #get number of pages 
    243150        nop = self.GetPageCount() 
     
    246153            #delete the first page until no page exists 
    247154            page = self.GetPage(0) 
     155            if self._manager.parent.panel_on_focus == page: 
     156                self._manager.parent.panel_on_focus = None 
    248157            self._close_helper(selected_page=page) 
    249158            self.DeletePage(0) 
    250159            nop = nop - 1 
     160             
    251161        ## save the title of the last page tab added 
    252162        self.fit_page_name = {} 
     
    276186                    panel.save_current_state() 
    277187                     
    278     def clear_panel(self, format='.svs'): 
     188    def clear_panel(self): 
    279189        """ 
    280190        Clear and close all panels, used by guimanager 
    281191        """ 
    282         if format == '.svs': 
    283             #close all panels only when svs file opened 
    284             self.close_all() 
    285             self._manager.mypanels = [] 
     192        
     193        #close all panels only when svs file opened 
     194        self.close_all() 
     195        self._manager.mypanels = [] 
     196         
    286197                        
    287198    def on_close_page(self, event=None): 
  • sansview/perspectives/fitting/fitting.py

    r75fbd17 r90a7bbd  
    3535from sans.guiframe.events import ERR_DATA 
    3636from sans.guiframe.events import EVT_SLICER_PARS_UPDATE 
    37 from sans.guiframe.events import EVT_FITSTATE_UPDATE 
    38  
    39 #from sans.fit.AbstractFitEngine import Model 
    40 #from sans.fit.AbstractFitEngine import FitAbort 
     37 
     38 
    4139from .console import ConsoleUpdate 
    4240from .fitproblem import FitProblem 
     
    263261        return self.mypanels 
    264262     
     263    def clear_panel(self): 
     264        """ 
     265        """ 
     266        self.fit_panel.clear_panel(format=format) 
     267         
    265268    def set_default_perspective(self): 
    266269        """ 
     
    297300        : param datainfo: data 
    298301        """ 
    299         state = self.state_reader.get_state() 
     302        #state = self.state_reader.get_state() 
    300303        if state != None: 
    301304            # store fitting state in temp_state 
  • sansview/perspectives/fitting/pagestate.py

    r75fbd17 r90a7bbd  
    11731173                    state.data.group_id = name 
    11741174                    #store state in fitting 
    1175                     #self.call_back(state=state, datainfo=output[ind],format=ext) 
     1175                    self.call_back(state=state, datainfo=output[ind],format=ext) 
    11761176                    self.state= state 
    11771177                return output 
Note: See TracChangeset for help on using the changeset viewer.