Changeset 4523b68 in sasview for sansview/perspectives/fitting


Ignore:
Timestamp:
Aug 18, 2010 7:30:03 PM (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:
a706353b
Parents:
645f9b6
Message:

added coremultishellmodel/multifunctional model

Location:
sansview/perspectives/fitting
Files:
3 edited

Legend:

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

    r3c44c66 r4523b68  
    929929        self.formfactorbox.Select(int(state.formfactorcombobox)) 
    930930        self.structurebox.SetSelection(state.structurecombobox ) 
    931         
     931        if state.multi_factor != None: 
     932            self.multifactorbox.SetSelection(state.multi_factor-1) 
     933 
    932934        #reset the fitting engine type 
    933935        self.engine_type = state.engine_type 
     
    15841586        else: 
    15851587            boxsizer1 = box_sizer 
    1586              
     1588        sizer_buttons = wx.BoxSizer(wx.HORIZONTAL)     
    15871589        #-------------------------------------------------------- 
    15881590        self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', style=wx.RB_GROUP) 
     
    16051607        sizer_radiobutton.Add(self.shape_rbutton) 
    16061608        sizer_radiobutton.Add(self.shape_indep_rbutton) 
     1609 
    16071610        sizer_radiobutton.Add(self.plugin_rbutton) 
    16081611        sizer_radiobutton.Add(self.struct_rbutton) 
     1612        sizer_buttons.Add(sizer_radiobutton) 
     1613        # detail button 
     1614        if object !=None: 
     1615            sizer_buttons.Add((50,0)) 
     1616            sizer_buttons.Add(object) 
    16091617         
    16101618        sizer_selection = wx.BoxSizer(wx.HORIZONTAL) 
     1619        mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL) 
    16111620         
    16121621        self.text1 = wx.StaticText( self,-1,"" ) 
    16131622        self.text2 = wx.StaticText( self,-1,"P(Q)*S(Q)" ) 
    1614          
     1623        self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: " ) 
    16151624         
    16161625        self.formfactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
     
    16191628            
    16201629        self.structurebox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    1621          
     1630        self.multifactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    16221631        self.initialize_combox() 
    16231632              
    16241633        wx.EVT_COMBOBOX(self.formfactorbox,-1, self._on_select_model) 
    16251634        wx.EVT_COMBOBOX(self.structurebox,-1, self._on_select_model) 
    1626          
    1627         
     1635        wx.EVT_COMBOBOX(self.multifactorbox,-1, self._on_select_model) 
     1636         
    16281637        ## check model type to show sizer 
    16291638        if self.model !=None: 
     
    16371646        sizer_selection.Add((5,5)) 
    16381647        sizer_selection.Add(self.structurebox) 
    1639         sizer_selection.Add((5,5)) 
    1640          
    1641         boxsizer1.Add( sizer_radiobutton ) 
    1642         boxsizer1.Add( (20,20)) 
     1648        #sizer_selection.Add((5,5)) 
     1649        mutifactor_selection.Add((10,5)) 
     1650        mutifactor_selection.Add(self.mutifactor_text) 
     1651        mutifactor_selection.Add(self.multifactorbox) 
     1652         
     1653        boxsizer1.Add( sizer_buttons ) 
     1654        boxsizer1.Add( (15,15)) 
    16431655        boxsizer1.Add( sizer_selection ) 
    1644         if object !=None: 
    1645             boxsizer1.Add( (-72,-72)) 
    1646             boxsizer1.Add( object,  0, wx.ALIGN_RIGHT| wx.RIGHT, 35) 
    1647             boxsizer1.Add( (60,60)) 
     1656        boxsizer1.Add( (10,10)) 
     1657        boxsizer1.Add(mutifactor_selection) 
     1658         
     1659        self._set_multfactor_combobox() 
     1660 
    16481661        #-------------------------------------------------------- 
    16491662        sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
    16501663        sizer.Layout() 
    16511664        self.SetScrollbars(20,20,25,65) 
     1665         
     1666    def _set_multfactor_combobox(self):    
     1667        """ 
     1668        Set comboBox for muitfactor of CoreMultiShellModel 
     1669        """ 
     1670        for idx in range(1,5): 
     1671            self.multifactorbox.Append(str(idx),int(idx)) 
     1672            self.multifactorbox.SetSelection(0)  
     1673        self._hide_multfactor_combobox() 
     1674         
     1675    def _show_multfactor_combobox(self):    
     1676        """ 
     1677        Show the comboBox of muitfactor of CoreMultiShellModel 
     1678        """  
     1679        if not self.mutifactor_text.IsShown(): 
     1680            self.mutifactor_text.Show(True) 
     1681        if not self.multifactorbox.IsShown(): 
     1682            self.multifactorbox.Show(True)   
     1683              
     1684    def _hide_multfactor_combobox(self):    
     1685        """ 
     1686        Hide the comboBox of muitfactor of CoreMultiShellModel 
     1687        """  
     1688        if self.mutifactor_text.IsShown(): 
     1689            self.mutifactor_text.Hide() 
     1690        if self.multifactorbox.IsShown(): 
     1691            self.multifactorbox.Hide()    
     1692 
    16521693         
    16531694    def _show_combox_helper(self): 
     
    17971838            self.structurebox.Enable() 
    17981839            self.text2.Enable() 
     1840             
     1841        if form_factor != None:     
     1842            # set multifactor for Mutifunctional models     
     1843            if form_factor().name == 'CoreMultiShellModel': 
     1844                self._show_multfactor_combobox() 
     1845                m_id = self.multifactorbox.GetCurrentSelection() 
     1846                self.multi_factor = self.multifactorbox.GetClientData(m_id) 
     1847                if self.multi_factor == None: self.multi_factor =0 
     1848                form_factor = form_factor(int(self.multi_factor)) 
     1849            else: 
     1850                self._hide_multfactor_combobox() 
     1851                form_factor = form_factor() 
     1852                self.multi_factor = None 
     1853        else: 
     1854            self._hide_multfactor_combobox() 
     1855            self.multi_factor = None   
     1856               
    17991857        s_id = self.structurebox.GetCurrentSelection() 
    18001858        struct_factor = self.structurebox.GetClientData( s_id ) 
    1801         
     1859         
    18021860        if  struct_factor !=None: 
    18031861            from sans.models.MultiplicationModel import MultiplicationModel 
    1804             self.model= MultiplicationModel(form_factor(),struct_factor()) 
     1862            self.model= MultiplicationModel(form_factor,struct_factor()) 
    18051863             
    18061864        else: 
    18071865            if form_factor != None: 
    1808                 self.model= form_factor() 
     1866                self.model= form_factor 
    18091867            else: 
    18101868                self.model = None 
    18111869                return self.model 
     1870             
     1871 
    18121872        ## post state to fit panel 
    18131873        self.state.parameters =[] 
    18141874        self.state.model =self.model 
     1875        self.state.qmin = self.qmin_x 
     1876        self.state.multi_factor = self.multi_factor 
    18151877        self.disp_list =self.model.getDispParamList() 
    18161878        self.state.disp_list = self.disp_list 
  • sansview/perspectives/fitting/models.py

    r5062bbf r4523b68  
    182182        self.shape_list.append(CoreShellModel) 
    183183        self.multiplication_factor.append(CoreShellModel) 
    184  
    185         from sans.models.CoreFourShellModel import CoreFourShellModel 
    186         self.shape_list.append(CoreFourShellModel) 
    187         self.multiplication_factor.append(CoreFourShellModel) 
     184         
     185        from sans.models.CoreMultiShellModel import CoreMultiShellModel 
     186        self.shape_list.append(CoreMultiShellModel) 
     187        self.multiplication_factor.append(CoreMultiShellModel) 
    188188         
    189189        from sans.models.VesicleModel import VesicleModel 
  • sansview/perspectives/fitting/pagestate.py

    rb63dc6e r4523b68  
    223223        self.npts = None 
    224224        self.name = "" 
     225        self.multi_factor = None 
    225226        ## enable smearering state 
    226227        self.enable_smearer = False 
     
    297298        obj.qmin = copy.deepcopy(self.qmin) 
    298299        obj.qmax = copy.deepcopy(self.qmax) 
     300        obj.multi_factor = copy.deepcopy(self.multi_factor) 
    299301        obj.npts = copy.deepcopy(self.npts ) 
    300302        obj.cb1 = copy.deepcopy(self.cb1) 
Note: See TracChangeset for help on using the changeset viewer.