Changeset cfc0913 in sasview for sansview/perspectives/fitting/fitpanel.py
- Timestamp:
- Apr 6, 2009 2:56:35 PM (15 years ago)
- 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:
- 40f9745
- Parents:
- ddfcd90
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitpanel.py
rdcf29d7 rcfc0913 6 6 #import models 7 7 _BOX_WIDTH = 80 8 (PageInfoEvent, EVT_PAGE_INFO) = wx.lib.newevent.NewEvent() 9 8 import basepage 9 10 class PageInfo(object): 11 """ 12 this class contains the minimum numbers of data members 13 a fitpage or model page need to be initialized. 14 """ 15 data = None 16 model= None 17 manager= None 18 event_owner= None 19 model_list_box = None 20 name=None 21 ## Internal name for the AUI manager 22 window_name = "Page" 23 ## Title to appear on top of the window 24 window_caption = "Page" 25 26 def __init__(self, model=None,data=None, manager=None, 27 event_owner=None,model_list_box=None , name=None): 28 """ 29 Initialize data members 30 """ 31 self.data = data 32 self.model= model 33 self.manager= manager 34 self.event_owner= event_owner 35 self.model_list_box = model_list_box 36 self.name=None 37 self.window_name = "Page" 38 self.window_caption = "Page" 39 10 40 class FitPanel(wx.aui.AuiNotebook): 11 41 … … 42 72 ##dictionary of page info 43 73 self.page_info_dict={} 44 # save the title of the last page tab added 45 self.fit_page_name=[] 74 ## save the title of the last page tab added 75 self.fit_page_name={} 76 ## list of existing fit page 77 self.list_fitpage_name=[] 46 78 self.draw_model_name=None 47 79 #model page info … … 50 82 self.model_page=None 51 83 self.sim_page=None 84 ## get the state of a page 85 self.Bind(basepage.EVT_PAGE_INFO, self._onGetstate) 52 86 # increment number for model name 53 87 self.count=0 … … 61 95 close page and remove all references to the closed page 62 96 """ 63 page_info = self.get_current_page().page_info.clone()64 page_ info.page_name = self.get_current_page().page_info.page_name97 state = self.get_current_page().createMemento() 98 page_name = self.get_current_page().name 65 99 page_finder = self.manager.get_page_finder() 66 100 fitproblem = None … … 69 103 fitproblem= page_finder[self.get_current_page()] 70 104 71 self.manager._add_page_onmenu(page_ info.page_name, page_info, fitproblem)105 self.manager._add_page_onmenu(page_name, fitproblem) 72 106 73 107 selected_page = self.GetPage(self.GetSelection()) … … 80 114 81 115 #Delete the page from notebook 82 if selected_page.name in self. fit_page_name:83 self. fit_page_name.remove(selected_page.name)116 if selected_page.name in self.list_fitpage_name: 117 self.list_fitpage_name.remove(selected_page.name) 84 118 85 119 if selected_page.name== self.draw_model_name: … … 139 173 return self.sim_page 140 174 141 def add_fit_page( self,data, page_info=None ):175 def add_fit_page( self,data, reset=False ): 142 176 """ 143 177 Add a fitting page on the notebook contained by fitpanel … … 149 183 except: 150 184 name = 'Fit' 151 if page_info==None: 152 from pageInfo import PageInfo 153 myinfo = PageInfo( self, data=data ) 185 if not name in self.list_fitpage_name: 186 myinfo = PageInfo( data=data, name=name ) 154 187 myinfo.model_list_box = self.model_list_box.get_list() 155 188 myinfo.event_owner = self.event_owner 156 189 myinfo.manager = self.manager 157 else:158 myinfo = page_info159 160 if not name in self.fit_page_name :190 myinfo.window_name = "Fit Page" 191 myinfo.window_caption = "Fit Page" 192 193 #if not name in self.fit_page_name : 161 194 from fitpage import FitPage 162 panel = FitPage(parent= self, page_info=myinfo, name=name ) 163 panel.name = name 164 panel.window_name= "fitpage" 195 panel = FitPage(parent= self, page_info=myinfo) 165 196 self.AddPage(page=panel,caption=name,select=True) 166 self.fit_page_name.append(name) 167 197 self.list_fitpage_name.append(name) 198 if reset: 199 if name in self.fit_page_name.keys(): 200 memento= self.fit_page_name[name][0] 201 panel.reset_page(memento) 202 else: 203 self.fit_page_name[name]=[] 204 self.fit_page_name[name].insert(0,panel.createMemento()) 205 168 206 return panel 169 207 else: … … 195 233 npts=npts, page_info=page_info) 196 234 235 def _onGetstate(self, event): 236 """ 237 copy the state of a page 238 """ 239 page= event.page 240 if page.name in self.fit_page_name: 241 self.fit_page_name[page.name].insert(0,page.createMemento()) 242 197 243 198 244 def _help_add_model_page(self,model,page_title, qmin=0, … … 218 264 ## creating object that contaning info about model 219 265 if page_info==None: 220 from pageInfo import PageInfo221 myinfo = PageInfo( self, model=model)266 267 myinfo = PageInfo(model=model ,name=page_title) 222 268 myinfo.model_list_box = self.model_list_box.get_list() 223 269 myinfo.event_owner = self.event_owner 224 270 myinfo.manager = self.manager 271 myinfo.window_name = "Model Page" 272 myinfo.window_caption = "Model Page" 225 273 else: 226 274 myinfo = page_info 227 275 228 276 from modelpage import ModelPage 229 panel = ModelPage(self,myinfo ,page_title)277 panel = ModelPage(self,myinfo) 230 278 231 279 self.AddPage(page=panel,caption="Model",select=True) 232 280 233 panel.name = page_title234 281 self.draw_model_name=page_title 235 282 self.model_page_number=self.GetSelection()
Note: See TracChangeset
for help on using the changeset viewer.