75 def GetInstancesTableColnames(): |
75 def GetInstancesTableColnames(): |
76 _ = lambda x : x |
76 _ = lambda x : x |
77 return [_("Name"), _("Type"), _("Task")] |
77 return [_("Name"), _("Type"), _("Task")] |
78 |
78 |
79 class ResourceTable(CustomTable): |
79 class ResourceTable(CustomTable): |
80 |
80 |
81 """ |
81 """ |
82 A custom wx.grid.Grid Table using user supplied data |
82 A custom wx.grid.Grid Table using user supplied data |
83 """ |
83 """ |
84 def __init__(self, parent, data, colnames): |
84 def __init__(self, parent, data, colnames): |
85 # The base class must be initialized *first* |
85 # The base class must be initialized *first* |
86 CustomTable.__init__(self, parent, data, colnames) |
86 CustomTable.__init__(self, parent, data, colnames) |
87 self.ColAlignements = [] |
87 self.ColAlignements = [] |
88 self.ColSizes = [] |
88 self.ColSizes = [] |
89 |
89 |
90 def GetColAlignements(self): |
90 def GetColAlignements(self): |
91 return self.ColAlignements |
91 return self.ColAlignements |
92 |
92 |
93 def SetColAlignements(self, list): |
93 def SetColAlignements(self, list): |
94 self.ColAlignements = list |
94 self.ColAlignements = list |
95 |
95 |
96 def GetColSizes(self): |
96 def GetColSizes(self): |
97 return self.ColSizes |
97 return self.ColSizes |
98 |
98 |
99 def SetColSizes(self, list): |
99 def SetColSizes(self, list): |
100 self.ColSizes = list |
100 self.ColSizes = list |
101 |
101 |
102 def GetValue(self, row, col): |
102 def GetValue(self, row, col): |
103 if row < self.GetNumberRows(): |
103 if row < self.GetNumberRows(): |
104 colname = self.GetColLabelValue(col, False) |
104 colname = self.GetColLabelValue(col, False) |
105 value = str(self.data[row].get(colname, "")) |
105 value = str(self.data[row].get(colname, "")) |
106 if colname == "Triggering": |
106 if colname == "Triggering": |
107 return _(value) |
107 return _(value) |
108 return value |
108 return value |
109 |
109 |
110 def SetValue(self, row, col, value): |
110 def SetValue(self, row, col, value): |
111 if col < len(self.colnames): |
111 if col < len(self.colnames): |
112 colname = self.GetColLabelValue(col, False) |
112 colname = self.GetColLabelValue(col, False) |
113 if colname == "Triggering": |
113 if colname == "Triggering": |
114 value = TASKTRIGGERINGOPTIONS_DICT[value] |
114 value = TASKTRIGGERINGOPTIONS_DICT[value] |
115 self.data[row][colname] = value |
115 self.data[row][colname] = value |
116 |
116 |
|
117 SingleCellEditor = lambda x,c : wx.grid.GridCellChoiceEditor(x) |
|
118 |
117 def _updateColAttrs(self, grid): |
119 def _updateColAttrs(self, grid): |
118 """ |
120 """ |
119 wx.grid.Grid -> update the column attributes to add the |
121 wx.grid.Grid -> update the column attributes to add the |
120 appropriate renderer given the column name. |
122 appropriate renderer given the column name. |
121 |
123 |
122 Otherwise default to the default renderer. |
124 Otherwise default to the default renderer. |
123 """ |
125 """ |
124 |
126 |
125 for col in range(self.GetNumberCols()): |
127 for col in range(self.GetNumberCols()): |
126 attr = wx.grid.GridCellAttr() |
128 attr = wx.grid.GridCellAttr() |
127 attr.SetAlignment(self.ColAlignements[col], wx.ALIGN_CENTRE) |
129 attr.SetAlignment(self.ColAlignements[col], wx.ALIGN_CENTRE) |
128 grid.SetColAttr(col, attr) |
130 grid.SetColAttr(col, attr) |
129 grid.SetColSize(col, self.ColSizes[col]) |
131 grid.SetColSize(col, self.ColSizes[col]) |
130 |
132 |
131 for row in range(self.GetNumberRows()): |
133 for row in range(self.GetNumberRows()): |
132 row_highlights = self.Highlights.get(row, {}) |
134 row_highlights = self.Highlights.get(row, {}) |
133 for col in range(self.GetNumberCols()): |
135 for col in range(self.GetNumberCols()): |
134 editor = None |
136 editor = None |
135 renderer = None |
137 renderer = None |
199 row_highlights.pop(col) |
201 row_highlights.pop(col) |
200 |
202 |
201 |
203 |
202 |
204 |
203 class ResourceEditor(EditorPanel): |
205 class ResourceEditor(EditorPanel): |
204 |
206 |
205 VARIABLE_PANEL_TYPE = "resource" |
207 VARIABLE_PANEL_TYPE = "resource" |
206 |
208 |
207 def _init_Editor(self, parent): |
209 def _init_Editor(self, parent): |
208 self.Editor = wx.Panel(parent, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL) |
210 self.Editor = wx.Panel(parent, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL) |
209 |
211 |
210 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
212 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
211 main_sizer.AddGrowableCol(0) |
213 main_sizer.AddGrowableCol(0) |
212 main_sizer.AddGrowableRow(0) |
214 main_sizer.AddGrowableRow(0) |
213 main_sizer.AddGrowableRow(1) |
215 main_sizer.AddGrowableRow(1) |
214 |
216 |
215 tasks_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
217 tasks_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
216 tasks_sizer.AddGrowableCol(0) |
218 tasks_sizer.AddGrowableCol(0) |
217 tasks_sizer.AddGrowableRow(1) |
219 tasks_sizer.AddGrowableRow(1) |
218 main_sizer.AddSizer(tasks_sizer, border=5, |
220 main_sizer.AddSizer(tasks_sizer, border=5, |
219 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
221 flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT) |
220 |
222 |
221 tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
223 tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
222 tasks_buttons_sizer.AddGrowableCol(0) |
224 tasks_buttons_sizer.AddGrowableCol(0) |
223 tasks_buttons_sizer.AddGrowableRow(0) |
225 tasks_buttons_sizer.AddGrowableRow(0) |
224 tasks_sizer.AddSizer(tasks_buttons_sizer, flag=wx.GROW) |
226 tasks_sizer.AddSizer(tasks_buttons_sizer, flag=wx.GROW) |
225 |
227 |
226 tasks_label = wx.StaticText(self.Editor, label=_(u'Tasks:')) |
228 tasks_label = wx.StaticText(self.Editor, label=_(u'Tasks:')) |
227 tasks_buttons_sizer.AddWindow(tasks_label, flag=wx.ALIGN_BOTTOM) |
229 tasks_buttons_sizer.AddWindow(tasks_label, flag=wx.ALIGN_BOTTOM) |
228 |
230 |
229 for name, bitmap, help in [ |
231 for name, bitmap, help in [ |
230 ("AddTaskButton", "add_element", _("Add task")), |
232 ("AddTaskButton", "add_element", _("Add task")), |
231 ("DeleteTaskButton", "remove_element", _("Remove task")), |
233 ("DeleteTaskButton", "remove_element", _("Remove task")), |
232 ("UpTaskButton", "up", _("Move task up")), |
234 ("UpTaskButton", "up", _("Move task up")), |
233 ("DownTaskButton", "down", _("Move task down"))]: |
235 ("DownTaskButton", "down", _("Move task down"))]: |
234 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
236 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
235 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
237 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
236 button.SetToolTipString(help) |
238 button.SetToolTipString(help) |
237 setattr(self, name, button) |
239 setattr(self, name, button) |
238 tasks_buttons_sizer.AddWindow(button) |
240 tasks_buttons_sizer.AddWindow(button) |
239 |
241 |
240 self.TasksGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
242 self.TasksGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
241 self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange) |
243 self.TasksGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnTasksGridCellChange) |
242 tasks_sizer.AddWindow(self.TasksGrid, flag=wx.GROW) |
244 tasks_sizer.AddWindow(self.TasksGrid, flag=wx.GROW) |
243 |
245 |
244 instances_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
246 instances_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
245 instances_sizer.AddGrowableCol(0) |
247 instances_sizer.AddGrowableCol(0) |
246 instances_sizer.AddGrowableRow(1) |
248 instances_sizer.AddGrowableRow(1) |
247 main_sizer.AddSizer(instances_sizer, border=5, |
249 main_sizer.AddSizer(instances_sizer, border=5, |
248 flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
250 flag=wx.GROW|wx.BOTTOM|wx.LEFT|wx.RIGHT) |
249 |
251 |
250 instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
252 instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
251 instances_buttons_sizer.AddGrowableCol(0) |
253 instances_buttons_sizer.AddGrowableCol(0) |
252 instances_buttons_sizer.AddGrowableRow(0) |
254 instances_buttons_sizer.AddGrowableRow(0) |
253 instances_sizer.AddSizer(instances_buttons_sizer, flag=wx.GROW) |
255 instances_sizer.AddSizer(instances_buttons_sizer, flag=wx.GROW) |
254 |
256 |
255 instances_label = wx.StaticText(self.Editor, label=_(u'Instances:')) |
257 instances_label = wx.StaticText(self.Editor, label=_(u'Instances:')) |
256 instances_buttons_sizer.AddWindow(instances_label, flag=wx.ALIGN_BOTTOM) |
258 instances_buttons_sizer.AddWindow(instances_label, flag=wx.ALIGN_BOTTOM) |
257 |
259 |
258 for name, bitmap, help in [ |
260 for name, bitmap, help in [ |
259 ("AddInstanceButton", "add_element", _("Add instance")), |
261 ("AddInstanceButton", "add_element", _("Add instance")), |
260 ("DeleteInstanceButton", "remove_element", _("Remove instance")), |
262 ("DeleteInstanceButton", "remove_element", _("Remove instance")), |
261 ("UpInstanceButton", "up", _("Move instance up")), |
263 ("UpInstanceButton", "up", _("Move instance up")), |
262 ("DownInstanceButton", "down", _("Move instance down"))]: |
264 ("DownInstanceButton", "down", _("Move instance down"))]: |
263 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
265 button = wx.lib.buttons.GenBitmapButton(self.Editor, |
264 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
266 bitmap=GetBitmap(bitmap), size=wx.Size(28, 28), style=wx.NO_BORDER) |
265 button.SetToolTipString(help) |
267 button.SetToolTipString(help) |
266 setattr(self, name, button) |
268 setattr(self, name, button) |
267 instances_buttons_sizer.AddWindow(button) |
269 instances_buttons_sizer.AddWindow(button) |
268 |
270 |
269 self.InstancesGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
271 self.InstancesGrid = CustomGrid(self.Editor, style=wx.VSCROLL) |
270 self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, |
272 self.InstancesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, |
271 self.OnInstancesGridCellChange) |
273 self.OnInstancesGridCellChange) |
272 instances_sizer.AddWindow(self.InstancesGrid, flag=wx.GROW) |
274 instances_sizer.AddWindow(self.InstancesGrid, flag=wx.GROW) |
273 |
275 |
274 self.Editor.SetSizer(main_sizer) |
276 self.Editor.SetSizer(main_sizer) |
275 |
277 |
276 def __init__(self, parent, tagname, window, controler): |
278 def __init__(self, parent, tagname, window, controler): |
277 EditorPanel.__init__(self, parent, tagname, window, controler) |
279 EditorPanel.__init__(self, parent, tagname, window, controler) |
278 |
280 |
279 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
281 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
280 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
282 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
281 |
283 |
282 self.TasksDefaultValue = {"Name" : "", "Triggering" : "", "Single" : "", "Interval" : "", "Priority" : 0} |
284 self.TasksDefaultValue = {"Name" : "", "Triggering" : "", "Single" : "", "Interval" : "", "Priority" : 0} |
283 self.TasksTable = ResourceTable(self, [], GetTasksTableColnames()) |
285 self.TasksTable = ResourceTable(self, [], GetTasksTableColnames()) |
284 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
286 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
285 self.TasksTable.SetColSizes([200, 100, 100, 150, 100]) |
287 self.TasksTable.SetColSizes([200, 100, 100, 150, 100]) |
286 self.TasksGrid.SetTable(self.TasksTable) |
288 self.TasksGrid.SetTable(self.TasksTable) |
287 self.TasksGrid.SetButtons({"Add": self.AddTaskButton, |
289 self.TasksGrid.SetButtons({"Add": self.AddTaskButton, |
288 "Delete": self.DeleteTaskButton, |
290 "Delete": self.DeleteTaskButton, |
289 "Up": self.UpTaskButton, |
291 "Up": self.UpTaskButton, |
290 "Down": self.DownTaskButton}) |
292 "Down": self.DownTaskButton}) |
291 |
293 |
292 def _AddTask(new_row): |
294 def _AddTask(new_row): |
293 self.TasksTable.InsertRow(new_row, self.TasksDefaultValue.copy()) |
295 self.TasksTable.InsertRow(new_row, self.TasksDefaultValue.copy()) |
294 self.RefreshModel() |
296 self.RefreshModel() |
295 self.RefreshView() |
297 self.RefreshView() |
296 return new_row |
298 return new_row |
297 setattr(self.TasksGrid, "_AddRow", _AddTask) |
299 setattr(self.TasksGrid, "_AddRow", _AddTask) |
298 |
300 |
299 def _DeleteTask(row): |
301 def _DeleteTask(row): |
300 self.TasksTable.RemoveRow(row) |
302 self.TasksTable.RemoveRow(row) |
301 self.RefreshModel() |
303 self.RefreshModel() |
302 self.RefreshView() |
304 self.RefreshView() |
303 setattr(self.TasksGrid, "_DeleteRow", _DeleteTask) |
305 setattr(self.TasksGrid, "_DeleteRow", _DeleteTask) |
304 |
306 |
305 def _MoveTask(row, move): |
307 def _MoveTask(row, move): |
306 new_row = self.TasksTable.MoveRow(row, move) |
308 new_row = self.TasksTable.MoveRow(row, move) |
307 if new_row != row: |
309 if new_row != row: |
308 self.RefreshModel() |
310 self.RefreshModel() |
309 self.RefreshView() |
311 self.RefreshView() |
310 return new_row |
312 return new_row |
311 setattr(self.TasksGrid, "_MoveRow", _MoveTask) |
313 setattr(self.TasksGrid, "_MoveRow", _MoveTask) |
312 |
314 |
313 self.TasksGrid.SetRowLabelSize(0) |
315 self.TasksGrid.SetRowLabelSize(0) |
314 self.TasksTable.ResetView(self.TasksGrid) |
316 self.TasksTable.ResetView(self.TasksGrid) |
315 self.TasksGrid.RefreshButtons() |
317 self.TasksGrid.RefreshButtons() |
316 |
318 |
317 self.InstancesDefaultValue = {"Name" : "", "Type" : "", "Task" : ""} |
319 self.InstancesDefaultValue = {"Name" : "", "Type" : "", "Task" : ""} |
318 self.InstancesTable = ResourceTable(self, [], GetInstancesTableColnames()) |
320 self.InstancesTable = ResourceTable(self, [], GetInstancesTableColnames()) |
319 self.InstancesTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]) |
321 self.InstancesTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]) |
320 self.InstancesTable.SetColSizes([200, 150, 150]) |
322 self.InstancesTable.SetColSizes([200, 150, 150]) |
321 self.InstancesGrid.SetTable(self.InstancesTable) |
323 self.InstancesGrid.SetTable(self.InstancesTable) |
322 self.InstancesGrid.SetButtons({"Add": self.AddInstanceButton, |
324 self.InstancesGrid.SetButtons({"Add": self.AddInstanceButton, |
323 "Delete": self.DeleteInstanceButton, |
325 "Delete": self.DeleteInstanceButton, |
324 "Up": self.UpInstanceButton, |
326 "Up": self.UpInstanceButton, |
325 "Down": self.DownInstanceButton}) |
327 "Down": self.DownInstanceButton}) |
326 |
328 |
327 def _AddInstance(new_row): |
329 def _AddInstance(new_row): |
328 self.InstancesTable.InsertRow(new_row, self.InstancesDefaultValue.copy()) |
330 self.InstancesTable.InsertRow(new_row, self.InstancesDefaultValue.copy()) |
329 self.RefreshModel() |
331 self.RefreshModel() |
330 self.RefreshView() |
332 self.RefreshView() |
331 return new_row |
333 return new_row |
332 setattr(self.InstancesGrid, "_AddRow", _AddInstance) |
334 setattr(self.InstancesGrid, "_AddRow", _AddInstance) |
333 |
335 |
334 def _DeleteInstance(row): |
336 def _DeleteInstance(row): |
335 self.InstancesTable.RemoveRow(row) |
337 self.InstancesTable.RemoveRow(row) |
336 self.RefreshModel() |
338 self.RefreshModel() |
337 self.RefreshView() |
339 self.RefreshView() |
338 setattr(self.InstancesGrid, "_DeleteRow", _DeleteInstance) |
340 setattr(self.InstancesGrid, "_DeleteRow", _DeleteInstance) |
339 |
341 |
340 def _MoveInstance(row, move): |
342 def _MoveInstance(row, move): |
341 new_row = max(0, min(row + move, self.InstancesTable.GetNumberRows() - 1)) |
343 new_row = max(0, min(row + move, self.InstancesTable.GetNumberRows() - 1)) |
342 if new_row != row: |
344 if new_row != row: |
343 if self.InstancesTable.GetValueByName(row, "Task") != self.InstancesTable.GetValueByName(new_row, "Task"): |
345 if self.InstancesTable.GetValueByName(row, "Task") != self.InstancesTable.GetValueByName(new_row, "Task"): |
344 return row |
346 return row |
345 self.InstancesTable.MoveRow(row, move) |
347 self.InstancesTable.MoveRow(row, move) |
346 self.RefreshModel() |
348 self.RefreshModel() |
347 self.RefreshView() |
349 self.RefreshView() |
348 return new_row |
350 return new_row |
349 setattr(self.InstancesGrid, "_MoveRow", _MoveInstance) |
351 setattr(self.InstancesGrid, "_MoveRow", _MoveInstance) |
350 |
352 |
351 def _RefreshInstanceButtons(): |
353 def _RefreshInstanceButtons(): |
352 if self: |
354 if self: |
353 rows = self.InstancesTable.GetNumberRows() |
355 rows = self.InstancesTable.GetNumberRows() |
354 row = self.InstancesGrid.GetGridCursorRow() |
356 row = self.InstancesGrid.GetGridCursorRow() |
355 self.DeleteInstanceButton.Enable(rows > 0) |
357 self.DeleteInstanceButton.Enable(rows > 0) |
356 self.UpInstanceButton.Enable(row > 0 and |
358 self.UpInstanceButton.Enable(row > 0 and |
357 self.InstancesTable.GetValueByName(row, "Task") == self.InstancesTable.GetValueByName(row - 1, "Task")) |
359 self.InstancesTable.GetValueByName(row, "Task") == self.InstancesTable.GetValueByName(row - 1, "Task")) |
358 self.DownInstanceButton.Enable(0 <= row < rows - 1 and |
360 self.DownInstanceButton.Enable(0 <= row < rows - 1 and |
359 self.InstancesTable.GetValueByName(row, "Task") == self.InstancesTable.GetValueByName(row + 1, "Task")) |
361 self.InstancesTable.GetValueByName(row, "Task") == self.InstancesTable.GetValueByName(row + 1, "Task")) |
360 setattr(self.InstancesGrid, "RefreshButtons", _RefreshInstanceButtons) |
362 setattr(self.InstancesGrid, "RefreshButtons", _RefreshInstanceButtons) |
361 |
363 |
362 self.InstancesGrid.SetRowLabelSize(0) |
364 self.InstancesGrid.SetRowLabelSize(0) |
363 self.InstancesTable.ResetView(self.InstancesGrid) |
365 self.InstancesTable.ResetView(self.InstancesGrid) |
364 self.InstancesGrid.RefreshButtons() |
366 self.InstancesGrid.RefreshButtons() |
365 |
367 |
366 self.TasksGrid.SetFocus() |
368 self.TasksGrid.SetFocus() |
367 |
369 |
368 def __del__(self): |
370 def __del__(self): |
369 self.RefreshHighlightsTimer.Stop() |
371 self.RefreshHighlightsTimer.Stop() |
370 |
372 |
371 def RefreshTypeList(self): |
373 def RefreshTypeList(self): |
372 self.TypeList = "" |
374 self.TypeList = "" |
381 |
383 |
382 def RefreshVariableList(self): |
384 def RefreshVariableList(self): |
383 self.VariableList = "" |
385 self.VariableList = "" |
384 for variable in self.Controler.GetEditedResourceVariables(self.TagName): |
386 for variable in self.Controler.GetEditedResourceVariables(self.TagName): |
385 self.VariableList += ",%s"%variable |
387 self.VariableList += ",%s"%variable |
386 |
388 |
387 def RefreshModel(self): |
389 def RefreshModel(self): |
388 self.Controler.SetEditedResourceInfos(self.TagName, self.TasksTable.GetData(), self.InstancesTable.GetData()) |
390 self.Controler.SetEditedResourceInfos(self.TagName, self.TasksTable.GetData(), self.InstancesTable.GetData()) |
389 self.RefreshBuffer() |
391 self.RefreshBuffer() |
390 |
392 |
391 # Buffer the last model state |
393 # Buffer the last model state |
392 def RefreshBuffer(self): |
394 def RefreshBuffer(self): |
393 self.Controler.BufferProject() |
395 self.Controler.BufferProject() |
394 self.ParentWindow.RefreshTitle() |
396 self.ParentWindow.RefreshTitle() |
395 self.ParentWindow.RefreshFileMenu() |
397 self.ParentWindow.RefreshFileMenu() |
396 self.ParentWindow.RefreshEditMenu() |
398 self.ParentWindow.RefreshEditMenu() |
397 |
399 |
398 def GetBufferState(self): |
400 def GetBufferState(self): |
399 return self.Controler.GetBufferState() |
401 return self.Controler.GetBufferState() |
400 |
402 |
401 def Undo(self): |
403 def Undo(self): |
402 self.Controler.LoadPrevious() |
404 self.Controler.LoadPrevious() |
403 self.ParentWindow.CloseTabsWithoutModel() |
405 self.ParentWindow.CloseTabsWithoutModel() |
404 |
406 |
405 def Redo(self): |
407 def Redo(self): |
406 self.Controler.LoadNext() |
408 self.Controler.LoadNext() |
407 self.ParentWindow.CloseTabsWithoutModel() |
409 self.ParentWindow.CloseTabsWithoutModel() |
408 |
410 |
409 def HasNoModel(self): |
411 def HasNoModel(self): |
410 return self.Controler.GetEditedElement(self.TagName) is None |
412 return self.Controler.GetEditedElement(self.TagName) is None |
411 |
413 |
412 def RefreshView(self, variablepanel=True): |
414 def RefreshView(self, variablepanel=True): |
413 EditorPanel.RefreshView(self, variablepanel) |
415 EditorPanel.RefreshView(self, variablepanel) |
414 |
416 |
415 tasks, instances = self.Controler.GetEditedResourceInfos(self.TagName) |
417 tasks, instances = self.Controler.GetEditedResourceInfos(self.TagName) |
416 self.TasksTable.SetData(tasks) |
418 self.TasksTable.SetData(tasks) |
417 self.InstancesTable.SetData(instances) |
419 self.InstancesTable.SetData(instances) |
418 self.RefreshTypeList() |
420 self.RefreshTypeList() |
419 self.RefreshTaskList() |
421 self.RefreshTaskList() |
420 self.RefreshVariableList() |
422 self.RefreshVariableList() |
421 self.TasksTable.ResetView(self.TasksGrid) |
423 self.TasksTable.ResetView(self.TasksGrid) |
422 self.InstancesTable.ResetView(self.InstancesGrid) |
424 self.InstancesTable.ResetView(self.InstancesGrid) |
423 self.TasksGrid.RefreshButtons() |
425 self.TasksGrid.RefreshButtons() |
424 self.InstancesGrid.RefreshButtons() |
426 self.InstancesGrid.RefreshButtons() |
425 |
427 |
426 def OnTasksGridCellChange(self, event): |
428 def OnTasksGridCellChange(self, event): |
427 row, col = event.GetRow(), event.GetCol() |
429 row, col = event.GetRow(), event.GetCol() |
428 if self.TasksTable.GetColLabelValue(col) == "Name": |
430 if self.TasksTable.GetColLabelValue(col) == "Name": |
429 tasklist = [name for name in self.TaskList.split(",") if name != ""] |
431 tasklist = [name for name in self.TaskList.split(",") if name != ""] |
430 for i in xrange(self.TasksTable.GetNumberRows()): |
432 for i in xrange(self.TasksTable.GetNumberRows()): |