canfestival/SlaveEditor.py
changeset 1730 64d8f52bc8c8
parent 1511 91538d0c242c
child 1736 7e61baa047f0
equal deleted inserted replaced
1726:d51af006fa6b 1730:64d8f52bc8c8
    28 from nodeeditortemplate import NodeEditorTemplate
    28 from nodeeditortemplate import NodeEditorTemplate
    29 from editors.ConfTreeNodeEditor import ConfTreeNodeEditor
    29 from editors.ConfTreeNodeEditor import ConfTreeNodeEditor
    30 
    30 
    31 [ID_SLAVEEDITORCONFNODEMENUNODEINFOS, ID_SLAVEEDITORCONFNODEMENUDS301PROFILE,
    31 [ID_SLAVEEDITORCONFNODEMENUNODEINFOS, ID_SLAVEEDITORCONFNODEMENUDS301PROFILE,
    32  ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE,
    32  ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE,
    33  ID_SLAVEEDITORCONFNODEMENUADD, 
    33  ID_SLAVEEDITORCONFNODEMENUADD,
    34 ] = [wx.NewId() for _init_coll_ConfNodeMenu_Items in range(5)]
    34 ] = [wx.NewId() for _init_coll_ConfNodeMenu_Items in range(5)]
    35 
    35 
    36 [ID_SLAVEEDITORADDMENUSDOSERVER, ID_SLAVEEDITORADDMENUSDOCLIENT,
    36 [ID_SLAVEEDITORADDMENUSDOSERVER, ID_SLAVEEDITORADDMENUSDOCLIENT,
    37  ID_SLAVEEDITORADDMENUPDOTRANSMIT, ID_SLAVEEDITORADDMENUPDORECEIVE,
    37  ID_SLAVEEDITORADDMENUPDOTRANSMIT, ID_SLAVEEDITORADDMENUPDORECEIVE,
    38  ID_SLAVEEDITORADDMENUMAPVARIABLE, ID_SLAVEEDITORADDMENUUSERTYPE,
    38  ID_SLAVEEDITORADDMENUMAPVARIABLE, ID_SLAVEEDITORADDMENUUSERTYPE,
    39 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)]
    39 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)]
    40 
    40 
    41 class SlaveEditor(ConfTreeNodeEditor, NodeEditorTemplate):
    41 class SlaveEditor(ConfTreeNodeEditor, NodeEditorTemplate):
    42     
    42 
    43     CONFNODEEDITOR_TABS = [
    43     CONFNODEEDITOR_TABS = [
    44         (_("CANOpen slave"), "_create_SlaveNodeEditor")]
    44         (_("CANOpen slave"), "_create_SlaveNodeEditor")]
    45     
    45 
    46     def _create_SlaveNodeEditor(self, prnt):
    46     def _create_SlaveNodeEditor(self, prnt):
    47         self.SlaveNodeEditor = EditingPanel(prnt, self, self.Controler, self.Editable)
    47         self.SlaveNodeEditor = EditingPanel(prnt, self, self.Controler, self.Editable)
    48         return self.SlaveNodeEditor
    48         return self.SlaveNodeEditor
    49         
    49 
    50     def __init__(self, parent, controler, window, editable=True):
    50     def __init__(self, parent, controler, window, editable=True):
    51         self.Editable = editable
    51         self.Editable = editable
    52         ConfTreeNodeEditor.__init__(self, parent, controler, window)
    52         ConfTreeNodeEditor.__init__(self, parent, controler, window)
    53         NodeEditorTemplate.__init__(self, controler, window, False)
    53         NodeEditorTemplate.__init__(self, controler, window, False)
    54     
    54 
    55     def __del__(self):
    55     def __del__(self):
    56         self.Controler.OnCloseEditor(self)
    56         self.Controler.OnCloseEditor(self)
    57     
    57 
    58     def GetConfNodeMenuItems(self):
    58     def GetConfNodeMenuItems(self):
    59         if self.Editable:
    59         if self.Editable:
    60             add_menu = [(wx.ITEM_NORMAL, (_('SDO Server'), ID_SLAVEEDITORADDMENUSDOSERVER, '', self.OnAddSDOServerMenu)),
    60             add_menu = [(wx.ITEM_NORMAL, (_('SDO Server'), ID_SLAVEEDITORADDMENUSDOSERVER, '', self.OnAddSDOServerMenu)),
    61                         (wx.ITEM_NORMAL, (_('SDO Client'), ID_SLAVEEDITORADDMENUSDOCLIENT, '', self.OnAddSDOClientMenu)),
    61                         (wx.ITEM_NORMAL, (_('SDO Client'), ID_SLAVEEDITORADDMENUSDOCLIENT, '', self.OnAddSDOClientMenu)),
    62                         (wx.ITEM_NORMAL, (_('PDO Transmit'), ID_SLAVEEDITORADDMENUPDOTRANSMIT, '', self.OnAddPDOTransmitMenu)),
    62                         (wx.ITEM_NORMAL, (_('PDO Transmit'), ID_SLAVEEDITORADDMENUPDOTRANSMIT, '', self.OnAddPDOTransmitMenu)),
    63                         (wx.ITEM_NORMAL, (_('PDO Receive'), ID_SLAVEEDITORADDMENUPDORECEIVE, '', self.OnAddPDOReceiveMenu)),
    63                         (wx.ITEM_NORMAL, (_('PDO Receive'), ID_SLAVEEDITORADDMENUPDORECEIVE, '', self.OnAddPDOReceiveMenu)),
    64                         (wx.ITEM_NORMAL, (_('Map Variable'), ID_SLAVEEDITORADDMENUMAPVARIABLE, '', self.OnAddMapVariableMenu)),
    64                         (wx.ITEM_NORMAL, (_('Map Variable'), ID_SLAVEEDITORADDMENUMAPVARIABLE, '', self.OnAddMapVariableMenu)),
    65                         (wx.ITEM_NORMAL, (_('User Type'), ID_SLAVEEDITORADDMENUUSERTYPE, '', self.OnAddUserTypeMenu))]
    65                         (wx.ITEM_NORMAL, (_('User Type'), ID_SLAVEEDITORADDMENUUSERTYPE, '', self.OnAddUserTypeMenu))]
    66             
    66 
    67             profile = self.Controler.GetCurrentProfileName()
    67             profile = self.Controler.GetCurrentProfileName()
    68             if profile not in ("None", "DS-301"):
    68             if profile not in ("None", "DS-301"):
    69                 other_profile_text = _("%s Profile") % profile
    69                 other_profile_text = _("%s Profile") % profile
    70                 add_menu.append((wx.ITEM_SEPARATOR, None))
    70                 add_menu.append((wx.ITEM_SEPARATOR, None))
    71                 for text, indexes in self.Manager.GetCurrentSpecificMenu():
    71                 for text, indexes in self.Manager.GetCurrentSpecificMenu():
    72                     add_menu.append((wx.ITEM_NORMAL, (text, wx.NewId(), '', self.GetProfileCallBack(text))))
    72                     add_menu.append((wx.ITEM_NORMAL, (text, wx.NewId(), '', self.GetProfileCallBack(text))))
    73             else:
    73             else:
    74                 other_profile_text = _('Other Profile')
    74                 other_profile_text = _('Other Profile')
    75             
    75 
    76             return [(wx.ITEM_NORMAL, (_('DS-301 Profile'), ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, '', self.OnCommunicationMenu)),
    76             return [(wx.ITEM_NORMAL, (_('DS-301 Profile'), ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, '', self.OnCommunicationMenu)),
    77                     (wx.ITEM_NORMAL, (_('DS-302 Profile'), ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, '', self.OnOtherCommunicationMenu)),
    77                     (wx.ITEM_NORMAL, (_('DS-302 Profile'), ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, '', self.OnOtherCommunicationMenu)),
    78                     (wx.ITEM_NORMAL, (other_profile_text, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, '', self.OnEditProfileMenu)),
    78                     (wx.ITEM_NORMAL, (other_profile_text, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, '', self.OnEditProfileMenu)),
    79                     (wx.ITEM_SEPARATOR, None),
    79                     (wx.ITEM_SEPARATOR, None),
    80                     (add_menu, (_('Add'), ID_SLAVEEDITORCONFNODEMENUADD))]
    80                     (add_menu, (_('Add'), ID_SLAVEEDITORCONFNODEMENUADD))]
    81         return []
    81         return []
    82     
    82 
    83     def RefreshConfNodeMenu(self, confnode_menu):
    83     def RefreshConfNodeMenu(self, confnode_menu):
    84         if self.Editable:
    84         if self.Editable:
    85             confnode_menu.Enable(ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, False)
    85             confnode_menu.Enable(ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, False)
    86 
    86 
    87     def RefreshView(self):
    87     def RefreshView(self):
    88         ConfTreeNodeEditor.RefreshView(self)
    88         ConfTreeNodeEditor.RefreshView(self)
    89         self.SlaveNodeEditor.RefreshIndexList()
    89         self.SlaveNodeEditor.RefreshIndexList()
    90 
    90 
    91     def RefreshCurrentIndexList(self):
    91     def RefreshCurrentIndexList(self):
    92         self.RefreshView()
    92         self.RefreshView()
    93     
    93 
    94     def RefreshBufferState(self):
    94     def RefreshBufferState(self):
    95         self.ParentWindow.RefreshTitle()
    95         self.ParentWindow.RefreshTitle()
    96         self.ParentWindow.RefreshFileMenu()
    96         self.ParentWindow.RefreshFileMenu()
    97         self.ParentWindow.RefreshEditMenu()
    97         self.ParentWindow.RefreshEditMenu()
    98         self.ParentWindow.RefreshPageTitles()
    98         self.ParentWindow.RefreshPageTitles()
    99 
    99 
   100 class MasterViewer(SlaveEditor):
   100 class MasterViewer(SlaveEditor):
   101     SHOW_BASE_PARAMS = False
   101     SHOW_BASE_PARAMS = False
   102     SHOW_PARAMS = False
   102     SHOW_PARAMS = False
   103     
   103 
   104     def __init__(self, parent, controler, window, tagname):
   104     def __init__(self, parent, controler, window, tagname):
   105         SlaveEditor.__init__(self, parent, controler, window, False)
   105         SlaveEditor.__init__(self, parent, controler, window, False)
   106     
   106 
   107         self.TagName = tagname
   107         self.TagName = tagname
   108     
   108 
   109     def GetTagName(self):
   109     def GetTagName(self):
   110         return self.TagName
   110         return self.TagName
   111     
   111 
   112     def GetCurrentNodeId(self):
   112     def GetCurrentNodeId(self):
   113         return None
   113         return None
   114     
   114 
   115     def GetInstancePath(self):
   115     def GetInstancePath(self):
   116         return self.Controler.CTNFullName() + ".generated_master"
   116         return self.Controler.CTNFullName() + ".generated_master"
   117     
   117 
   118     def GetTitle(self):
   118     def GetTitle(self):
   119         return self.GetInstancePath()
   119         return self.GetInstancePath()
   120         
   120 
   121     def IsViewing(self, tagname):
   121     def IsViewing(self, tagname):
   122         return self.GetInstancePath() == tagname
   122         return self.GetInstancePath() == tagname
   123 
   123 
   124     def RefreshView(self):
   124     def RefreshView(self):
   125         self.SlaveNodeEditor.RefreshIndexList()
   125         self.SlaveNodeEditor.RefreshIndexList()
   126