Ignore:
Timestamp:
Feb 2, 2009 5:28:06 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:
ca88b2e
Parents:
2cf2b87
Message:

redesign the model1D and madel page

File:
1 edited

Legend:

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

    r32d802f r26bf293  
    11import wx 
     2import wx.aui 
    23import wx.lib 
    34import numpy 
     
    78 
    89 
    9      
    10 class FitPanel(wx.Panel): 
     10class FitPanel(wx.aui.AuiNotebook):     
     11#class FitPanel(wx.aui.AuiNotebook,wx.panel): 
    1112    """ 
    1213        FitPanel class contains fields allowing to fit  models and  data 
     
    2021    window_caption = "Fit Panel " 
    2122    CENTER_PANE = True 
    22     
    23      
    2423    def __init__(self, parent, *args, **kwargs): 
    25         wx.Panel.__init__(self, parent, *args, **kwargs) 
     24         
     25        wx.aui.AuiNotebook.__init__(self,parent,-1, style=wx.aui.AUI_NB_SCROLL_BUTTONS ) 
     26         
    2627        self.manager=None 
    2728        self.parent=parent 
    2829        self.event_owner=None 
    29         #self.menu_mng = models.ModelManager() 
    30         self.nb = wx.Notebook(self) 
    31         self.sizer = wx.BoxSizer() 
    32         self.sizer.Add(self.nb, 1, wx.EXPAND) 
     30         
     31        pageClosedEvent = wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE 
     32        self.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.onClosePage) 
     33 
    3334        #Creating an initial page for simultaneous fitting 
    3435        from simfitpage import SimultaneousFitPage 
    35         self.sim_page = SimultaneousFitPage(self.nb, -1) 
    36          
    37         #self.fit_panel.add_page(self.sim_page,"Simultaneous Fit") 
    38         self.nb.AddPage(self.sim_page,"Simultaneous Fit") 
     36        self.sim_page = SimultaneousFitPage(self, -1) 
     37        self.AddPage(self.sim_page,"Simultaneous Fit") 
     38         
     39 
    3940         
    4041        #dictionary of miodel {model class name, model class} 
     
    5051        self.count=0 
    5152        #updating the panel 
    52         self.nb.Update() 
    53         self.SetSizer(self.sizer) 
    54         self.sizer.Fit(self) 
     53        self.Update() 
    5554        self.Center() 
    56          
     55    def onClosePage(self, event): 
     56        self.ToggleWindowStyle(wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB) 
     57        print "went here",self.get_current_page(), self.GetPage(0) 
     58        #event.Skip() 
     59        if self.GetPageCount() <= 2: 
     60            print "wente here" 
     61             
     62            # Prevent last tab from being closed 
     63            self.ToggleWindowStyle(~wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB) 
     64             
     65 
     66    
     67 
    5768 
    5869         
     
    8697        if self.fit_page_name != name: 
    8798            self.count +=1 
     99             
    88100            if data.__class__.__name__=='Data2D': 
    89101                 from fitpage2D import FitPage2D 
    90                  panel = FitPage2D(self.nb,data, -1) 
     102                 panel = FitPage2D(self,data, -1) 
    91103                  
    92104            else: 
    93                  
     105            
    94106                from fitpage1D import FitPage1D 
    95                 panel = FitPage1D(self.nb,data, -1) 
     107                panel = FitPage1D(self,data, -1) 
    96108            m_name= "M"+str(self.count)   
    97109            panel.set_manager(self.manager) 
    98110            panel.set_owner(self.event_owner) 
    99111             
    100             self.nb.AddPage(page=panel,text=name,select=True) 
     112            self.AddPage(page=panel,caption=name,select=True) 
    101113            panel.populate_box( self.model_list_box) 
    102114            self.fit_page_name = name 
     
    112124        """ 
    113125        from modelpage import ModelPage 
    114         panel = ModelPage(self.nb,model,page_title, -1) 
     126        print "fitpanel model", model 
     127        panel = ModelPage(self,model,page_title, -1) 
    115128        panel.set_manager(self.manager) 
    116129        panel.set_owner(self.event_owner) 
    117         #self.nb.AddPage(page=panel,text=page_title,select=True) 
    118         self.nb.AddPage(page=panel,text="Model",select=True) 
     130        self.AddPage(page=panel,caption="Model",select=True) 
    119131        panel.populate_box( self.model_list_box) 
    120132        self.draw_model_name=page_title 
    121         self.model_page_number=self.nb.GetSelection() 
    122         self.model_page=self.nb.GetPage(self.nb.GetSelection()) 
     133        self.model_page_number=self.GetSelection() 
     134        self.model_page=self.GetPage(self.GetSelection()) 
    123135         
    124136         
     
    150162            self.model_page.select_model(model, page_title) 
    151163            
    152     def get_notebook(self): 
    153         """ 
    154             @return self.nb: return its own notebook mostly used by fitting module  
    155         """ 
    156         return self.nb 
     164    def get_current_page(self): 
     165        """ 
     166            @return the current page selected 
     167        """ 
     168        #return self.nb.GetCurrentPage() 
     169        return self.GetPage(self.GetSelection() ) 
     170   
    157171     
    158     def get_page(self, n): 
    159         """ 
    160             @return page at position n 
    161             @param n: page number 
    162         """ 
    163         return self.nb.GetPage(n) 
    164      
    165      
    166     def get_page_count(self): 
    167         """ @return  number total of pages contained in notebook""" 
    168         return self.nb.GetPageCount() 
    169          
    170          
    171     def get_current_page(self): 
    172         """ 
    173             @return the current page selected 
    174         """ 
    175         return self.nb.GetCurrentPage() 
    176      
    177      
    178     def get_selected_page(self): 
    179         """ @return the page just selected by the user """ 
    180         return self.nb.GetPage(self.nb.GetSelection()) 
    181      
    182      
    183     def get_page_number(self): 
    184         return self.nb.GetSelection() 
    185      
    186     def onClose(self, page=None,page_number=None): 
     172    def old_onClose(self, page=None,page_number=None): 
    187173        """ 
    188174             close the current page except the simpage. remove each check box link to the model 
Note: See TracChangeset for help on using the changeset viewer.