Changeset 2d107b8 in sasview for guiframe/local_perspectives/plotting/DataPanel.py
- Timestamp:
- Dec 11, 2008 6:04:28 PM (16 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:
- f39511b
- Parents:
- b2c3225
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
guiframe/local_perspectives/plotting/DataPanel.py
r768656e r2d107b8 18 18 from sans.guicomm.events import StatusEvent ,NewPlotEvent 19 19 20 21 from SlicerParameters import SlicerEvent 20 22 from binder import BindArtist 23 (InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 21 24 #from SlicerParameters import SlicerEvent 22 25 #(InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() … … 375 378 self.slicer_z = 5 376 379 self.slicer = None 377 #self.parent.Bind(EVT_INTERNAL, self._onEVT_INTERNAL)380 self.parent.Bind(EVT_INTERNAL, self._onEVT_INTERNAL) 378 381 self.axes_frozen = False 379 382 ## Graph … … 457 460 458 461 id = wx.NewId() 459 slicerpop.Append(id, '&Sector') 460 wx.EVT_MENU(self, id, self.onSector) 461 462 462 slicerpop.Append(id, '&Sector Q') 463 wx.EVT_MENU(self, id, self.onSectorQ) 464 465 id = wx.NewId() 466 slicerpop.Append(id, '&Sector Phi') 467 wx.EVT_MENU(self, id, self.onSectorPhi) 463 468 464 469 … … 524 529 #self.slicer.update() 525 530 self.draw() 531 532 533 def _getEmptySlicerEvent(self): 534 return SlicerEvent(type=None, 535 params=None, 536 obj_class=None) 537 def _onEVT_INTERNAL(self, event): 538 """ 539 I don't understand why Unbind followed by a Bind 540 using a modified self.slicer doesn't work. 541 For now, I post a clear event followed by 542 a new slicer event... 543 """ 544 self._setSlicer(event.slicer) 545 546 def _setSlicer(self, slicer): 547 # Clear current slicer 548 #printEVT("Plotter2D._setSlicer %s" % slicer) 549 550 if not self.slicer == None: 551 self.slicer.clear() 552 553 self.slicer_z += 1 554 self.slicer = slicer(self, self.subplot, zorder=self.slicer_z) 555 self.subplot.set_ylim(-self.qmax, self.qmax) 556 self.subplot.set_xlim(-self.qmax, self.qmax) 557 self.update() 558 self.slicer.update() 559 560 # Post slicer event 561 event = self._getEmptySlicerEvent() 562 event.type = self.slicer.__class__.__name__ 563 event.obj_class = self.slicer.__class__ 564 event.params = self.slicer.get_params() 565 wx.PostEvent(self.parent, event) 566 526 567 def onCircular(self, event): 527 568 """ 528 perform circular averaging 529 """ 569 perform circular averaging on Data2D 570 """ 571 530 572 from DataLoader.manipulations import CircularAverage 531 def onSector(self, event): 532 """ 533 Perform sector averaging 573 Circle = CircularAverage( r_min= -self.qmax, r_max= self.qmax, bin_width=0.001) 574 circ = Circle(self.data2D) 575 from sans.guiframe.dataFitting import Data1D 576 if hasattr(circ,"dxl"): 577 dxl= circ.dxl 578 else: 579 dxl= None 580 if hasattr(circ,"dxw"): 581 dxw= circ.dxw 582 else: 583 dxw= None 584 585 new_plot = Data1D(x=circ.x,y=circ.y,dy=circ.dy,dxl=dxl,dxw=dxw) 586 new_plot.name = "Circ avg "+ self.data2D.name 587 new_plot.source=self.data2D.source 588 new_plot.info=self.data2D.info 589 new_plot.interactive = True 590 #print "loader output.detector",output.source 591 new_plot.detector =self.data2D.detector 592 593 # If the data file does not tell us what the axes are, just assume... 594 new_plot.xaxis("\\rm{q}","A^{-1}") 595 new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 596 new_plot.group_id = "Circ avg "+ self.data2D.name 597 self.scale = 'log' 598 wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, title=new_plot.name)) 599 600 601 602 def onSectorQ(self, event): 603 """ 604 Perform sector averaging on Q 605 """ 606 from SectorSlicer import SectorInteractorQ 607 608 self.slicer_z += 1 609 self.slicer = SectorInteractorQ(self, self.subplot, zorder=self.slicer_z) 610 self.subplot.set_ylim(-self.qmax, self.qmax) 611 self.subplot.set_xlim(-self.qmax, self.qmax) 612 self.update() 613 self.slicer.update() 614 615 616 def onSectorPhi(self, event): 617 """ 618 Perform sector averaging on Phi 534 619 """ 535 620 from SectorSlicer import SectorInteractor … … 544 629 545 630 def onClearSlicer(self, event): 546 print "on clear" 547 631 """ 632 Clear the slicer on the plot 633 """ 634 if not self.slicer==None: 635 self.slicer.clear() 636 self.subplot.figure.canvas.draw() 637 self.slicer = None 638 639 # Post slicer None event 640 event = self._getEmptySlicerEvent() 641 wx.PostEvent(self.parent, event) 548 642 549 643 def _onEditDetector(self, event): … … 553 647 def _onToggleScale(self, event): 554 648 """ 555 toggle axisand replot image649 toggle pixel scale and replot image 556 650 """ 557 651 if self.scale == 'log': … … 562 656 self.ymax_2D,self.zmin_2D ,self.zmax_2D ) 563 657 wx.PostEvent(self.parent, StatusEvent(status="Image is in %s scale"%self.scale)) 658 659 660 661 662 564 663 565 664 class View1DModelPanel2D( View1DPanel2D):
Note: See TracChangeset
for help on using the changeset viewer.