Changeset a5701e6 in sasview for sansview/perspectives/fitting


Ignore:
Timestamp:
Mar 10, 2011 5:11:55 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:
c399004
Parents:
7987962
Message:

working on toggl2 1d/2d

Location:
sansview/perspectives/fitting
Files:
4 edited

Legend:

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

    r7987962 ra5701e6  
    16581658                                    enable2D=self.enable2D) 
    16591659         
    1660     def _set_model_sizer(self,sizer, box_sizer, title="", object=None): 
    1661         """ 
    1662         Use lists to fill a sizer for model info 
    1663         """ 
    1664         
    1665         sizer.Clear(True) 
    1666         ##For MAC, this should defined here. 
    1667         if box_sizer == None: 
    1668             box_description= wx.StaticBox(self, -1,str(title)) 
    1669             boxsizer1 = wx.StaticBoxSizer(box_description, wx.VERTICAL) 
    1670         else: 
    1671             boxsizer1 = box_sizer 
    1672         sizer_buttons = wx.BoxSizer(wx.HORIZONTAL)     
    1673         #-------------------------------------------------------- 
    1674         self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', style=wx.RB_GROUP) 
    1675         self.shape_indep_rbutton = wx.RadioButton(self, -1, "Shape-Independent") 
    1676         self.struct_rbutton = wx.RadioButton(self, -1, "Structure Factor ") 
    1677         self.plugin_rbutton = wx.RadioButton(self, -1, "Customized Models") 
    1678                  
    1679         self.Bind( wx.EVT_RADIOBUTTON, self._show_combox, 
    1680                             id= self.shape_rbutton.GetId() )  
    1681         self.Bind( wx.EVT_RADIOBUTTON, self._show_combox, 
    1682                             id= self.shape_indep_rbutton.GetId() )  
    1683         self.Bind( wx.EVT_RADIOBUTTON, self._show_combox, 
    1684                             id= self.struct_rbutton.GetId() )  
    1685         self.Bind( wx.EVT_RADIOBUTTON, self._show_combox, 
    1686                             id= self.plugin_rbutton.GetId() )   
    1687         #MAC needs SetValue 
    1688         self.shape_rbutton.SetValue(True) 
    1689        
    1690         sizer_radiobutton = wx.GridSizer(2, 2,5, 5) 
    1691         sizer_radiobutton.Add(self.shape_rbutton) 
    1692         sizer_radiobutton.Add(self.shape_indep_rbutton) 
    1693  
    1694         sizer_radiobutton.Add(self.plugin_rbutton) 
    1695         sizer_radiobutton.Add(self.struct_rbutton) 
    1696         sizer_buttons.Add(sizer_radiobutton) 
    1697         # detail button 
    1698         if object !=None: 
    1699             sizer_buttons.Add((50,0)) 
    1700             sizer_buttons.Add(object) 
    1701          
    1702         sizer_selection = wx.BoxSizer(wx.HORIZONTAL) 
    1703         mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL) 
    1704          
    1705         self.text1 = wx.StaticText( self,-1,"" ) 
    1706         self.text2 = wx.StaticText( self,-1,"P(Q)*S(Q)" ) 
    1707         self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: " ) 
    1708         self.mutifactor_text1 = wx.StaticText( self,-1,"" ) 
    1709         self.show_sld_button = wx.Button( self,-1,"Show SLD Profile" ) 
    1710         self.show_sld_button.Bind(wx.EVT_BUTTON,self._on_show_sld) 
    1711  
    1712         self.formfactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    1713         if self.model!= None: 
    1714             self.formfactorbox.SetValue(self.model.name) 
    1715             
    1716         self.structurebox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    1717         self.multifactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
    1718         self.initialize_combox() 
    1719               
    1720         wx.EVT_COMBOBOX(self.formfactorbox,-1, self._on_select_model) 
    1721         wx.EVT_COMBOBOX(self.structurebox,-1, self._on_select_model) 
    1722         wx.EVT_COMBOBOX(self.multifactorbox,-1, self._on_select_model) 
    1723          
    1724         ## check model type to show sizer 
    1725         if self.model !=None: 
    1726             self._set_model_sizer_selection( self.model ) 
    1727          
    1728         sizer_selection.Add(self.text1) 
    1729         sizer_selection.Add((5,5)) 
    1730         sizer_selection.Add(self.formfactorbox) 
    1731         sizer_selection.Add((5,5)) 
    1732         sizer_selection.Add(self.text2) 
    1733         sizer_selection.Add((5,5)) 
    1734         sizer_selection.Add(self.structurebox) 
    1735         #sizer_selection.Add((5,5)) 
    1736         mutifactor_selection.Add((10,5)) 
    1737         mutifactor_selection.Add(self.mutifactor_text) 
    1738         mutifactor_selection.Add(self.multifactorbox) 
    1739         mutifactor_selection.Add((5,5)) 
    1740         mutifactor_selection.Add(self.mutifactor_text1) 
    1741         mutifactor_selection.Add((10,5)) 
    1742         mutifactor_selection.Add(self.show_sld_button) 
    1743  
    1744         boxsizer1.Add( sizer_buttons ) 
    1745         boxsizer1.Add( (15,15)) 
    1746         boxsizer1.Add( sizer_selection ) 
    1747         boxsizer1.Add( (10,10)) 
    1748         boxsizer1.Add(mutifactor_selection) 
    1749          
    1750         self._set_multfactor_combobox() 
    1751         self.multifactorbox.SetSelection(1) 
    1752         self.show_sld_button.Hide() 
    1753         #-------------------------------------------------------- 
    1754         sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
    1755         sizer.Layout() 
    17561660        
    17571661    def _on_show_sld(self, event=None): 
  • sansview/perspectives/fitting/fitpage.py

    rfa65e99 ra5701e6  
    2020(Chi2UpdateEvent, EVT_CHI2_UPDATE)   = wx.lib.newevent.NewEvent() 
    2121_BOX_WIDTH = 76 
    22 _DATA_BOX_WIDTH = 366 
     22_DATA_BOX_WIDTH = 300 
    2323SMEAR_SIZE_L = 0.005 
    2424SMEAR_SIZE_H = 0.006 
     
    473473        sizer_range.Add(wx.StaticText(self, -1, "Max: "),0, wx.LEFT, 10) 
    474474        sizer_range.Add(self.maximum_q,0, wx.LEFT, 10) 
    475         id = wx.NewId() 
    476         self.model_view = wx.Button(self, id,"Switch to 2D", size=(80, 23)) 
    477         self.model_view.Bind(wx.EVT_BUTTON, self._onModel2D, id=id) 
    478         hint = "toggle view of model from 1D to 2D  or 2D from 1D" 
    479         self.model_view.SetToolTipString(hint) 
    480         sizer_range.Add(self.model_view,0, wx.LEFT, 10) 
    481  
    482475        boxsizer1.Add(sizer_data,0, wx.ALL, 10) 
    483476        boxsizer1.Add(sizer_range, 0 , wx.LEFT, 10) 
     
    500493        self.model_help.Bind(wx.EVT_BUTTON, self.on_model_help_clicked,id=id) 
    501494        self.model_help.SetToolTipString("Model Function Help") 
    502          
    503         ## class base method  to add view 2d button     
    504         self._set_model_sizer(sizer=sizer, box_sizer=boxsizer1,  
    505                               title="Model",object=self.model_help )    
     495        id = wx.NewId() 
     496        self.model_view = wx.Button(self, id,"Switch to 2D", size=(80, 23)) 
     497        self.model_view.Bind(wx.EVT_BUTTON, self._onModel2D, id=id) 
     498        hint = "toggle view of model from 1D to 2D  or 2D from 1D" 
     499        self.model_view.SetToolTipString(hint) 
     500       
     501        self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', style=wx.RB_GROUP) 
     502        self.shape_indep_rbutton = wx.RadioButton(self, -1, "Shape-Independent") 
     503        self.struct_rbutton = wx.RadioButton(self, -1, "Structure Factor ") 
     504        self.plugin_rbutton = wx.RadioButton(self, -1, "Customized Models") 
     505                 
     506        self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     507                            id= self.shape_rbutton.GetId())  
     508        self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     509                            id= self.shape_indep_rbutton.GetId())  
     510        self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     511                            id= self.struct_rbutton.GetId())  
     512        self.Bind(wx.EVT_RADIOBUTTON, self._show_combox, 
     513                            id= self.plugin_rbutton.GetId())   
     514        #MAC needs SetValue 
     515        self.shape_rbutton.SetValue(True) 
     516       
     517        sizer_radiobutton = wx.GridSizer(2, 3, 5, 5) 
     518        sizer_radiobutton.Add(self.shape_rbutton) 
     519        sizer_radiobutton.Add(self.shape_indep_rbutton) 
     520        #sizer_radiobutton.Add((5, 5)) 
     521        sizer_radiobutton.Add(self.model_view,1, wx.LEFT, 20) 
     522        sizer_radiobutton.Add(self.plugin_rbutton) 
     523        sizer_radiobutton.Add(self.struct_rbutton) 
     524        #sizer_radiobutton.Add((5, 5)) 
     525        sizer_radiobutton.Add(self.model_help,1, wx.LEFT, 20) 
     526         
     527        sizer_selection = wx.BoxSizer(wx.HORIZONTAL) 
     528        mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL) 
     529         
     530        self.text1 = wx.StaticText(self,-1,"" ) 
     531        self.text2 = wx.StaticText(self,-1,"P(Q)*S(Q)" ) 
     532        self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: ") 
     533        self.mutifactor_text1 = wx.StaticText( self,-1,"" ) 
     534        self.show_sld_button = wx.Button( self,-1,"Show SLD Profile" ) 
     535        self.show_sld_button.Bind(wx.EVT_BUTTON,self._on_show_sld) 
     536 
     537        self.formfactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY) 
     538        if self.model!= None: 
     539            self.formfactorbox.SetValue(self.model.name) 
     540        self.structurebox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
     541        self.multifactorbox = wx.ComboBox(self, -1, style=wx.CB_READONLY) 
     542        self.initialize_combox() 
     543        wx.EVT_COMBOBOX(self.formfactorbox, -1, self._on_select_model) 
     544        wx.EVT_COMBOBOX(self.structurebox, -1, self._on_select_model) 
     545        wx.EVT_COMBOBOX(self.multifactorbox, -1, self._on_select_model) 
     546        ## check model type to show sizer 
     547        if self.model !=None: 
     548            self._set_model_sizer_selection(self.model) 
     549         
     550        sizer_selection.Add(self.text1) 
     551        sizer_selection.Add((5, 5)) 
     552        sizer_selection.Add(self.formfactorbox) 
     553        sizer_selection.Add((5, 5)) 
     554        sizer_selection.Add(self.text2) 
     555        sizer_selection.Add((5, 5)) 
     556        sizer_selection.Add(self.structurebox) 
     557        
     558        mutifactor_selection.Add((10,5)) 
     559        mutifactor_selection.Add(self.mutifactor_text) 
     560        mutifactor_selection.Add(self.multifactorbox) 
     561        mutifactor_selection.Add((5, 5)) 
     562        mutifactor_selection.Add(self.mutifactor_text1) 
     563        mutifactor_selection.Add((10, 5)) 
     564        mutifactor_selection.Add(self.show_sld_button) 
     565 
     566        
     567        boxsizer1.Add(sizer_radiobutton) 
     568        boxsizer1.Add((10, 10)) 
     569        boxsizer1.Add(sizer_selection) 
     570        boxsizer1.Add((10, 10)) 
     571        boxsizer1.Add(mutifactor_selection) 
     572         
     573        self._set_multfactor_combobox() 
     574        self.multifactorbox.SetSelection(1) 
     575        self.show_sld_button.Hide() 
     576        sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10) 
     577        sizer.Layout() 
    506578         
    507579    def _set_sizer_dispersion(self, dispersity): 
     
    14461518            self.enable_smearer.Enable() 
    14471519             
     1520    def get_view_mode(self): 
     1521        """ 
     1522        return True if the panel allow 2D or False if 1D 
     1523        """ 
     1524        return self.enable2D 
     1525     
    14481526    def set_data(self, data): 
    14491527        """ 
     
    26302708        self.Layout() 
    26312709        self.Refresh() 
    2632         self.SetupScrolling() 
    2633          
     2710      
    26342711    def _onModel2D(self, event): 
    26352712        """ 
  • sansview/perspectives/fitting/fitpanel.py

    r9f391af ra5701e6  
    269269            pos = self.GetPageIndex(page) 
    270270            if page.get_data() is None: 
    271                 page.set_data(data) 
    272                 self.SetPageText(pos, str(data.name)) 
    273                 self.SetSelection(pos) 
    274                 return page 
     271                enable2D = page.get_view_mode() 
     272                if (data.__class__.__name__ == "Data2D" and enable2D)\ 
     273                or (data.__class__.__name__ == "Data1D" and not enable2D): 
     274                    page.set_data(data) 
     275                    self.SetPageText(pos, str(data.name)) 
     276                    self.SetSelection(pos) 
     277                    return page 
    275278            elif page.get_data().id == data.id: 
    276279                msg = "Data already existing in the fitting panel" 
  • sansview/perspectives/fitting/fitting.py

    r3fafe15 ra5701e6  
    270270        for data in selected_data_list: 
    271271            self.add_fit_page(data=data) 
     272         
    272273            wx.PostEvent(self.parent, NewPlotEvent(plot=data,  
    273274                                                   title=str(data.title))) 
     
    645646        if page.id in self.page_finder: 
    646647            theory_data = self.page_finder[page.id].get_theory_data() 
     648             
    647649            if issubclass(data.__class__, Data2D): 
    648650                data.group_id.append(wx.NewId()) 
     651                if theory_data is not None: 
     652                    group_id = str(page.id) + " Model1D" 
     653                    if group_id in theory_data.group_id: 
     654                        theory_data.group_id.remove(group_id) 
     655                    wx.PostEvent(self.parent,  
     656                             NewPlotEvent(group_id=group_id, 
     657                                               action="delete")) 
    649658            else: 
    650659                if theory_data is not None: 
     660                    group_id = str(page.id) + " Model2D" 
     661                    if group_id in theory_data.group_id: 
     662                        theory_data.group_id.remove(group_id) 
     663                        theory_data.group_id.append(wx.NewId()) 
    651664                    group_id = theory_data.group_id[len(theory_data.group_id)-1] 
    652665                    if group_id not in data.group_id: 
    653666                        data.group_id.append(group_id) 
     667                    wx.PostEvent(self.parent,  
     668                             NewPlotEvent(group_id=group_id, 
     669                                               action="delete")) 
     670             
    654671            self.parent.update_data(prev_data=theory_data, new_data=data)        
    655672        self.store_data(id=page.id, data=data, caption=page.window_name) 
     
    11171134                if group_id not in new_plot.group_id: 
    11181135                    new_plot.group_id.append(group_id) 
     1136                
    11191137            else: 
    11201138                _xaxis, _xunit = "\\rm{Q}", 'A^{-1}' 
     
    11441162                             NewPlotEvent(group_id=str(id) + " Model2D", 
    11451163                                               action="Hide")) 
    1146                 print "toggle model on  -->1d" 
     1164                 
    11471165            self.page_finder[id].set_theory_data(new_plot) 
    11481166            if data is None: 
Note: See TracChangeset for help on using the changeset viewer.