Package reflectometry :: Package model1d :: Package adaptor :: Module reflDatasetPanel

Source Code for Module reflectometry.model1d.adaptor.reflDatasetPanel

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