controls/VariablePanel.py
changeset 2301 5b8a7dd43f9f
parent 2240 e684aed23407
child 2432 dbc065a2f7a5
equal deleted inserted replaced
2300:f19788028d99 2301:5b8a7dd43f9f
    78     if non_retain:
    78     if non_retain:
    79         options.append(_("Non-Retain"))
    79         options.append(_("Non-Retain"))
    80     return options
    80     return options
    81 
    81 
    82 
    82 
    83 OPTIONS_DICT = dict([(_(option), option) for option in GetOptions()])
       
    84 
       
    85 
       
    86 def GetFilterChoiceTransfer():
    83 def GetFilterChoiceTransfer():
    87     _ = NoTranslate
    84     _ = NoTranslate
    88     return {_("All"): _("All"), _("Interface"): _("Interface"),
    85     return {_("All"): _("All"), _("Interface"): _("Interface"),
    89             _("   Input"): _("Input"), _("   Output"): _("Output"), _("   InOut"): _("InOut"),
    86             _("   Input"): _("Input"), _("   Output"): _("Output"), _("   InOut"): _("InOut"),
    90             _("   External"): _("External"), _("Variables"): _("Variables"), _("   Local"): _("Local"),
    87             _("   External"): _("External"), _("Variables"): _("Variables"), _("   Local"): _("Local"),
    91             _("   Temp"): _("Temp"), _("Global"): _("Global")}  # , _("Access") : _("Access")}
    88             _("   Temp"): _("Temp"), _("Global"): _("Global")}  # , _("Access") : _("Access")}
    92 
    89 
    93 
       
    94 VARIABLE_CHOICES_DICT = dict([(_(_class), _class) for _class in GetFilterChoiceTransfer().iterkeys()])
       
    95 VARIABLE_CLASSES_DICT = dict([(_(_class), _class) for _class in GetFilterChoiceTransfer().itervalues()])
       
    96 
    90 
    97 CheckOptionForClass = {
    91 CheckOptionForClass = {
    98     "Local": lambda x: x,
    92     "Local": lambda x: x,
    99     "Temp": lambda x: "",
    93     "Temp": lambda x: "",
   100     "Input": lambda x: {"Retain": "Retain", "Non-Retain": "Non-Retain"}.get(x, ""),
    94     "Input": lambda x: {"Retain": "Retain", "Non-Retain": "Non-Retain"}.get(x, ""),
   120     """
   114     """
   121     def __init__(self, parent, data, colnames):
   115     def __init__(self, parent, data, colnames):
   122         # The base class must be initialized *first*
   116         # The base class must be initialized *first*
   123         CustomTable.__init__(self, parent, data, colnames)
   117         CustomTable.__init__(self, parent, data, colnames)
   124         self.old_value = None
   118         self.old_value = None
       
   119         self.OPTIONS_DICT = dict([(_(option), option)
       
   120                                   for option in GetOptions()])
       
   121         self.VARIABLE_CLASSES_DICT = dict([(_(_class), _class)
       
   122                                            for _class in GetFilterChoiceTransfer().itervalues()])
   125 
   123 
   126     def GetValueByName(self, row, colname):
   124     def GetValueByName(self, row, colname):
   127         if row < self.GetNumberRows():
   125         if row < self.GetNumberRows():
   128             return getattr(self.data[row], colname)
   126             return getattr(self.data[row], colname)
   129 
   127 
   152         if col < len(self.colnames):
   150         if col < len(self.colnames):
   153             colname = self.GetColLabelValue(col, False)
   151             colname = self.GetColLabelValue(col, False)
   154             if colname == "Name":
   152             if colname == "Name":
   155                 self.old_value = getattr(self.data[row], colname)
   153                 self.old_value = getattr(self.data[row], colname)
   156             elif colname == "Class":
   154             elif colname == "Class":
   157                 value = VARIABLE_CLASSES_DICT[value]
   155                 value = self.VARIABLE_CLASSES_DICT[value]
   158                 self.SetValueByName(row, "Option", CheckOptionForClass[value](self.GetValueByName(row, "Option")))
   156                 self.SetValueByName(row, "Option", CheckOptionForClass[value](self.GetValueByName(row, "Option")))
   159                 if value == "External":
   157                 if value == "External":
   160                     self.SetValueByName(row, "InitialValue", "")
   158                     self.SetValueByName(row, "InitialValue", "")
   161             elif colname == "Option":
   159             elif colname == "Option":
   162                 value = OPTIONS_DICT[value]
   160                 value = self.OPTIONS_DICT[value]
   163             elif colname == "Initial Value":
   161             elif colname == "Initial Value":
   164                 colname = "InitialValue"
   162                 colname = "InitialValue"
   165             setattr(self.data[row], colname, value)
   163             setattr(self.data[row], colname, value)
   166 
   164 
   167     def GetOldValue(self):
   165     def GetOldValue(self):
   442 class VariablePanel(wx.Panel):
   440 class VariablePanel(wx.Panel):
   443 
   441 
   444     def __init__(self, parent, window, controler, element_type, debug=False):
   442     def __init__(self, parent, window, controler, element_type, debug=False):
   445         wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)
   443         wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)
   446 
   444 
       
   445         self.VARIABLE_CHOICES_DICT = dict([(_(_class), _class) for
       
   446                                            _class in GetFilterChoiceTransfer().iterkeys()])
       
   447 
   447         self.MainSizer = wx.FlexGridSizer(cols=1, hgap=10, rows=2, vgap=0)
   448         self.MainSizer = wx.FlexGridSizer(cols=1, hgap=10, rows=2, vgap=0)
   448         self.MainSizer.AddGrowableCol(0)
   449         self.MainSizer.AddGrowableCol(0)
   449         self.MainSizer.AddGrowableRow(1)
   450         self.MainSizer.AddGrowableRow(1)
   450 
   451 
   451         controls_sizer = wx.FlexGridSizer(cols=10, hgap=5, rows=1, vgap=5)
   452         controls_sizer = wx.FlexGridSizer(cols=10, hgap=5, rows=1, vgap=5)
   761             self.Controler.SetPouDescription(words[1], new_description)
   762             self.Controler.SetPouDescription(words[1], new_description)
   762             self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
   763             self.ParentWindow._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
   763         event.Skip()
   764         event.Skip()
   764 
   765 
   765     def OnClassFilter(self, event):
   766     def OnClassFilter(self, event):
   766         self.Filter = self.FilterChoiceTransfer[VARIABLE_CHOICES_DICT[self.ClassFilter.GetStringSelection()]]
   767         self.Filter = self.FilterChoiceTransfer[self.VARIABLE_CHOICES_DICT[self.ClassFilter.GetStringSelection()]]
   767         self.RefreshTypeList()
   768         self.RefreshTypeList()
   768         self.RefreshValues()
   769         self.RefreshValues()
   769         self.VariablesGrid.RefreshButtons()
   770         self.VariablesGrid.RefreshButtons()
   770         event.Skip()
   771         event.Skip()
   771 
   772