1 |
1 |
2 import wx |
2 import wx |
3 |
3 |
4 from subindextable import EditingPanel |
4 from subindextable import EditingPanel |
5 from nodeeditor import NodeEditorTemplate |
5 from nodeeditor import NodeEditorTemplate |
6 from ConfTreeNodeEditor import ConfTreeNodeEditor |
6 from editors.ConfTreeNodeEditor import ConfTreeNodeEditor |
7 |
7 |
8 [ID_SLAVEEDITORCONFNODEMENUNODEINFOS, ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, |
8 [ID_SLAVEEDITORCONFNODEMENUNODEINFOS, ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, |
9 ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, |
9 ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, |
10 ID_SLAVEEDITORCONFNODEMENUADD, |
10 ID_SLAVEEDITORCONFNODEMENUADD, |
11 ] = [wx.NewId() for _init_coll_ConfNodeMenu_Items in range(5)] |
11 ] = [wx.NewId() for _init_coll_ConfNodeMenu_Items in range(5)] |
15 ID_SLAVEEDITORADDMENUMAPVARIABLE, ID_SLAVEEDITORADDMENUUSERTYPE, |
15 ID_SLAVEEDITORADDMENUMAPVARIABLE, ID_SLAVEEDITORADDMENUUSERTYPE, |
16 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)] |
16 ] = [wx.NewId() for _init_coll_AddMenu_Items in range(6)] |
17 |
17 |
18 class SlaveEditor(ConfTreeNodeEditor, NodeEditorTemplate): |
18 class SlaveEditor(ConfTreeNodeEditor, NodeEditorTemplate): |
19 |
19 |
20 def _init_ConfNodeEditor(self, prnt): |
20 CONFNODEEDITOR_TABS = [ |
21 self.ConfNodeEditor = EditingPanel(prnt, self, self.Controler, self.Editable) |
21 (_("CANOpen slave"), "_create_SlaveNodeEditor")] |
|
22 |
|
23 def _create_SlaveNodeEditor(self, prnt): |
|
24 self.SlaveNodeEditor = EditingPanel(prnt, self, self.Controler, self.Editable) |
|
25 return self.SlaveNodeEditor |
22 |
26 |
23 def __init__(self, parent, controler, window, editable=True): |
27 def __init__(self, parent, controler, window, editable=True): |
24 self.Editable = editable |
28 self.Editable = editable |
25 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
29 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
26 NodeEditorTemplate.__init__(self, controler, window, False) |
30 NodeEditorTemplate.__init__(self, controler, window, False) |
44 for text, indexes in self.Manager.GetCurrentSpecificMenu(): |
48 for text, indexes in self.Manager.GetCurrentSpecificMenu(): |
45 add_menu.append((wx.ITEM_NORMAL, (text, wx.NewId(), '', self.GetProfileCallBack(text)))) |
49 add_menu.append((wx.ITEM_NORMAL, (text, wx.NewId(), '', self.GetProfileCallBack(text)))) |
46 else: |
50 else: |
47 other_profile_text = _('Other Profile') |
51 other_profile_text = _('Other Profile') |
48 |
52 |
49 return [(wx.ITEM_NORMAL, (_('Node infos'), ID_SLAVEEDITORCONFNODEMENUNODEINFOS, '', self.OnNodeInfosMenu)), |
53 return [(wx.ITEM_NORMAL, (_('DS-301 Profile'), ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, '', self.OnCommunicationMenu)), |
50 (wx.ITEM_NORMAL, (_('DS-301 Profile'), ID_SLAVEEDITORCONFNODEMENUDS301PROFILE, '', self.OnCommunicationMenu)), |
|
51 (wx.ITEM_NORMAL, (_('DS-302 Profile'), ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, '', self.OnOtherCommunicationMenu)), |
54 (wx.ITEM_NORMAL, (_('DS-302 Profile'), ID_SLAVEEDITORCONFNODEMENUDS302PROFILE, '', self.OnOtherCommunicationMenu)), |
52 (wx.ITEM_NORMAL, (other_profile_text, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, '', self.OnEditProfileMenu)), |
55 (wx.ITEM_NORMAL, (other_profile_text, ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, '', self.OnEditProfileMenu)), |
53 (wx.ITEM_SEPARATOR, None), |
56 (wx.ITEM_SEPARATOR, None), |
54 (add_menu, (_('Add'), ID_SLAVEEDITORCONFNODEMENUADD))] |
57 (add_menu, (_('Add'), ID_SLAVEEDITORCONFNODEMENUADD))] |
55 return [] |
58 return [] |
56 |
59 |
57 def RefreshConfNodeMenu(self, confnode_menu): |
60 def RefreshConfNodeMenu(self, confnode_menu): |
58 confnode_menu.Enable(ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, False) |
61 if self.Editable: |
|
62 confnode_menu.Enable(ID_SLAVEEDITORCONFNODEMENUDSOTHERPROFILE, False) |
59 |
63 |
60 def RefreshView(self): |
64 def RefreshView(self): |
61 ConfTreeNodeEditor.RefreshView(self) |
65 ConfTreeNodeEditor.RefreshView(self) |
62 self.ConfNodeEditor.RefreshIndexList() |
66 self.SlaveNodeEditor.RefreshIndexList() |
63 |
67 |
64 def RefreshCurrentIndexList(self): |
68 def RefreshCurrentIndexList(self): |
65 self.RefreshView() |
69 self.RefreshView() |
66 |
70 |
67 def RefreshBufferState(self): |
71 def RefreshBufferState(self): |
71 self.ParentWindow.RefreshPageTitles() |
75 self.ParentWindow.RefreshPageTitles() |
72 |
76 |
73 class MasterViewer(SlaveEditor): |
77 class MasterViewer(SlaveEditor): |
74 SHOW_PARAMS = False |
78 SHOW_PARAMS = False |
75 |
79 |
76 def __init__(self, parent, controler, window): |
80 def __init__(self, parent, controler, window, tagname): |
77 SlaveEditor.__init__(self, parent, controler, window, False) |
81 SlaveEditor.__init__(self, parent, controler, window, False) |
78 |
82 |
|
83 self.TagName = tagname |
|
84 |
|
85 def GetTagName(self): |
|
86 return self.TagName |
|
87 |
|
88 def GetCurrentNodeId(self): |
|
89 return None |
|
90 |
|
91 def GetInstancePath(self): |
|
92 return self.Controler.CTNFullName() + ".generated_master" |
|
93 |
|
94 def GetTitle(self): |
|
95 return self.GetInstancePath() |
|
96 |
|
97 def IsViewing(self, tagname): |
|
98 return self.GetInstancePath() == tagname |