Changeset 4523b68 in sasview


Ignore:
Timestamp:
Aug 18, 2010 5: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

Files:
2 added
6 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) 
  • theoryview/perspectives/theory/basepage.py

    r74755ff r4523b68  
    9494        if self.model != None: 
    9595            self.disp_list= self.model.getDispParamList() 
    96          
     96        self.multi_factor = None 
    9797        ##enable model 2D draw 
    9898        self.enable2D= False 
     
    497497            ## reset state of checkbox,textcrtl  and  regular parameters value 
    498498            self.reset_page(previous_state)       
     499   
    499500                   
    500501    def onSave(self, event): 
     
    505506        if self.model==None: 
    506507            return  
     508        self.save_current_state() 
     509        """ 
    507510        if hasattr(self,"enable_disp"): 
    508511            self.state.enable_disp = copy.deepcopy(self.enable_disp.GetValue()) 
     
    511514 
    512515        self.state.model.name= self.model.name 
    513  
     516        """ 
    514517        new_state = self.state.clone() 
    515518        new_state.model.name = self.state.model.name 
     
    697700        self.structurebox.SetSelection(state.structurecombobox ) 
    698701        self.formfactorbox.SetSelection(state.formfactorcombobox) 
    699          
     702        if state.multi_factor != None: 
     703            self.multifactorbox.SetSelection(state.multi_factor-1) 
     704        #draw the pnael according to the new model parameter  
     705        self._on_select_model(event=None) 
     706        
    700707        ## enable the view 2d button if this is a modelpage type 
    701708        if hasattr(self,"model_view"): 
     
    11531160        else: 
    11541161            boxsizer1 = box_sizer 
    1155              
     1162        sizer_buttons = wx.BoxSizer(wx.HORIZONTAL)         
    11561163        #-------------------------------------------------------- 
    11571164        self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', style=wx.RB_GROUP) 
     
    11771184        sizer_radiobutton.Add(self.struct_rbutton) 
    11781185         
     1186        sizer_buttons.Add(sizer_radiobutton) 
     1187        # detail button 
     1188        if object !=None: 
     1189            sizer_buttons.Add((50,0)) 
     1190            sizer_buttons.Add(object) 
     1191             
    11791192        sizer_selection = wx.BoxSizer(wx.HORIZONTAL) 
    1180          
     1193        mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL) 
    11811194        self.text1 = wx.StaticText( self,-1,"" ) 
    11821195        self.text2 = wx.StaticText( self,-1,"P(Q)*S(Q)" ) 
    1183          
     1196        self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: " ) 
    11841197         
    11851198        self.formfactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
     
    11891202             
    11901203        self.structurebox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
     1204        self.multifactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    11911205        wx.EVT_COMBOBOX(self.formfactorbox,-1, self._on_select_model) 
    11921206        wx.EVT_COMBOBOX(self.structurebox,-1, self._on_select_model) 
    1193          
     1207        wx.EVT_COMBOBOX(self.multifactorbox,-1, self._on_select_model) 
    11941208     
    11951209        ## fill combox box 
     
    12241238        sizer_selection.Add((5,5)) 
    12251239        sizer_selection.Add(self.structurebox) 
    1226         sizer_selection.Add((5,5)) 
    1227          
    1228         boxsizer1.Add( sizer_radiobutton ) 
    1229         boxsizer1.Add( (20,20)) 
     1240        #sizer_selection.Add((5,5)) 
     1241        mutifactor_selection.Add((10,5)) 
     1242        mutifactor_selection.Add(self.mutifactor_text) 
     1243        mutifactor_selection.Add(self.multifactorbox) 
     1244         
     1245        boxsizer1.Add( sizer_buttons ) 
     1246        boxsizer1.Add( (15,15)) 
    12301247        boxsizer1.Add( sizer_selection ) 
    1231         if object !=None: 
    1232             boxsizer1.Add( (-72,-72)) 
    1233             boxsizer1.Add( object,  0, wx.ALIGN_RIGHT| wx.RIGHT, 35) 
    1234             boxsizer1.Add( (60,60)) 
     1248        boxsizer1.Add( (10,10)) 
     1249        boxsizer1.Add(mutifactor_selection) 
     1250         
     1251        self._set_multfactor_combobox() 
     1252 
    12351253        #-------------------------------------------------------- 
    12361254        sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
     
    12381256        self.SetScrollbars(20,20,25,65) 
    12391257         
     1258    def _set_multfactor_combobox(self):    
     1259        """ 
     1260        Set comboBox for muitfactor of CoreMultiShellModel 
     1261        """ 
     1262        for idx in range(1,5): 
     1263            self.multifactorbox.Append(str(idx),int(idx)) 
     1264            self.multifactorbox.SetSelection(0)  
     1265        self._hide_multfactor_combobox() 
     1266         
     1267    def _show_multfactor_combobox(self):    
     1268        """ 
     1269        Show the comboBox of muitfactor of CoreMultiShellModel 
     1270        """  
     1271        if not self.mutifactor_text.IsShown(): 
     1272            self.mutifactor_text.Show(True) 
     1273        if not self.multifactorbox.IsShown(): 
     1274            self.multifactorbox.Show(True)   
     1275              
     1276    def _hide_multfactor_combobox(self):    
     1277        """ 
     1278        Hide the comboBox of muitfactor of CoreMultiShellModel 
     1279        """  
     1280        if self.mutifactor_text.IsShown(): 
     1281            self.mutifactor_text.Hide() 
     1282        if self.multifactorbox.IsShown(): 
     1283            self.multifactorbox.Hide()    
     1284      
    12401285         
    12411286    def _show_combox(self, event): 
     
    14191464            self.structurebox.Enable() 
    14201465            self.text2.Enable() 
    1421             
     1466 
     1467        if form_factor != None:     
     1468            # set multifactor for Mutifunctional models     
     1469            if form_factor().name == 'CoreMultiShellModel': 
     1470                self._show_multfactor_combobox() 
     1471                m_id = self.multifactorbox.GetCurrentSelection() 
     1472                self.multi_factor = self.multifactorbox.GetClientData(m_id) 
     1473                if self.multi_factor == None: self.multi_factor =0 
     1474                form_factor = form_factor(int(self.multi_factor)) 
     1475            else: 
     1476                self._hide_multfactor_combobox() 
     1477                form_factor = form_factor() 
     1478                self.multi_factor = None 
     1479        else: 
     1480            self._hide_multfactor_combobox() 
     1481            self.multi_factor = None   
     1482               
    14221483        s_id = self.structurebox.GetCurrentSelection() 
    14231484        struct_factor = self.structurebox.GetClientData( s_id ) 
     
    14251486        if  struct_factor !=None: 
    14261487            from sans.models.MultiplicationModel import MultiplicationModel 
    1427             self.model= MultiplicationModel(form_factor(),struct_factor()) 
     1488            self.model= MultiplicationModel(form_factor,struct_factor()) 
    14281489             
    14291490        else: 
    14301491            if form_factor != None: 
    1431                 self.model= form_factor() 
     1492                self.model= form_factor 
    14321493            else: 
    14331494                self.model = None 
     
    14371498        self.state.parameters =[] 
    14381499        self.state.model =self.model 
     1500        self.state.qmin = self.qmin_x 
     1501        self.state.multi_factor = self.multi_factor 
    14391502        self.disp_list =self.model.getDispParamList() 
    14401503        self.state.disp_list = self.disp_list 
  • theoryview/perspectives/theory/models.py

    r74755ff r4523b68  
    190190        self.shape_list.append(CoreShellModel) 
    191191        self.multiplication_factor.append(CoreShellModel) 
    192  
    193         from sans.models.CoreFourShellModel import CoreFourShellModel 
    194         self.shape_list.append(CoreFourShellModel) 
    195         self.multiplication_factor.append(CoreFourShellModel) 
    196          
     192         
     193        from sans.models.CoreMultiShellModel import CoreMultiShellModel 
     194        self.shape_list.append(CoreMultiShellModel) 
     195        self.multiplication_factor.append(CoreMultiShellModel) 
     196 
    197197        from sans.models.VesicleModel import VesicleModel 
    198198        self.shape_list.append(VesicleModel) 
  • theoryview/perspectives/theory/pagestate.py

    r74755ff r4523b68  
    8484        self.npts = None 
    8585        self.name="" 
     86        self.multi_factor = None 
    8687        ## enable smearering state 
    8788        self.enable_smearer = False 
     
    146147        obj.qmin = copy.deepcopy(self.qmin) 
    147148        obj.qmax = copy.deepcopy(self.qmax) 
     149        obj.multi_factor = copy.deepcopy(self.multi_factor) 
    148150        obj.npts = copy.deepcopy(self.npts ) 
    149151        obj.cb1 = copy.deepcopy(self.cb1) 
Note: See TracChangeset for help on using the changeset viewer.