1 """
2 A base panel to draw the profile
3 """
4
5 import wx
6 import wx.aui
7
8 import matplotlib
9 from matplotlib.figure import Figure
10 from matplotlib.axes import Subplot
11 from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
12 from matplotlib.backends.backend_wxagg import FigureManager
13 from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg
14
15 from auiPanel import AuiPanel
16
17
18
20
21 - def __init__( self,
22 parent,
23 size=wx.DefaultSize
24 ):
25 super(PlotReflBase, self).__init__(parent, id=-1, size=size )
26
27
28 self.parent = parent
29
30
31 self.fig = Figure( figsize = (1,1),
32 dpi = 75,
33 facecolor = 'white',
34 edgecolor = 'white',
35 )
36
37 self.canvas = FigureCanvas(self, -1, self.fig)
38 self.fig.set_canvas(self.canvas)
39 self.fig.add_axes( Subplot(self.fig, 111) )
40
41
42 self.axes = self.fig.get_axes()[0]
43
44
45 self.figmgr = FigureManager( self.canvas, 1, self )
46
47 self.sizer = wx.BoxSizer( wx.VERTICAL )
48 self.sizer.Add( self.canvas,1, border=2, flag= wx.LEFT|wx.TOP|wx.GROW)
49 self.SetSizer( self.sizer)
50 self.Fit()
51
52
53 self.canvas.Bind( wx.EVT_LEFT_DCLICK, self.OnLeftDClick )
54 self.canvas.Bind( wx.EVT_RIGHT_DOWN, self.OnPanelRightDown )
55
56
57 self.toolbar = NavigationToolbar2WxAgg( self.canvas )
58 self.toolbar.Show(False)
59
60
61 self.current_layer = None
62 self.modelName = None
63
64
67
70
73
74
96
97
99 """
100 Capture, act upon keystroke events
101 """
102 if evt == None:
103 return
104
105 key = evt.KeyCode
106 if (key < wx.WXK_SPACE or key > 255):
107 return
108
109 if (evt.ControlDown() and chr(key)=='B'):
110 self.OnCopyFigureMenu(evt)
111
112
114 """
115 Update current layer number
116 """
117 self.current_layer = n
118
119
125
126
128 """
129 FIXME, Do some meaningful things here.
130 print 'Left double click from canvas
131 """
132 pass
133
134
136 """
137 On touch the right mouse
138 """
139 pass
140
141
143 """
144 On Close this Frame
145 """
146 self.Destroy()
147 evt.Skip()
148
149
158
159
161 """
162 Return the plotting canvas which can be used to draw legends,
163 show the grid lines, etc.
164 """
165 return self.canvas
166
167
170
171
173 exe = "pm.%s"%(pv)
174 try:
175 return float( eval(exe) )
176 except:
177 return 0.0
178
179
181 """
182 Get model name
183 """
184 return self.modelName
185
186
188 """
189 Set model
190 """
191 pass
192