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 |
|