1 """
2 GUI driver for the polarization correction code polcor.
3 """
4
5 import sys
6 import wx,wx.aui
7 from selection import SelectionPanel, EVT_ITEM_SELECT, EVT_ITEM_VIEW
8 from polplot import Plotter, Plotter4
9
12 wx.Panel.__init__(self, *args, **kw)
13
14 self.data = {}
15 self.plotlist = []
16 if True:
17
18 splitter = wx.SplitterWindow(self)
19 splitter.SetSashGravity(0.3)
20 left = wx.SplitterWindow(splitter)
21 left.SetSashGravity(0.3)
22 right = wx.SplitterWindow(splitter)
23 right.SetSashGravity(0.0)
24
25 self.selector = SelectionPanel(left)
26 self.metadata = wx.TextCtrl(left,style=wx.TE_MULTILINE|wx.TE_AUTO_SCROLL)
27 self.plotter = Plotter4(right)
28 self.slice = Plotter(right)
29
30 splitter.SplitVertically(left,right,170)
31 left.SplitHorizontally(self.selector,self.metadata,-100)
32 right.SplitHorizontally(self.plotter,self.slice,-1)
33 container = splitter
34 else:
35
36 self.notebook = wx.aui.AuiNotebook(self)
37 self.selector = SelectionPanel(self.notebook)
38 self.plotter = Plotter4(self.notebook)
39 self.metadata = wx.TextCtrl(self,style=wx.TE_MULTILINE|wx.TE_RICH2)
40 self.slice = Plotter(self)
41 self.notebook.AddPage(self.selector, "Selection")
42 self.notebook.AddPage(self.plotter, "Reduction")
43 self.notebook.AddPage(self.metadata, "Metadata")
44 self.notebook.AddPage(self.slice, "Slice")
45
46 container = self.notebook
47
48 sizer = wx.BoxSizer()
49 sizer.Add(container, 1, wx.EXPAND)
50 self.SetSizer(sizer)
51
52 self.selector.Bind(EVT_ITEM_SELECT, self.onSelect)
53 self.selector.Bind(EVT_ITEM_VIEW, self.onView)
54
55 - def load(self, filename):
72
74 filename = event.data
75 data = self.load(filename)
76 if data is not None:
77
78
79
80
81
82
83
84 pt = self.metadata.GetInsertionPoint()
85 self.metadata.Replace(0,self.metadata.GetLastPosition(),data.summary())
86 self.metadata.SetInsertionPoint(pt)
87
88
89
90
91
92
93
94 self.metadata.ShowPosition(pt)
95
96
112
114
115 print "rendering"
116 mgr = self.notebook.GetAuiManager()
117 print "perspective",mgr.SavePerspective()
118
119
121 frame = wx.Frame(None, -1, 'Polarization Correction')
122 reduction = Reduction(frame)
123 frame.SetSize((600,400))
124 frame.Show()
125
126 if __name__ == "__main__":
127 app = wx.PySimpleApp(False)
128 demo()
129 app.MainLoop()
130