21 # You should have received a copy of the GNU General Public License |
21 # You should have received a copy of the GNU General Public License |
22 # along with this program; if not, write to the Free Software |
22 # along with this program; if not, write to the Free Software |
23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
24 |
24 |
25 |
25 |
26 from __future__ import absolute_import |
26 |
27 import wx |
27 import wx |
28 import wx.lib.buttons |
28 import wx.lib.buttons |
29 import wx.grid |
29 import wx.grid |
30 from six.moves import xrange |
30 from six.moves import xrange |
31 |
31 |
163 grid.SetReadOnly(row, col, True) |
163 grid.SetReadOnly(row, col, True) |
164 single = self.GetValueByName(row, colname) |
164 single = self.GetValueByName(row, colname) |
165 if single != "" and not CheckSingle(single, self.Parent.VariableList): |
165 if single != "" and not CheckSingle(single, self.Parent.VariableList): |
166 error = True |
166 error = True |
167 elif colname == "Triggering": |
167 elif colname == "Triggering": |
168 editor = wx.grid.GridCellChoiceEditor(map(_, GetTaskTriggeringOptions())) |
168 editor = wx.grid.GridCellChoiceEditor(list(map(_, GetTaskTriggeringOptions()))) |
169 elif colname == "Type": |
169 elif colname == "Type": |
170 editor = wx.grid.GridCellChoiceEditor(self.Parent.TypeList) |
170 editor = wx.grid.GridCellChoiceEditor(self.Parent.TypeList) |
171 elif colname == "Priority": |
171 elif colname == "Priority": |
172 editor = wx.grid.GridCellNumberEditor() |
172 editor = wx.grid.GridCellNumberEditor() |
173 editor.SetParameters("0,65535") |
173 editor.SetParameters("0,65535") |
196 |
196 |
197 def ClearHighlights(self, highlight_type=None): |
197 def ClearHighlights(self, highlight_type=None): |
198 if highlight_type is None: |
198 if highlight_type is None: |
199 self.Highlights = {} |
199 self.Highlights = {} |
200 else: |
200 else: |
201 for _row, row_highlights in self.Highlights.iteritems(): |
201 for _row, row_highlights in self.Highlights.items(): |
202 row_items = row_highlights.items() |
202 row_items = list(row_highlights.items()) |
203 for col, col_highlights in row_items: |
203 for col, col_highlights in row_items: |
204 if highlight_type in col_highlights: |
204 if highlight_type in col_highlights: |
205 col_highlights.remove(highlight_type) |
205 col_highlights.remove(highlight_type) |
206 if len(col_highlights) == 0: |
206 if len(col_highlights) == 0: |
207 row_highlights.pop(col) |
207 row_highlights.pop(col) |
228 tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
228 tasks_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
229 tasks_buttons_sizer.AddGrowableCol(0) |
229 tasks_buttons_sizer.AddGrowableCol(0) |
230 tasks_buttons_sizer.AddGrowableRow(0) |
230 tasks_buttons_sizer.AddGrowableRow(0) |
231 tasks_sizer.Add(tasks_buttons_sizer, flag=wx.GROW) |
231 tasks_sizer.Add(tasks_buttons_sizer, flag=wx.GROW) |
232 |
232 |
233 tasks_label = wx.StaticText(self.Editor, label=_(u'Tasks:')) |
233 tasks_label = wx.StaticText(self.Editor, label=_('Tasks:')) |
234 tasks_buttons_sizer.Add(tasks_label, flag=wx.ALIGN_BOTTOM) |
234 tasks_buttons_sizer.Add(tasks_label, flag=wx.ALIGN_BOTTOM) |
235 |
235 |
236 for name, bitmap, help in [ |
236 for name, bitmap, help in [ |
237 ("AddTaskButton", "add_element", _("Add task")), |
237 ("AddTaskButton", "add_element", _("Add task")), |
238 ("DeleteTaskButton", "remove_element", _("Remove task")), |
238 ("DeleteTaskButton", "remove_element", _("Remove task")), |
259 instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
259 instances_buttons_sizer = wx.FlexGridSizer(cols=5, hgap=5, rows=1, vgap=0) |
260 instances_buttons_sizer.AddGrowableCol(0) |
260 instances_buttons_sizer.AddGrowableCol(0) |
261 instances_buttons_sizer.AddGrowableRow(0) |
261 instances_buttons_sizer.AddGrowableRow(0) |
262 instances_sizer.Add(instances_buttons_sizer, flag=wx.GROW) |
262 instances_sizer.Add(instances_buttons_sizer, flag=wx.GROW) |
263 |
263 |
264 instances_label = wx.StaticText(self.Editor, label=_(u'Instances:')) |
264 instances_label = wx.StaticText(self.Editor, label=_('Instances:')) |
265 instances_buttons_sizer.Add(instances_label, flag=wx.ALIGN_BOTTOM) |
265 instances_buttons_sizer.Add(instances_label, flag=wx.ALIGN_BOTTOM) |
266 |
266 |
267 for name, bitmap, help in [ |
267 for name, bitmap, help in [ |
268 ("AddInstanceButton", "add_element", _("Add instance")), |
268 ("AddInstanceButton", "add_element", _("Add instance")), |
269 ("DeleteInstanceButton", "remove_element", _("Remove instance")), |
269 ("DeleteInstanceButton", "remove_element", _("Remove instance")), |
402 for blocktype in blocktypes: |
402 for blocktype in blocktypes: |
403 self.TypeList.append(blocktype) |
403 self.TypeList.append(blocktype) |
404 |
404 |
405 def RefreshTaskList(self): |
405 def RefreshTaskList(self): |
406 self.TaskList = [] |
406 self.TaskList = [] |
407 for row in xrange(self.TasksTable.GetNumberRows()): |
407 for row in range(self.TasksTable.GetNumberRows()): |
408 self.TaskList.append(self.TasksTable.GetValueByName(row, "Name")) |
408 self.TaskList.append(self.TasksTable.GetValueByName(row, "Name")) |
409 |
409 |
410 def RefreshVariableList(self): |
410 def RefreshVariableList(self): |
411 self.VariableList = [] |
411 self.VariableList = [] |
412 for variable in self.Controler.GetEditedResourceVariables(self.TagName): |
412 for variable in self.Controler.GetEditedResourceVariables(self.TagName): |
472 event.Veto() |
472 event.Veto() |
473 wx.CallAfter(self.ShowErrorMessage, message) |
473 wx.CallAfter(self.ShowErrorMessage, message) |
474 return |
474 return |
475 |
475 |
476 tasklist = [name for name in self.TaskList if name != ""] |
476 tasklist = [name for name in self.TaskList if name != ""] |
477 for i in xrange(self.TasksTable.GetNumberRows()): |
477 for i in range(self.TasksTable.GetNumberRows()): |
478 task = self.TasksTable.GetValueByName(i, "Name") |
478 task = self.TasksTable.GetValueByName(i, "Name") |
479 if task in tasklist: |
479 if task in tasklist: |
480 tasklist.remove(task) |
480 tasklist.remove(task) |
481 if len(tasklist) > 0: |
481 if len(tasklist) > 0: |
482 old_name = tasklist[0].upper() |
482 old_name = tasklist[0].upper() |
483 new_name = self.TasksTable.GetValue(row, col) |
483 new_name = self.TasksTable.GetValue(row, col) |
484 for i in xrange(self.InstancesTable.GetNumberRows()): |
484 for i in range(self.InstancesTable.GetNumberRows()): |
485 name = self.InstancesTable.GetValueByName(i, "Task").upper() |
485 name = self.InstancesTable.GetValueByName(i, "Task").upper() |
486 if old_name == name: |
486 if old_name == name: |
487 self.InstancesTable.SetValueByName(i, "Task", new_name) |
487 self.InstancesTable.SetValueByName(i, "Task", new_name) |
488 if self.TasksTable.GetColLabelValue(col, False) == "Triggering": |
488 if self.TasksTable.GetColLabelValue(col, False) == "Triggering": |
489 self.TasksTable.SetValueByName(row, "Interval", "T#20ms") |
489 self.TasksTable.SetValueByName(row, "Interval", "T#20ms") |