editors/ResourceEditor.py
changeset 1739 ec153828ded2
parent 1736 7e61baa047f0
child 1740 b789b695b5c6
equal deleted inserted replaced
1738:d2e979738700 1739:ec153828ded2
    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