Changeset dcf29d7 in sasview


Ignore:
Timestamp:
Apr 2, 2009 2:38:56 PM (16 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:
87a43fe
Parents:
b03deea
Message:

draw panel according to the fitting type
closing and reopen page i am still working on

Location:
sansview/perspectives/fitting
Files:
6 edited

Legend:

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

    r77e23a2 rdcf29d7  
    811811        else: 
    812812            self.model= form_factor() 
     813        self.page_info.model= self.model 
    813814        
    814815         
     
    922923        model_disp = wx.StaticText(self, -1, 'No PolyDispersity for this model') 
    923924        self.sizer4_4.Add(model_disp,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     925        self.sizer4_4.Layout() 
    924926        self.sizer4.Layout() 
     927        
    925928        self.SetScrollbars(20,20,200,100) 
    926929        return  
     
    10071010        self.qmin.SetToolTipString("Minimun value of Q in linear scale.") 
    10081011        self.qmin.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) 
     1012        self.qmin.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    10091013        self.qmin.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    10101014      
     
    10131017        self.qmax.SetToolTipString("Maximum value of Q in linear scale.") 
    10141018        self.qmax.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) 
     1019        self.qmax.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    10151020        self.qmax.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    10161021      
     
    10371042        self.sizer5.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
    10381043        self.sizer5.Layout() 
     1044        self.Layout() 
    10391045        self.SetScrollbars(20,20,200,100) 
    10401046     
  • sansview/perspectives/fitting/fitpage.py

    r77e23a2 rdcf29d7  
    3838        ## if no dispersity parameters is avaible  
    3939        self.text_disp_1=None 
     40        ## default fitengine type 
     41        self.engine_type = "scipy" 
    4042         
    4143        self._fill_datainfo_sizer() 
     
    5355            @param event: FitterTypeEvent containing  the name of the current engine 
    5456        """ 
     57        self.engine_type = event.type 
     58          
    5559        if len(self.parameters)==0: 
    5660            return 
     
    748752                            wx.EXPAND|wx.ADJUST_MINSIZE, 0)  
    749753        self.text2_4.Hide() 
    750          
     754        if self.engine_type=="park": 
     755            self.text2_max.Show(True) 
     756            self.text2_min.Show(True) 
    751757 
    752758        for item in keys: 
     
    801807                ctl4.SetValue(format_number(param_max)) 
    802808                ctl4.Hide() 
    803                
     809                 
     810                if self.engine_type=="park": 
     811                    ctl3.Show(True) 
     812                    ctl4.Show(True) 
     813                     
    804814                ix +=1 
    805815                # Units 
  • sansview/perspectives/fitting/fitpanel.py

    r77e23a2 rdcf29d7  
    139139        return self.sim_page 
    140140         
    141     def add_fit_page( self,data ): 
     141    def add_fit_page( self,data, page_info=None ): 
    142142        """  
    143143            Add a fitting page on the notebook contained by fitpanel 
     
    149149        except: 
    150150            name = 'Fit' 
    151         from pageInfo import  PageInfo 
    152         myinfo = PageInfo( self, data=data ) 
    153         myinfo.model_list_box = self.model_list_box.get_list() 
    154         myinfo.event_owner = self.event_owner  
    155         myinfo.manager = self.manager 
     151        if page_info==None: 
     152            from pageInfo import  PageInfo 
     153            myinfo = PageInfo( self, data=data ) 
     154            myinfo.model_list_box = self.model_list_box.get_list() 
     155            myinfo.event_owner = self.event_owner  
     156            myinfo.manager = self.manager 
     157        else: 
     158            myinfo = page_info 
    156159         
    157160        if not name in self.fit_page_name : 
    158              
    159161            from fitpage import FitPage 
    160162            panel = FitPage(parent= self, page_info=myinfo, name=name ) 
     
    162164            panel.window_name= "fitpage" 
    163165            self.AddPage(page=panel,caption=name,select=True) 
    164             #panel.populate_box( self.model_list_box) 
    165166            self.fit_page_name.append(name) 
    166167             
     
    170171         
    171172    
    172     def add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50, topmenu=False): 
     173    def add_model_page(self,model,page_title, qmin=0, qmax=0.1, 
     174                        npts=50, topmenu=False,page_info=None): 
    173175        """ 
    174176            Add a model page only one  to display any model selected from the menu or the page combo box. 
     
    177179            @param model: the model for which paramters will be changed 
    178180            @param page_title: the name of the page 
    179             @param page_title: [Coder: fill your description!] 
     181            @param page_info: contains info about the state of the page 
    180182            @param qmin: mimimum Q 
    181183            @param qmax: maximum Q 
     
    184186        if topmenu==True: 
    185187            if  self.draw_model_name ==None: 
    186                 self._help_add_model_page(model,page_title, qmin=qmin, qmax=qmax, npts=npts) 
     188                self._help_add_model_page(model,page_title,  
     189                                qmin=qmin, qmax=qmax, npts=npts, page_info=page_info) 
    187190            else: 
    188191                self.model_page.select_model(model, page_title) 
    189192        else: 
    190             self._create_model_page(model,page_title, qmin=qmin, qmax=qmax, npts=npts) 
    191            
    192     def _help_add_model_page(self,model,page_title, qmin=0, qmax=0.1, npts=50): 
     193            if  self.draw_model_name ==None: 
     194                self._create_model_page(model,page_title, qmin=qmin, qmax=qmax, 
     195                                         npts=npts, page_info=page_info) 
     196            
     197                 
     198    def _help_add_model_page(self,model,page_title, qmin=0,  
     199                             qmax=0.1, npts=50,page_info=None): 
    193200        """ 
    194201            #TODO: fill in description 
     
    198205            @param npts: number of Q points 
    199206        """ 
    200         self._create_model_page(model,page_title,qmin=qmin, qmax=qmax, npts=npts) 
     207        self._create_model_page(model,page_title,qmin=qmin, qmax=qmax, 
     208                                 npts=npts,page_info= page_info) 
    201209        # We just created a model page, we are ready to plot the model 
    202210        #self.manager.draw_model(model, model.name) 
     
    204212        self.manager.draw_model(model) 
    205213     
    206     def _create_model_page(self,model,page_title, qmin, qmax, npts): 
     214    def _create_model_page(self,model,page_title, qmin, qmax, npts,page_info=None): 
    207215        """ 
    208216        adding model page occurs here 
    209217        """ 
    210         
    211         ## storing page info 
    212         from pageInfo import  PageInfo 
    213         myinfo = PageInfo( self, model ) 
    214         myinfo.model_list_box = self.model_list_box.get_list() 
    215         myinfo.event_owner = self.event_owner  
    216         myinfo.manager = self.manager 
    217          
     218        ## creating object that contaning info about model  
     219        if page_info==None: 
     220            from pageInfo import  PageInfo 
     221            myinfo = PageInfo( self, model=model) 
     222            myinfo.model_list_box = self.model_list_box.get_list() 
     223            myinfo.event_owner = self.event_owner  
     224            myinfo.manager = self.manager 
     225        else: 
     226            myinfo = page_info 
     227     
    218228        from modelpage import ModelPage 
    219229        panel = ModelPage(self,myinfo,page_title) 
  • sansview/perspectives/fitting/fitting.py

    r77e23a2 rdcf29d7  
    451451            Add name of a closed page of fitpanel in a menu  
    452452        """ 
    453         if len(self.closed_page_dict)>0: 
    454             for k , value in self.closed_page_dict.iteritems(): 
    455                 if not name in value: 
    456                     # Post paramters 
    457                     event_id = wx.NewId() 
    458                     self.menu1.Append(event_id, name, "Show %s fit panel" % name) 
    459                     self.closed_page_dict[event_id ]= [page_info, fitproblem] 
    460                 else: 
    461                     event_id= k 
    462                     self.closed_page_dict[k ]= [page_info, fitproblem] 
    463         else: 
     453        list = self.menu1.GetMenuItems() 
     454        for item in list: 
     455            if name == item.GetItemLabel(): 
     456                self.closed_page_dict[name][1:] = page_info, fitproblem 
     457                 
     458        if not name in self.closed_page_dict.keys():     
     459            # Post paramters 
    464460            event_id = wx.NewId() 
    465461            self.menu1.Append(event_id, name, "Show %s fit panel" % name) 
    466             self.closed_page_dict[event_id ]= [page_info, fitproblem] 
    467         wx.EVT_MENU(self.parent,event_id,  self._open_closed_page) 
     462            self.closed_page_dict[name]= [event_id,page_info, fitproblem] 
     463            wx.EVT_MENU(self.parent,event_id,  self._open_closed_page) 
    468464         
    469465         
     
    472468            reopen a closed page 
    473469        """ 
    474         if event.GetId() in self.closed_page_dict.keys(): 
    475             page_info,fitproblem = self.closed_page_dict[ event.GetId() ] 
     470        for value in self.closed_page_dict.values(): 
     471            if event.GetId() in value: 
     472                id, page_info,fitproblem = value 
     473                 
    476474            if page_info.page_name !="Model Page": 
    477                 page = self.fit_panel.add_fit_page(page_info.data) 
     475                page = self.fit_panel.add_fit_page(data= page_info.data, 
     476                                                    page_info=page_info) 
    478477                if fitproblem != None: 
    479478                    self.page_finder[page]=fitproblem 
    480479            else: 
    481480                model= page_info.model 
    482                 self.fit_panel.add_model_page(model,model.name,topmenu=False) 
     481                self.fit_panel.add_model_page(model,model.name,topmenu=False, 
     482                                              page_info=page_info) 
     483            break 
     484         
    483485         
    484486    def _reset_schedule_problem(self, value=0): 
  • sansview/perspectives/fitting/modelpage.py

    r77e23a2 rdcf29d7  
    8787        self.npts.SetToolTipString("Number of point to plot.") 
    8888        self.npts.Bind(wx.EVT_SET_FOCUS, self.onSetFocus) 
     89        self.npts.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 
    8990        self.npts.Bind(wx.EVT_TEXT_ENTER, self._onparamEnter) 
    9091         
  • sansview/perspectives/fitting/pageInfo.py

    r59a7f2d rdcf29d7  
    7878        obj          = PageInfo( self.parent,model= model ) 
    7979        obj.data = copy.deepcopy(self.data) 
    80          
     80        obj.model_list_box = copy.deepcopy(self.model_list_box) 
     81        obj.manager = self.manager 
     82        obj.event_owner = self.event_owner 
    8183        return obj 
    8284 
Note: See TracChangeset for help on using the changeset viewer.