63 #------------------------------------------------------------------------------- |
63 #------------------------------------------------------------------------------- |
64 # Resource Editor class |
64 # Resource Editor class |
65 #------------------------------------------------------------------------------- |
65 #------------------------------------------------------------------------------- |
66 |
66 |
67 def GetTasksTableColnames(): |
67 def GetTasksTableColnames(): |
68 _ = lambda x : x |
68 _ = lambda x: x |
69 return [_("Name"), _("Triggering"), _("Single"), _("Interval"), _("Priority")] |
69 return [_("Name"), _("Triggering"), _("Single"), _("Interval"), _("Priority")] |
70 |
70 |
71 |
71 |
72 def GetTaskTriggeringOptions(): |
72 def GetTaskTriggeringOptions(): |
73 _ = lambda x : x |
73 _ = lambda x: x |
74 return [_("Interrupt"), _("Cyclic")] |
74 return [_("Interrupt"), _("Cyclic")] |
75 TASKTRIGGERINGOPTIONS_DICT = dict([(_(option), option) for option in GetTaskTriggeringOptions()]) |
75 TASKTRIGGERINGOPTIONS_DICT = dict([(_(option), option) for option in GetTaskTriggeringOptions()]) |
76 |
76 |
77 SingleCellEditor = lambda *x : wx.grid.GridCellChoiceEditor() |
77 SingleCellEditor = lambda *x: wx.grid.GridCellChoiceEditor() |
78 |
78 |
79 |
79 |
80 def CheckSingle(single, varlist): |
80 def CheckSingle(single, varlist): |
81 return single in varlist |
81 return single in varlist |
82 |
82 |
83 |
83 |
84 def GetInstancesTableColnames(): |
84 def GetInstancesTableColnames(): |
85 _ = lambda x : x |
85 _ = lambda x: x |
86 return [_("Name"), _("Type"), _("Task")] |
86 return [_("Name"), _("Type"), _("Task")] |
87 |
87 |
88 |
88 |
89 class ResourceTable(CustomTable): |
89 class ResourceTable(CustomTable): |
90 |
90 |
290 EditorPanel.__init__(self, parent, tagname, window, controler) |
290 EditorPanel.__init__(self, parent, tagname, window, controler) |
291 |
291 |
292 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
292 self.RefreshHighlightsTimer = wx.Timer(self, -1) |
293 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
293 self.Bind(wx.EVT_TIMER, self.OnRefreshHighlightsTimer, self.RefreshHighlightsTimer) |
294 |
294 |
295 self.TasksDefaultValue = {"Name" : "", "Triggering" : "", "Single" : "", "Interval" : "", "Priority" : 0} |
295 self.TasksDefaultValue = {"Name": "", "Triggering": "", "Single": "", "Interval": "", "Priority": 0} |
296 self.TasksTable = ResourceTable(self, [], GetTasksTableColnames()) |
296 self.TasksTable = ResourceTable(self, [], GetTasksTableColnames()) |
297 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
297 self.TasksTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_RIGHT, wx.ALIGN_RIGHT]) |
298 self.TasksTable.SetColSizes([200, 100, 100, 150, 100]) |
298 self.TasksTable.SetColSizes([200, 100, 100, 150, 100]) |
299 self.TasksGrid.SetTable(self.TasksTable) |
299 self.TasksGrid.SetTable(self.TasksTable) |
300 self.TasksGrid.SetButtons({"Add": self.AddTaskButton, |
300 self.TasksGrid.SetButtons({"Add": self.AddTaskButton, |
325 |
325 |
326 self.TasksGrid.SetRowLabelSize(0) |
326 self.TasksGrid.SetRowLabelSize(0) |
327 self.TasksTable.ResetView(self.TasksGrid) |
327 self.TasksTable.ResetView(self.TasksGrid) |
328 self.TasksGrid.RefreshButtons() |
328 self.TasksGrid.RefreshButtons() |
329 |
329 |
330 self.InstancesDefaultValue = {"Name" : "", "Type" : "", "Task" : ""} |
330 self.InstancesDefaultValue = {"Name": "", "Type": "", "Task": ""} |
331 self.InstancesTable = ResourceTable(self, [], GetInstancesTableColnames()) |
331 self.InstancesTable = ResourceTable(self, [], GetInstancesTableColnames()) |
332 self.InstancesTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]) |
332 self.InstancesTable.SetColAlignements([wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT]) |
333 self.InstancesTable.SetColSizes([200, 150, 150]) |
333 self.InstancesTable.SetColSizes([200, 150, 150]) |
334 self.InstancesGrid.SetTable(self.InstancesTable) |
334 self.InstancesGrid.SetTable(self.InstancesTable) |
335 self.InstancesGrid.SetButtons({"Add": self.AddInstanceButton, |
335 self.InstancesGrid.SetButtons({"Add": self.AddInstanceButton, |
484 |
484 |
485 if not TestIdentifier(value): |
485 if not TestIdentifier(value): |
486 message = _("\"%s\" is not a valid identifier!") % value |
486 message = _("\"%s\" is not a valid identifier!") % value |
487 elif value.upper() in IEC_KEYWORDS: |
487 elif value.upper() in IEC_KEYWORDS: |
488 message = _("\"%s\" is a keyword. It can't be used!") % value |
488 message = _("\"%s\" is a keyword. It can't be used!") % value |
489 elif value.upper() in [var["Name"].upper() for i ,var in enumerate(self.InstancesTable.data) if i!=row]: |
489 elif value.upper() in [var["Name"].upper() for i, var in enumerate(self.InstancesTable.data) if i!=row]: |
490 message = _("An instance with the same name already exists!") |
490 message = _("An instance with the same name already exists!") |
491 if message is not None: |
491 if message is not None: |
492 event.Veto() |
492 event.Veto() |
493 wx.CallAfter(self.ShowErrorMessage, message) |
493 wx.CallAfter(self.ShowErrorMessage, message) |
494 return |
494 return |