185 if highlight_type in col_highlights: |
187 if highlight_type in col_highlights: |
186 col_highlights.remove(highlight_type) |
188 col_highlights.remove(highlight_type) |
187 if len(col_highlights) == 0: |
189 if len(col_highlights) == 0: |
188 row_highlights.pop(col) |
190 row_highlights.pop(col) |
189 |
191 |
190 [ID_RESOURCEEDITOR, ID_RESOURCEEDITORPANEL, ID_RESOURCEEDITORSTATICTEXT1, |
192 |
191 ID_RESOURCEEDITORSTATICTEXT2, ID_RESOURCEEDITORINSTANCESGRID, |
|
192 ID_RESOURCEEDITORTASKSGRID, ID_RESOURCEEDITORADDINSTANCEBUTTON, |
|
193 ID_RESOURCEEDITORDELETEINSTANCEBUTTON, ID_RESOURCEEDITORUPINSTANCEBUTTON, |
|
194 ID_RESOURCEEDITORDOWNINSTANCEBUTTON, ID_RESOURCEEDITORADDTASKBUTTON, |
|
195 ID_RESOURCEEDITORDELETETASKBUTTON, ID_RESOURCEEDITORUPTASKBUTTON, |
|
196 ID_RESOURCEEDITORDOWNTASKBUTTON, |
|
197 ] = [wx.NewId() for _init_ctrls in range(14)] |
|
198 |
193 |
199 class ResourceEditor(EditorPanel): |
194 class ResourceEditor(EditorPanel): |
200 |
195 |
201 ID = ID_RESOURCEEDITOR |
|
202 VARIABLE_PANEL_TYPE = "resource" |
196 VARIABLE_PANEL_TYPE = "resource" |
203 |
197 |
204 def _init_coll_InstancesSizer_Growables(self, parent): |
198 def _init_Editor(self, parent): |
205 parent.AddGrowableCol(0) |
199 self.Editor = wx.Panel(parent, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL) |
206 parent.AddGrowableRow(1) |
200 |
207 |
201 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
208 def _init_coll_InstancesSizer_Items(self, parent): |
202 main_sizer.AddGrowableCol(0) |
209 parent.AddSizer(self.InstancesButtonsSizer, 0, border=0, flag=wx.GROW) |
203 main_sizer.AddGrowableRow(0) |
210 parent.AddWindow(self.InstancesGrid, 0, border=0, flag=wx.GROW) |
204 main_sizer.AddGrowableRow(1) |
211 |
205 |
212 def _init_coll_InstancesButtonsSizer_Growables(self, parent): |
206 tasks_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
213 parent.AddGrowableCol(0) |
207 tasks_sizer.AddGrowableCol(0) |
214 parent.AddGrowableRow(0) |
208 tasks_sizer.AddGrowableRow(1) |
215 |
209 main_sizer.AddSizer(tasks_sizer, border=5, |
216 def _init_coll_InstancesButtonsSizer_Items(self, parent): |
210 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
217 parent.AddWindow(self.staticText2, 0, border=0, flag=wx.ALIGN_BOTTOM) |
211 |
218 parent.AddWindow(self.AddInstanceButton, 0, border=0, flag=0) |
212 tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
219 parent.AddWindow(self.DeleteInstanceButton, 0, border=0, flag=0) |
213 tasks_buttons_sizer.AddGrowableCol(0) |
220 parent.AddWindow(self.UpInstanceButton, 0, border=0, flag=0) |
214 tasks_buttons_sizer.AddGrowableRow(0) |
221 parent.AddWindow(self.DownInstanceButton, 0, border=0, flag=0) |
215 tasks_sizer.AddSizer(tasks_buttons_sizer, flag=wx.GROW) |
222 |
216 |
223 def _init_coll_TasksSizer_Growables(self, parent): |
217 tasks_label = wx.StaticText(self.Editor, label=_(u'Tasks:')) |
224 parent.AddGrowableCol(0) |
218 tasks_buttons_sizer.AddWindow(tasks_label, flag=wx.ALIGN_BOTTOM) |
225 parent.AddGrowableRow(1) |
219 |
226 |
220 for name, bitmap, help in [ |
227 def _init_coll_TasksSizer_Items(self, parent): |
221 ("AddTaskButton", "add_element", _("Add task")), |
228 parent.AddSizer(self.TasksButtonsSizer, 0, border=0, flag=wx.GROW) |
222 ("DeleteTaskButton", "remove_element", _("Remove task")), |
229 parent.AddWindow(self.TasksGrid, 0, border=0, flag=wx.GROW) |
223 ("UpTaskButton", "up", _("Move task up")), |
230 |
224 ("DownTaskButton", "down", _("Move task down"))]: |
231 def _init_coll_TasksButtonsSizer_Growables(self, parent): |
225 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
232 parent.AddGrowableCol(0) |
226 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
233 parent.AddGrowableRow(0) |
227 button.SetToolTipString(help) |
234 |
228 setattr(self, name, button) |
235 def _init_coll_TasksButtonsSizer_Items(self, parent): |
229 tasks_buttons_sizer.AddWindow(button) |
236 parent.AddWindow(self.staticText1, 0, border=0, flag=wx.ALIGN_BOTTOM) |
230 |
237 parent.AddWindow(self.AddTaskButton, 0, border=0, flag=0) |
231 self.TasksGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
238 parent.AddWindow(self.DeleteTaskButton, 0, border=0, flag=0) |
232 self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange) |
239 parent.AddWindow(self.UpTaskButton, 0, border=0, flag=0) |
233 tasks_sizer.AddWindow(self.TasksGrid, flag=wx.GROW) |
240 parent.AddWindow(self.DownTaskButton, 0, border=0, flag=0) |
234 |
241 |
235 instances_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
242 def _init_coll_MainGridSizer_Items(self, parent): |
236 instances_sizer.AddGrowableCol(0) |
243 parent.AddSizer(self.TasksSizer, 0, border=5, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
237 instances_sizer.AddGrowableRow(1) |
244 parent.AddSizer(self.InstancesSizer, 0, border=5, flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
238 main_sizer.AddSizer(instances_sizer, border=5, |
245 |
239 flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
246 def _init_coll_MainGridSizer_Growables(self, parent): |
240 |
247 parent.AddGrowableCol(0) |
241 instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
248 parent.AddGrowableRow(0) |
242 instances_buttons_sizer.AddGrowableCol(0) |
249 parent.AddGrowableRow(1) |
243 instances_buttons_sizer.AddGrowableRow(0) |
250 |
244 instances_sizer.AddSizer(instances_buttons_sizer, flag=wx.GROW) |
251 def _init_sizers(self): |
245 |
252 self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
246 instances_label = wx.StaticText(self.Editor, label=_(u'Instances:')) |
253 self.InstancesSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
247 instances_buttons_sizer.AddWindow(instances_label, flag=wx.ALIGN_BOTTOM) |
254 self.InstancesButtonsSizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
248 |
255 self.TasksSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
249 for name, bitmap, help in [ |
256 self.TasksButtonsSizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
250 ("AddInstanceButton", "add_element", _("Add instance")), |
257 |
251 ("DeleteInstanceButton", "remove_element", _("Remove instance")), |
258 self._init_coll_MainGridSizer_Growables(self.MainGridSizer) |
252 ("UpInstanceButton", "up", _("Move instance up")), |
259 self._init_coll_MainGridSizer_Items(self.MainGridSizer) |
253 ("DownInstanceButton", "down", _("Move instance down"))]: |
260 self._init_coll_InstancesSizer_Growables(self.InstancesSizer) |
254 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
261 self._init_coll_InstancesSizer_Items(self.InstancesSizer) |
255 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
262 self._init_coll_InstancesButtonsSizer_Growables(self.InstancesButtonsSizer) |
256 button.SetToolTipString(help) |
263 self._init_coll_InstancesButtonsSizer_Items(self.InstancesButtonsSizer) |
257 setattr(self, name, button) |
264 self._init_coll_TasksSizer_Growables(self.TasksSizer) |
258 instances_buttons_sizer.AddWindow(button) |
265 self._init_coll_TasksSizer_Items(self.TasksSizer) |
259 |
266 self._init_coll_TasksButtonsSizer_Growables(self.TasksButtonsSizer) |
260 self.InstancesGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
267 self._init_coll_TasksButtonsSizer_Items(self.TasksButtonsSizer) |
261 self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, |
268 |
262 self.OnInstancesGridCellChange) |
269 self.Editor.SetSizer(self.MainGridSizer) |
263 instances_sizer.AddWindow(self.InstancesGrid, flag=wx.GROW) |
270 |
264 |
271 def _init_Editor(self, prnt): |
265 self.Editor.SetSizer(main_sizer) |
272 self.Editor = wx.Panel(id=ID_RESOURCEEDITORPANEL, name='ResourceEditor', parent=prnt, |
266 |
273 size=wx.Size(0, 0), style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL) |
|
274 |
|
275 self.staticText1 = wx.StaticText(id=ID_RESOURCEEDITORSTATICTEXT1, |
|
276 label=_(u'Tasks:'), name='staticText2', parent=self.Editor, pos=wx.Point(0, |
|
277 0), size=wx.DefaultSize, style=0) |
|
278 |
|
279 self.TasksGrid = CustomGrid(id=ID_RESOURCEEDITORTASKSGRID, |
|
280 name='TasksGrid', parent=self.Editor, pos=wx.Point(0, 0), |
|
281 size=wx.Size(-1, -1), style=wx.VSCROLL) |
|
282 if wx.VERSION >= (2, 6, 0): |
|
283 self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange) |
|
284 else: |
|
285 wx.grid.EVT_GRID_CELL_CHANGE(self.TasksGrid, self.OnTasksGridCellChange) |
|
286 |
|
287 self.AddTaskButton = wx.Button(id=ID_RESOURCEEDITORADDTASKBUTTON, label=_('Add Task'), |
|
288 name='AddTaskButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
289 size=wx.DefaultSize, style=0) |
|
290 |
|
291 self.DeleteTaskButton = wx.Button(id=ID_RESOURCEEDITORDELETETASKBUTTON, label=_('Delete Task'), |
|
292 name='DeleteTaskButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
293 size=wx.DefaultSize, style=0) |
|
294 |
|
295 self.UpTaskButton = wx.Button(id=ID_RESOURCEEDITORUPTASKBUTTON, label='^', |
|
296 name='UpTaskButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
297 size=wx.Size(32, -1), style=0) |
|
298 |
|
299 self.DownTaskButton = wx.Button(id=ID_RESOURCEEDITORDOWNTASKBUTTON, label='v', |
|
300 name='DownTaskButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
301 size=wx.Size(32, -1), style=0) |
|
302 |
|
303 self.staticText2 = wx.StaticText(id=ID_RESOURCEEDITORSTATICTEXT2, |
|
304 label=_(u'Instances:'), name='staticText1', parent=self.Editor, |
|
305 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
|
306 |
|
307 self.InstancesGrid = CustomGrid(id=ID_RESOURCEEDITORINSTANCESGRID, |
|
308 name='InstancesGrid', parent=self.Editor, pos=wx.Point(0, 0), |
|
309 size=wx.Size(-1, -1), style=wx.VSCROLL) |
|
310 if wx.VERSION >= (2, 6, 0): |
|
311 self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnInstancesGridCellChange) |
|
312 else: |
|
313 wx.grid.EVT_GRID_CELL_CHANGE(self.InstancesGrid, self.OnInstancesGridCellChange) |
|
314 |
|
315 self.AddInstanceButton = wx.Button(id=ID_RESOURCEEDITORADDINSTANCEBUTTON, label=_('Add Instance'), |
|
316 name='AddInstanceButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
317 size=wx.DefaultSize, style=0) |
|
318 |
|
319 self.DeleteInstanceButton = wx.Button(id=ID_RESOURCEEDITORDELETEINSTANCEBUTTON, label=_('Delete Instance'), |
|
320 name='DeleteInstanceButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
321 size=wx.DefaultSize, style=0) |
|
322 |
|
323 self.UpInstanceButton = wx.Button(id=ID_RESOURCEEDITORUPINSTANCEBUTTON, label='^', |
|
324 name='UpInstanceButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
325 size=wx.Size(32, -1), style=0) |
|
326 |
|
327 self.DownInstanceButton = wx.Button(id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON, label='v', |
|
328 name='DownInstanceButton', parent=self.Editor, pos=wx.Point(0, 0), |
|
329 size=wx.Size(32, -1), style=0) |
|
330 |
|
331 self._init_sizers() |
|
332 |
|
333 def __init__(self, parent, tagname, window, controler): |
267 def __init__(self, parent, tagname, window, controler): |
334 EditorPanel.__init__(self, parent, tagname, window, controler) |
268 EditorPanel.__init__(self, parent, tagname, window, controler) |
335 |
269 |
336 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
270 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
337 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
271 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |