| Home | Trees | Indices | Help |
|
|---|
|
|
1 import os
2 import sys
3 import wx
4 import traceback
5
6 from reflData import ReflMetaData
7 from park.parkAui.common.auiPanel import AuiPanel
8 from park.parkAui.common.parkEvent import wxEVT_PARK_DATASET, EVT_PARK_DATASET,\
9 ParkDatasetEvent
10
11 # slide scaler
12 SCALER_MIN = 0
13 SCALER_MAX = 10000
14 REVERT_SCALER = 1.0/(SCALER_MAX-SCALER_MIN)
15
16 # slide scaler
17 SCALER_MIN_DEFAULT = 1.0e-7
18 SCALER_MAX_DEFAULT = 1000.0
19 SCALER_DEFAULT = 1
20
21 REFL_META_NAMES = ('wavelength', 'wavelengthDiv', 'background', 'angularDiv')
22 REFL_META_LABELS = {
23 'wavelength':'WaveLength:', 'wavelengthDiv':'Wavelength Divergence:',
24 'background':'Background:', 'angularDiv':'Angular Divergence:',
25 }
26 REFL_META_NAME_COL = 2
27 REFL_META_NAME_ROW = 4
28 REFL_META_RANGE_COL = 2
29
30
31 _wxSTYLE = wx.SHRINK | wx.GROW | wx.EXPAND | wx.ALL | wx.ALIGN_CENTER
32
34
35 - def __init__(self,
36 parent,
37 id=-1,
38 pos=wx.DefaultPosition,
39 size=(450, 60),
40 style=wx.TAB_TRAVERSAL
41 ):
42 super(ReflDatasetMetaPanel, self).__init__(parent, id=id, pos=pos,
43 size=size, style=style)
44
45 mainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0)
46 miscSizer = wx.FlexGridSizer(cols=REFL_META_NAME_COL*2, hgap=0,
47 rows=REFL_META_NAME_ROW, vgap=0)
48 mainSizer.AddSizer(miscSizer, 2, border=2, flag=_wxSTYLE)
49
50 mainSizer.AddGrowableCol(0)
51 mainSizer.AddGrowableCol(1)
52
53
54 miscLabels = [wx.StaticText(parent=self,name='%stxt' %(name), style=0)
55 for name in REFL_META_NAMES ]
56 self.miscNumbers = [ wx.TextCtrl(parent=self, name=name)
57 for name in REFL_META_NAMES ]
58
59 for i in xrange(len(REFL_META_NAMES)):
60 label = REFL_META_NAMES[i]
61 if label in REFL_META_LABELS:
62 miscLabels[i].SetLabel(REFL_META_LABELS[label])
63 else:
64 miscLabels[i].SetLabel('%s:' %(label.capitalize()))
65
66 self.miscNumbers[i].Bind(wx.EVT_KILL_FOCUS, self.OnUpdateFloatData)
67
68 miscSizer.Add(miscLabels[i], 0, border=2, flag=_wxSTYLE)
69 miscSizer.Add(self.miscNumbers[i], 1, border=2, flag=_wxSTYLE)
70
71
72 miscSizer.AddGrowableCol(1)
73 miscSizer.AddGrowableCol(3)
74
75 self.SetSizer(mainSizer)
76 self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
77 self.SetMinSize(size)
78 self.SetMaxSize(size)
79 self.dataset = None
80 self.dataind = 0
81 self.inst = None
82
83 self.SetInstData2Viewer()
84
85
87 #enable = not( (self.dataset is None) or (self.dataind < 0))
88 enable = True
89 for ind in xrange(len(REFL_META_NAMES)):
90 self.miscNumbers[ind].Enable(enable)
91
92
94 #print "CALL SetDataset", dataset
95 self.dataset = dataset
96 self.dataind = ind
97
98 self.SetInstData2Viewer()
99
100
102 try:
103 inst = self.dataset.getOneXmlData(self.dataind
104 ).getXmlInstrumentData()
105 except:
106 inst = None
107
108 return inst
109
110
112 """ Update the viewer."""
113
114 self.Enable()
115 try: ## set the default value.
116 inst = self.dataset.getOneXmlData(self.dataind).getXmlInstrumentData()
117 except:
118 inst = ReflMetaData()
119
120 for ind in xrange(len(REFL_META_NAMES)):
121 label = REFL_META_NAMES[ind]
122 self.miscNumbers[ind].SetValue(str(getattr(inst, label)))
123
125 inst = self.GetInstData()
126 if inst is None:
127 return
128
129 fireEvent = False
130
131 for ind in xrange(len(REFL_META_NAMES)):
132 label = REFL_META_NAMES[ind]
133 try:
134 val = float(self.miscNumbers[ind].GetValue())
135 if val != getattr(inst, label):
136 setattr(inst, label, val)
137 fireEvent = True
138 except:
139 val = str(getattr(inst, label))
140 self.miscNumbers[ind].SetValue(val)
141
142 #if fireEvent:
143 # self._fireEvent()
144
145
154
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Tue Mar 17 14:22:38 2009 | http://epydoc.sourceforge.net |