22 #License along with this library; if not, write to the Free Software |
22 #License along with this library; if not, write to the Free Software |
23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 |
24 |
25 import wx |
25 import wx |
26 import wx.grid |
26 import wx.grid |
|
27 |
|
28 if wx.VERSION >= (2, 8, 0): |
|
29 import wx.aui |
|
30 |
|
31 class MDIConfigurationEditor(wx.aui.AuiMDIChildFrame): |
|
32 def __init__(self, parent, tagname, window, controler): |
|
33 wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = "") |
|
34 |
|
35 sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
36 |
|
37 self.Viewer = ConfigurationEditor(self, tagname, window, controler) |
|
38 |
|
39 sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW) |
|
40 |
|
41 self.SetSizer(sizer) |
|
42 |
|
43 def GetViewer(self): |
|
44 return self.Viewer |
|
45 |
|
46 class MDIResourceEditor(wx.aui.AuiMDIChildFrame): |
|
47 def __init__(self, parent, tagname, window, controler): |
|
48 wx.aui.AuiMDIChildFrame.__init__(self, parent, -1, title = "") |
|
49 |
|
50 sizer = wx.BoxSizer(wx.HORIZONTAL) |
|
51 |
|
52 self.Viewer = ResourceEditor(self, tagname, window, controler) |
|
53 |
|
54 sizer.AddWindow(self.Viewer, 1, border=0, flag=wx.GROW) |
|
55 |
|
56 self.SetSizer(sizer) |
|
57 |
|
58 def GetViewer(self): |
|
59 return self.Viewer |
|
60 |
|
61 #------------------------------------------------------------------------------- |
|
62 # Configuration Editor class |
|
63 #------------------------------------------------------------------------------- |
|
64 |
|
65 [ID_CONFIGURATIONEDITOR, |
|
66 ] = [wx.NewId() for _init_ctrls in range(1)] |
|
67 |
|
68 class ConfigurationEditor(wx.Panel): |
|
69 |
|
70 def _init_ctrls(self, prnt): |
|
71 wx.Panel.__init__(self, id=ID_CONFIGURATIONEDITOR, name='', parent=prnt, |
|
72 size=wx.Size(0, 0), style=wx.SUNKEN_BORDER) |
|
73 |
|
74 def __init__(self, parent, tagname, window, controler): |
|
75 self._init_ctrls(parent) |
|
76 |
|
77 self.ParentWindow = window |
|
78 self.Controler = controler |
|
79 self.TagName = tagname |
|
80 |
|
81 def SetTagName(self, tagname): |
|
82 self.TagName = tagname |
|
83 |
|
84 def GetTagName(self): |
|
85 return self.TagName |
|
86 |
|
87 def IsViewing(self, tagname): |
|
88 return self.TagName == tagname |
|
89 |
|
90 def SetMode(self, mode): |
|
91 pass |
|
92 |
|
93 def ResetBuffer(self): |
|
94 pass |
|
95 |
|
96 def RefreshView(self): |
|
97 pass |
27 |
98 |
28 #------------------------------------------------------------------------------- |
99 #------------------------------------------------------------------------------- |
29 # Resource Editor class |
100 # Resource Editor class |
30 #------------------------------------------------------------------------------- |
101 #------------------------------------------------------------------------------- |
31 |
102 |
359 size=wx.Size(32, 32), style=0) |
430 size=wx.Size(32, 32), style=0) |
360 self.Bind(wx.EVT_BUTTON, self.OnDownInstanceButton, id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON) |
431 self.Bind(wx.EVT_BUTTON, self.OnDownInstanceButton, id=ID_RESOURCEEDITORDOWNINSTANCEBUTTON) |
361 |
432 |
362 self._init_sizers() |
433 self._init_sizers() |
363 |
434 |
364 def __init__(self, parent, window, controler): |
435 def __init__(self, parent, tagname, window, controler): |
365 self._init_ctrls(parent) |
436 self._init_ctrls(parent) |
366 |
437 |
367 self.ParentWindow = window |
438 self.ParentWindow = window |
368 self.Controler = controler |
439 self.Controler = controler |
|
440 self.TagName = tagname |
369 |
441 |
370 self.TasksDefaultValue = {"Name" : "", "Single" : "", "Interval" : "", "Priority" : 0} |
442 self.TasksDefaultValue = {"Name" : "", "Single" : "", "Interval" : "", "Priority" : 0} |
371 self.TasksTable = ResourceTable(self, [], ["Name", "Single", "Interval", "Priority"]) |
443 self.TasksTable = ResourceTable(self, [], ["Name", "Single", "Interval", "Priority"]) |
372 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
444 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
373 self.TasksTable.SetColSizes([200, 100, 100, 100]) |
445 self.TasksTable.SetColSizes([200, 100, 100, 100]) |
381 self.InstancesTable.SetColSizes([200, 150, 150]) |
453 self.InstancesTable.SetColSizes([200, 150, 150]) |
382 self.InstancesGrid.SetTable(self.InstancesTable) |
454 self.InstancesGrid.SetTable(self.InstancesTable) |
383 self.InstancesGrid.SetRowLabelSize(0) |
455 self.InstancesGrid.SetRowLabelSize(0) |
384 self.InstancesTable.ResetView(self.InstancesGrid) |
456 self.InstancesTable.ResetView(self.InstancesGrid) |
385 |
457 |
|
458 def SetTagName(self, tagname): |
|
459 self.TagName = tagname |
|
460 |
|
461 def GetTagName(self): |
|
462 return self.TagName |
|
463 |
|
464 def IsViewing(self, tagname): |
|
465 return self.TagName == tagname |
|
466 |
386 def SetMode(self, mode): |
467 def SetMode(self, mode): |
387 pass |
|
388 |
|
389 def VerifyVariableTypeCompatibility(self): |
|
390 pass |
468 pass |
391 |
469 |
392 def RefreshTypeList(self): |
470 def RefreshTypeList(self): |
393 self.TypeList = "" |
471 self.TypeList = "" |
394 blocktypes = self.Controler.GetBlockResource() |
472 blocktypes = self.Controler.GetBlockResource() |
400 for row in xrange(self.TasksTable.GetNumberRows()): |
478 for row in xrange(self.TasksTable.GetNumberRows()): |
401 self.TaskList += ",%s"%self.TasksTable.GetValueByName(row, "Name") |
479 self.TaskList += ",%s"%self.TasksTable.GetValueByName(row, "Name") |
402 |
480 |
403 def RefreshVariableList(self): |
481 def RefreshVariableList(self): |
404 self.VariableList = "" |
482 self.VariableList = "" |
405 for variable in self.Controler.GetCurrentResourceEditingVariables(): |
483 for variable in self.Controler.GetEditedResourceVariables(self.TagName): |
406 self.VariableList += ",%s"%variable |
484 self.VariableList += ",%s"%variable |
407 |
485 |
408 def RefreshModel(self): |
486 def RefreshModel(self): |
409 self.Controler.SetCurrentResourceEditingInfos(self.TasksTable.GetData(), self.InstancesTable.GetData()) |
487 self.Controler.SetEditedResourceInfos(self.TagName, self.TasksTable.GetData(), self.InstancesTable.GetData()) |
410 self.RefreshBuffer() |
488 self.RefreshBuffer() |
411 |
489 |
412 def ResetBuffer(self): |
490 def ResetBuffer(self): |
413 pass |
491 pass |
414 |
492 |
417 self.Controler.BufferProject() |
495 self.Controler.BufferProject() |
418 self.ParentWindow.RefreshTitle() |
496 self.ParentWindow.RefreshTitle() |
419 self.ParentWindow.RefreshEditMenu() |
497 self.ParentWindow.RefreshEditMenu() |
420 |
498 |
421 def RefreshView(self): |
499 def RefreshView(self): |
422 tasks, instances = self.Controler.GetCurrentResourceEditingInfos() |
500 tasks, instances = self.Controler.GetEditedResourceInfos(self.TagName) |
423 self.TasksTable.SetData(tasks) |
501 self.TasksTable.SetData(tasks) |
424 self.InstancesTable.SetData(instances) |
502 self.InstancesTable.SetData(instances) |
425 self.RefreshTypeList() |
503 self.RefreshTypeList() |
426 self.RefreshTaskList() |
504 self.RefreshTaskList() |
427 self.RefreshVariableList() |
505 self.RefreshVariableList() |