source: sasview/sansview/perspectives/fitting/pagestate.py @ 41340860

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 41340860 was 3370922, checked in by Gervaise Alina <gervyh@…>, 15 years ago

restore smearer info state

  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[c77d859]1
2
[6f023e8]3import copy
[c77d859]4
[cfc0913]5class PageState(object):
[c77d859]6    """
7        Contains info to reconstruct a page
8    """
9    def __init__(self, parent,model=None, data=None):
10       
11        """
12            Initialization of the Panel
13        """
14        #TODO: remove this once the inheritence is cleaned up
15        ## Data member to store the dispersion object created
16        self._disp_obj_dict = {}
[cfc0913]17        ## reset True change the state of exsiting button
18        self.reset = False
[c77d859]19        #Data used for fitting
20        self.data = data
21        # flag to allow data2D plot
[cfc0913]22        self.enable2D = False
[c77d859]23        # model on which the fit would be performed
24        self.model = model
25        #fit page manager
26        self.manager = None
27        #Store the parent of this panel parent
28        # For this application fitpanel is the parent
29        self.parent  = parent
30        # Event_owner is the owner of model event
31        self.event_owner = None
[c9a4377]32        ##page name
[cfc0913]33        self.page_name = ""
[c77d859]34        # Contains link between  model ,all its parameters, and panel organization
[cfc0913]35        self.parameters =[]
[c77d859]36        # Contains list of parameters that cannot be fitted and reference to
37        #panel objects
[cfc0913]38        self.fixed_param =[]
[c77d859]39        # Contains list of parameters with dispersity and reference to
40        #panel objects
[cfc0913]41        self.fittable_param =[]
[60132ef]42        ## orientation parameters
43        self.orientation_params=[]
[3370922]44        ## smearer info
45        self.smearer=None
[c77d859]46        #list of dispersion paramaters
[cfc0913]47        self.disp_list =[]
[c77d859]48        #contains link between a model and selected parameters to fit
[cfc0913]49        self.param_toFit =[]
[a074145]50        ##dictionary of model type and model class
[cfc0913]51        self.model_list_box = None
[a074145]52        ## save the state of the context menu
53        self.saved_states={}
[c77d859]54        ## save  current value of combobox
55        self.formfactorcombobox = ""
56        self.structurecombobox  = ""
[b787e68c]57        ## the indice of the current selection
58        self.disp_box = 0
[c77d859]59        ## Qrange
[cfc0913]60        ## Q range
61        self.qmin= 0.001
62        self.qmax= 0.1
63        self.npts = None
64        ## enable smearering state
65        self.enable_smearer = False
66        ## disperity selection
67        self.enable_disp= False
68        ## state of selected all check button
69        self.cb1 = False
[c9a4377]70       
[cfc0913]71   
72    def save_data(self, data):
[c77d859]73        """
[cfc0913]74            Save data
[c77d859]75        """
[cfc0913]76        self.data = copy.deepcopy(data)
[b787e68c]77
[cfc0913]78       
[6f023e8]79    def clone(self):
80        model=None
81        if self.model !=None:
82            model = self.model.clone()
83       
[cfc0913]84        obj          = PageState( self.parent,model= model )
[6f023e8]85        obj.data = copy.deepcopy(self.data)
[dcf29d7]86        obj.model_list_box = copy.deepcopy(self.model_list_box)
87        obj.manager = self.manager
88        obj.event_owner = self.event_owner
[cfc0913]89        obj.parameters = copy.deepcopy(self.parameters)
90        obj.fixed_param = copy.deepcopy(self.fixed_param)
91        obj.fittable_param = copy.deepcopy(self.fittable_param)
[60132ef]92        obj.orientation_params =  copy.deepcopy(self.orientation_params)
[b787e68c]93        obj.enable_disp = copy.deepcopy(self.enable_disp)
94        obj.enable_smearer = copy.deepcopy(self.enable_smearer)
95        obj.disp_box = copy.deepcopy(self.disp_box)
96        obj.qmin = copy.deepcopy(self.qmin)
97        obj.qmax = copy.deepcopy(self.qmax)
98        obj.npts = copy.deepcopy(self.npts )
99        obj.cb1 = copy.deepcopy(self.cb1)
[3370922]100        obj.smearer = copy.deepcopy(self.smearer)
101       
[a074145]102        for name, state in self.saved_states.iteritems():
103            copy_name = copy.deepcopy(name)
104            copy_state = state.clone()
105            obj.saved_states[copy_name]= copy_state
[6f023e8]106        return obj
[c77d859]107
[cfc0913]108class PageMemento(object):
109    """
110        Store the state of a fitpage or model page of fitpanel
111    """
112    def __init__(self, state):
113        """ Initialization"""
114        self.state = state
115       
116    def setState(self,state):
117        """
118            set current state
119            @param state: new state
120        """
121        self.state = state
122       
123    def getState(self):
124        """
125            @return state
126        """
127        return self.state
128       
129       
130       
[c77d859]131       
Note: See TracBrowser for help on using the repository browser.