Package reflectometry :: Package model1d :: Package adaptor :: Module matDatasetPanel

Source Code for Module reflectometry.model1d.adaptor.matDatasetPanel

  1  import wx 
  2  import traceback 
  3   
  4  from park.parkAui.common.parkEvent import wxEVT_PARK_DATASET, ParkDatasetEvent 
  5  from park.parkAui.common.fittingDatasetPanel import FittingDatasetPanel 
  6  from reflectometry.model1d.model.dataLoader import FixedResolution 
  7  from reflDataset import ReflDataset 
  8   
  9  # Use matplotlib plotter 
 10  from matDatasetEditor      import MatDatasetEditor as ReflDatasetEditor 
 11  from matDatasetViewerPanel import MatDatasetViewerPanel as \ 
 12                                    ReflDatasetViewerPanel 
 13  X_LABEL = ' Q value' 
 14  Y_LABEL = ' Reflectivity' 
 15  TITLE   = ' reflectometry Fitting' 
 16   
 17   
18 -class MatDatasetPanel(FittingDatasetPanel):
19 """ The panel to show fitting data and theoretical results. """ 20
21 - def _bind_ctrls(self):
22 super(MatDatasetPanel, self)._bind_ctrls() 23 self.viewer._canvas.Bind(wx.EVT_LEFT_DCLICK, 24 self.OnDatasetLeftDClick)
25
26 - def __init__(self, 27 parent, 28 id=-1, 29 pos =wx.DefaultPosition, 30 size =(200, 400), #wx.DefaultSize, 31 style=wx.TAB_TRAVERSAL, 32 name ='fitting data source' 33 ):
34 super(MatDatasetPanel, self).__init__(parent=parent, id=id, pos=pos, 35 size=size,style=style,name=name)
36 37
38 - def _updateResolution(self, Q, meta):
39 L = meta.wavelength 40 dL = meta.wavelengthDiv 41 dT = meta.angularDiv 42 43 _res = FixedResolution(dL, dT) 44 45 return _res.calc_dQ( L, Q )
46 47
48 - def UpdateXmlReductionData(self, dataset):
49 50 try: 51 exp0=dataset.getXmlData()[0].getXmlReductionData().getXmlDataArray() 52 meta=dataset.getXmlData()[0].getXmlMetaData() 53 except: 54 return 55 #print "CALLLL" 56 for i in xrange( len(exp0)/4 ): 57 _Q = exp0[0+i*4].getData() 58 exp0[1+i*4].setData( self._updateResolution( _Q, meta ) )
59 60 61 62
63 - def _getDatasetViewer(self):
64 viewer = ReflDatasetViewerPanel(self) 65 viewer.SetXLabel(X_LABEL) 66 viewer.SetYLabel(Y_LABEL) 67 viewer.SetTitle(TITLE) 68 #viewer.SetLogScale(True) 69 return viewer
70 71
72 - def _getDatasetEditor(self):
73 return ReflDatasetEditor(None)
74 75
76 - def _getDataset(self):
77 return ReflDataset()
78 79
80 - def OnDatasetLeftDClick(self, event):
81 try: 82 if event.ControlDown(): 83 self.OnEditDataset(event) 84 else: 85 mgr = self.GetParent().GetOwnerManager() 86 87 mgr.LoadPerspective(self.GetPerspective()) 88 all_panes = mgr.GetAllPanes() 89 for pane in xrange(len(all_panes)): 90 all_panes[pane].Show() 91 mgr.Update() 92 event.Skip() 93 except: 94 self.ShowErrorMsg(traceback.format_exc(), 'Dataset Exception')
95 96
97 - def RefreshViewer(self):
98 """ Update viewer.""" 99 self.RefreshViewer4Dataset()
100
101 - def RefreshViewer4Dataset(self):
102 """ Update the dataset viewer due to theory curve is changed. """ 103 self.viewer.RefreshModel(self.GetModel())
104