Changeset 940aca7 in sasview for sansguiframe/src/sans/guiframe/local_perspectives/plotting
- Timestamp:
- May 19, 2012 12:17:02 PM (13 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:
- baa915c
- Parents:
- d225e32
- Location:
- sansguiframe/src/sans/guiframe/local_perspectives/plotting
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
sansguiframe/src/sans/guiframe/local_perspectives/plotting/AnnulusSlicer.py
r13382fc7 r940aca7 167 167 168 168 new_plot.group_id = "AnnulusPhi" + self.base.data2D.name 169 new_plot.id = None170 #new_plot.is_data= True169 new_plot.id = "AnnulusPhi" + self.base.data2D.name 170 new_plot.is_data= True 171 171 new_plot.xtransform = "x" 172 172 new_plot.ytransform = "y" -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter1D.py
r78919f45 r940aca7 41 41 DEFAULT_BEAM = 0.005 42 42 BIN_WIDTH = 1 43 43 IS_MAC = (sys.platform == 'darwin') 44 44 45 45 class ModelPanel1D(PlotPanel, PanelBase): … … 174 174 # It was found that wx >= 2.9.3 sends an event even if no size changed. 175 175 # So manually recode the size (=x_size) and compare here. 176 # Massy code to work around:< 177 if self.parent._mgr != None: 178 max_panel = self.parent._mgr.GetPane(self) 179 if max_panel.IsMaximized(): 180 self.parent._mgr.RestorePane(max_panel) 181 max_panel.Maximize() 176 182 if self.x_size != None: 177 183 if self.x_size == self.GetSize(): … … 286 292 try: 287 293 self._onEVT_FUNC_PROPERTY() 294 if IS_MAC: 295 # MAC: forcing to plot 2D avg 296 self.canvas._onDrawIdle() 288 297 except: 289 298 msg=" Encountered singular points..." … … 409 418 if plot != self.plots[self.graph.selected_plottable]: 410 419 continue 420 421 id = wx.NewId() 422 plot_menu.Append(id, "&DataInfo", name) 423 wx.EVT_MENU(self, id, self. _onDataShow) 424 id = wx.NewId() 425 plot_menu.Append(id, "&Save Points as a File", name) 426 wx.EVT_MENU(self, id, self._onSave) 427 plot_menu.AppendSeparator() 428 411 429 #add menu of other plugins 412 item_list = self.parent.get_c ontext_menu(self)430 item_list = self.parent.get_current_context_menu(self) 413 431 414 432 if (not item_list == None) and (not len(item_list) == 0): … … 425 443 pass 426 444 plot_menu.AppendSeparator() 427 428 id = wx.NewId() 429 plot_menu.Append(id, "&DataInfo", name) 430 wx.EVT_MENU(self, id, self. _onDataShow) 431 id = wx.NewId() 432 plot_menu.Append(id, "&Save Points as a File", name) 433 wx.EVT_MENU(self, id, self._onSave) 434 plot_menu.AppendSeparator() 445 435 446 if self.parent.ClassName.count('wxDialog') == 0: 436 447 id = wx.NewId() -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/Plotter2D.py
r2778c4f r940aca7 321 321 if len(self.data2D.detector) == 1: 322 322 323 item_list = self.parent.get_c ontext_menu(self)323 item_list = self.parent.get_current_context_menu(self) 324 324 if (not item_list == None) and (not len(item_list) == 0) and\ 325 325 self.data2D.name.split(" ")[0] != 'Residuals': … … 631 631 new_plot.yaxis("\\rm{Intensity} ", "cm^{-1}") 632 632 633 new_plot.group_id = " Circ avg "+ self.data2D.name633 new_plot.group_id = "2daverage" + self.data2D.name 634 634 new_plot.id = "Circ avg " + self.data2D.name 635 635 new_plot.is_data = True -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/SectorSlicer.py
r789ffc6 r940aca7 183 183 new_plot.yaxis("\\rm{Residuals} ", "/") 184 184 185 new_plot.group_id = " SectorQ" + self.base.data2D.name186 new_plot.id = None185 new_plot.group_id = "2daverage" + self.base.data2D.name 186 new_plot.id = "SectorQ" + self.base.data2D.name 187 187 new_plot.is_data = True 188 188 self.base.parent.update_theory(data_id=data, \ -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/SlicerParameters.py
r8c347a6 r940aca7 87 87 ctl.SetValue(format_number(str(params[item]))) 88 88 self.Bind(wx.EVT_TEXT_ENTER, self.onTextEnter) 89 ctl.Bind(wx.EVT_KILL_FOCUS, self.onTextEnter)90 89 self.parameters.append([item, ctl]) 91 90 self.bck.Add(ctl, (iy, ix), (1, 1), -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/boxSlicer.py
r13382fc7 r940aca7 198 198 new_plot.yaxis("\\rm{Residuals} ", "/") 199 199 200 new_plot.group_id = str(self.averager.__name__)+ self.base.data2D.name201 #new_plot.id = str(self.averager.__name__)202 #new_plot.is_data= True200 new_plot.group_id = "2daverage" + self.base.data2D.name 201 new_plot.id = (self.averager.__name__) + self.base.data2D.name 202 new_plot.is_data= True 203 203 self.base.parent.update_theory(data_id=self.base.data2D.id, \ 204 204 theory=new_plot) -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/plotting.py
r48832ac r940aca7 276 276 277 277 """ 278 action_check = False 278 279 if hasattr(event, 'action'): 279 group_id = event.group_id 280 if group_id in self.plot_panels.keys(): 281 #remove data from panel 282 if event.action.lower().strip() == 'remove': 283 id = event.id 284 return self.remove_plot(group_id, id) 285 if event.action.lower().strip() == 'hide': 286 return self.hide_panel(group_id) 287 if event.action.lower().strip() == 'delete': 288 panel = self.plot_panels[group_id] 289 uid = panel.uid 290 return self.parent.delete_panel(uid) 291 if event.action.lower().strip() == "clear": 292 return self.clear_panel_by_id(group_id) 280 action_string = event.action.lower().strip() 281 if action_string == 'check': 282 action_check = True 283 else: 284 group_id = event.group_id 285 if group_id in self.plot_panels.keys(): 286 #remove data from panel 287 if action_string == 'remove': 288 id = event.id 289 return self.remove_plot(group_id, id) 290 if action_string == 'hide': 291 return self.hide_panel(group_id) 292 if action_string == 'delete': 293 panel = self.plot_panels[group_id] 294 uid = panel.uid 295 return self.parent.delete_panel(uid) 296 if action_string == "clear": 297 return self.clear_panel_by_id(group_id) 298 293 299 if not hasattr(event, 'plot'): 294 300 return 295 301 title = None 296 302 if hasattr(event, 'title'): 297 title = 'Graph'#event.title 298 303 title = 'Graph'#event.title 299 304 data = event.plot 300 group_id = data.group_id 301 302 if group_id in self.plot_panels.keys(): 305 group_id = data.group_id 306 if group_id in self.plot_panels.keys(): 307 if action_check: 308 # Check if the plot already exist. if it does, do nothing. 309 if data.id in self.plot_panels[group_id].plots.keys(): 310 return 303 311 #update a panel graph 304 312 panel = self.plot_panels[group_id] … … 309 317 new_panel = self.create_1d_panel(data, group_id) 310 318 else: 319 # Need to make the group_id consistent with 1D thus no if below 320 if len(self.plot_panels.values()) > 0: 321 for p_group_id in self.plot_panels.keys(): 322 p_plot = self.plot_panels[p_group_id] 323 if data.id in p_plot.plots.keys(): 324 p_plot.plots[data.id] = data 325 self.plot_panels[group_id] = p_plot 326 if group_id != p_group_id: 327 del self.plot_panels[p_group_id] 328 if p_group_id in data.list_group_id: 329 data.list_group_id.remove(p_group_id) 330 if group_id not in data.list_group_id: 331 data.list_group_id.append(group_id) 332 p_plot.group_id = group_id 333 return 334 311 335 new_panel = self.create_2d_panel(data, group_id) 312 self.create_panel_helper(new_panel, data, group_id, title) 313 336 self.create_panel_helper(new_panel, data, group_id, title) 314 337 return 315 338 -
sansguiframe/src/sans/guiframe/local_perspectives/plotting/profile_dialog.py
r2d443fd r940aca7 53 53 self.SetTitle("Scattering Length Density Profile") 54 54 self.parent = parent 55 self._mgr = None 55 56 self.data = data 56 57 self.str = self.data.__str__() … … 75 76 self.newplot.dy = None 76 77 self.newplot.name = 'SLD' 78 self.newplot.id = self.newplot.name 77 79 self.plotpanel.add_image(self.newplot) 78 80 self.plotpanel.subplot.set_ylim(min(data_plot.y) - _Y_OFF , … … 81 83 max(data_plot.x) + _X_OFF) 82 84 #self.Centre() 85 self.plotpanel.resizing = False 86 self.plotpanel.canvas.set_resizing(self.plotpanel.resizing) 87 self.plotpanel.subplot.figure.canvas.draw_idle() 83 88 self.Layout() 84 89 … … 175 180 self.parent.parent.parent.on_change_caption(name, old_caption, new_caption) 176 181 182 def disable_app_menu(self, panel): 183 """ 184 Disable menu bar 185 """ 186 # Not implemented! 187 return 177 188 178 189 class SLDplotpanel(PlotPanel): … … 203 214 self.yaxis_label = '' 204 215 self.yaxis_unit = '' 216 self.resizing = True 205 217 206 218 def add_image(self, plot): … … 208 220 Add image(Theory1D) 209 221 """ 210 self.plots[plot.name] = plot 211 self.plots[plot.name].is_data = False 212 #init graph 213 #self.gaph = Graph() 222 self.plots[plot.id] = plot 223 self.plots[plot.id].is_data = True 214 224 #add plot 215 225 self.graph.add(plot) … … 222 232 self.yaxis_unit = '10^{-6}A^{-2}' 223 233 self.graph.yaxis(self.yaxis_label, self.yaxis_unit) 234 #self.subplot.figure.canvas.draw_idle() 235 # For latter scale changes 236 self.plots[plot.id].xaxis('\\rm{%s} '% x1_label, 'A') 237 self.plots[plot.id].yaxis('\\rm{SLD} ', '10^{-6}A^{-2}') 224 238 #draw 225 239 self.graph.render(self) 226 self.subplot.figure.canvas.draw_idle()227 228 # For latter scale changes229 self.plots[plot.name].xaxis('\\rm{%s} '% x1_label, 'A')230 self.plots[plot.name].yaxis('\\rm{SLD} ', '10^{-6}A^{-2}')231 240 232 241 def on_set_focus(self, event): … … 257 266 """ 258 267 pass 259 268 260 269 def _onSave(self, evt): 261 270 """ … … 265 274 266 275 """ 267 268 path = None 269 wildcard = "Text files (*.txt)|*.txt|"\ 270 "CanSAS 1D files(*.xml)|*.xml" 271 default_name = "sld_profile" 276 menu = evt.GetEventObject() 277 id = evt.GetId() 278 self.set_selected_from_menu(menu, id) 279 data = self.plots[self.graph.selected_plottable] 280 default_name = data.label 281 if default_name.count('.') > 0: 282 default_name = default_name.split('.')[0] 283 default_name += "_out" 272 284 if self.parent != None: 273 self._default_save_location = self.parent.parent._default_save_location 274 dlg = wx.FileDialog(self, "Choose a file", 275 self._default_save_location, 276 default_name, wildcard , wx.SAVE) 277 278 if dlg.ShowModal() == wx.ID_OK: 279 path = dlg.GetPath() 280 # ext_num = 0 for .txt, ext_num = 1 for .xml 281 # This is MAC Fix 282 ext_num = dlg.GetFilterIndex() 283 if ext_num == 0: 284 format = '.txt' 285 else: 286 format = '.xml' 287 path = os.path.splitext(path)[0] + format 288 mypath = os.path.basename(path) 289 290 #TODO: This is bad design. The DataLoader is designed 291 #to recognize extensions. 292 # It should be a simple matter of calling the . 293 #save(file, data, '.xml') method 294 # of the sans.dataloader.loader.Loader class. 295 from sans.dataloader.loader import Loader 296 #Instantiate a loader 297 loader = Loader() 298 data = self.parent.data 299 format = ".txt" 300 if os.path.splitext(mypath)[1].lower() == format: 301 # Make sure the ext included in the file name 302 # especially on MAC 303 fName = os.path.splitext(path)[0] + format 304 self._onsaveTXT(fName) 305 format = ".xml" 306 if os.path.splitext(mypath)[1].lower() == format: 307 # Make sure the ext included in the file name 308 # especially on MAC 309 fName = os.path.splitext(path)[0] + format 310 loader.save(fName, data, format) 311 try: 312 self._default_save_location = os.path.dirname(path) 313 self.parent.parent._default_save_location = self._default_save_location 314 except: 315 pass 316 dlg.Destroy() 317 285 # What an ancestor! 286 fit_panel = self.parent.parent.parent 287 fit_panel.parent.save_data1d(data, default_name) 288 318 289 class ViewerFrame(wx.Frame): 319 290 """
Note: See TracChangeset
for help on using the changeset viewer.