Changeset b06ef8c in sasview for guiframe/local_perspectives/plotting/DataPanel.py
- Timestamp:
- Dec 1, 2008 5:09:36 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:
- a92d51b
- Parents:
- 7a7bf55
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guiframe/local_perspectives/plotting/DataPanel.py
rce64735 rb06ef8c 17 17 from sans.guicomm.events import EVT_NEW_PLOT 18 18 from sans.guicomm.events import StatusEvent ,NewPlotEvent 19 20 from binder import BindArtist 21 #from SlicerParameters import SlicerEvent 22 #(InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 23 DEFAULT_QMAX = 0.05 24 25 DEFAULT_QSTEP = 0.001 26 DEFAULT_BEAM = 0.005 27 28 import pylab 19 29 20 30 class PanelMenu(wx.Menu): … … 344 354 ## Plottables 345 355 self.plots = {} 346 self.data = data2d 356 self.data2D= data2d 357 self.data = data2d.data 347 358 ## Unique ID (from gui_manager) 348 359 self.uid = None … … 350 361 ## Action IDs for internal call-backs 351 362 self.action_ids = {} 352 363 self.connect = BindArtist(self.subplot.figure) 364 365 # Beam stop 366 self.beamstop_radius = DEFAULT_BEAM 367 # Slicer 368 369 self.qmax = data2d.xmax 370 self.imax= data2d.ymax 371 self.qstep = DEFAULT_QSTEP 372 self.x = pylab.arange(-self.qmax, self.qmax+self.qstep*0.01, self.qstep) 373 self.y = pylab.arange(-self.imax, self.imax+self.qstep*0.01, self.qstep) 374 375 self.slicer_z = 5 376 self.slicer = None 377 #self.parent.Bind(EVT_INTERNAL, self._onEVT_INTERNAL) 378 self.axes_frozen = False 353 379 ## Graph 354 380 self.graph = Graph() … … 427 453 428 454 id = wx.NewId() 455 slicerpop.Append(id, '&Sector') 456 wx.EVT_MENU(self, id, self.onSector) 457 458 459 460 id = wx.NewId() 461 slicerpop.Append(id, '&Clear slicer') 462 wx.EVT_MENU(self, id, self.onClearSlicer) 463 464 id = wx.NewId() 465 slicerpop.Append(id, '&Edit Parameters') 466 wx.EVT_MENU(self, id, self._onEditDetector) 467 468 slicerpop.AppendSeparator() 469 470 id = wx.NewId() 471 slicerpop.Append(id, '&Save image') 472 wx.EVT_MENU(self, id, self.onSaveImage) 473 474 id = wx.NewId() 429 475 slicerpop.Append(id, '&Toggle Linear/Log scale') 430 476 wx.EVT_MENU(self, id, self._onToggleScale) 431 477 432 478 pos = event.GetPosition() 433 479 pos = self.ScreenToClient(pos) 434 480 self.PopupMenu(slicerpop, pos) 435 481 482 def _setSlicer(self, slicer): 483 # Clear current slicer 484 #printEVT("Plotter2D._setSlicer %s" % slicer) 485 486 if not self.slicer == None: 487 self.slicer.clear() 488 489 self.slicer_z += 1 490 self.slicer = slicer(self, self.subplot, zorder=self.slicer_z) 491 self.subplot.set_ylim(-self.qmax, self.qmax) 492 self.subplot.set_xlim(-self.qmax, self.qmax) 493 self.update() 494 self.slicer.update() 495 496 497 def get_corrected_data(self): 498 # Protect against empty data set 499 if self.data == None: 500 return None 501 import copy 502 output = copy.deepcopy(self.data) 503 return output 504 def freeze_axes(self): 505 self.axes_frozen = True 506 507 def thaw_axes(self): 508 self.axes_frozen = False 509 510 def onMouseMotion(self,event): 511 pass 512 def onWheel(self, event): 513 pass 514 def update(self, draw=True): 515 """ 516 Respond to changes in the model by recalculating the 517 profiles and resetting the widgets. 518 """ 519 #self.slicer.update() 520 self.draw() 521 522 523 def onSector(self, event): 524 525 from SectorSlicer import SectorInteractor 526 527 self.slicer_z += 1 528 self.slicer = SectorInteractor(self, self.subplot, zorder=self.slicer_z) 529 self.subplot.set_ylim(-self.qmax, self.qmax) 530 self.subplot.set_xlim(-self.qmax, self.qmax) 531 self.update() 532 self.slicer.update() 533 534 535 def onClearSlicer(self, event): 536 print "on clear" 537 538 539 def _onEditDetector(self, event): 540 print "on parameter" 541 542 436 543 def _onToggleScale(self, event): 437 544 """ … … 524 631 525 632 526 def onSectorSlicer(self, event): 527 print "onLineSlicer" 528 import math 529 from DataLoader.manipulations import SectorPhi 530 for item in self.graph.plottables: 531 r= SectorPhi(005,.01, 0.0, math.pi/2.0) 532 print r(item) 533 data=r(item) 534 new_plot= Data1D(x=data.x,y=data.y,dy=data.dy ) 535 new_plot.name = "sector" 536 new_plot.group_id= "sector" 537 #wx.PostEvent(self.parent, NewPlotEvent(plot=r(item), title="Analytical model")) 538 wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, title="Analytical model")) 539 540 541 633 634
Note: See TracChangeset
for help on using the changeset viewer.