editors/ResourceEditor.py
branchpython3
changeset 3750 f62625418bff
parent 3449 6279ec06df98
child 3752 9f6f46dbe3ae
equal deleted inserted replaced
3749:fda6c1a37662 3750:f62625418bff
    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")