148 from util.ProcessLogger import ProcessLogger |
148 from util.ProcessLogger import ProcessLogger |
149 from controls.LogViewer import LogViewer |
149 from controls.LogViewer import LogViewer |
150 from controls.CustomStyledTextCtrl import CustomStyledTextCtrl |
150 from controls.CustomStyledTextCtrl import CustomStyledTextCtrl |
151 |
151 |
152 from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY, ITEM_PROJECT, ITEM_RESOURCE |
152 from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY, ITEM_PROJECT, ITEM_RESOURCE |
153 from ProjectController import ProjectController, MATIEC_ERROR_MODEL, ITEM_CONFNODE |
153 from ProjectController import ProjectController, GetAddMenuItems, MATIEC_ERROR_MODEL, ITEM_CONFNODE |
154 |
154 |
155 |
155 |
156 MAX_RECENT_PROJECTS = 10 |
156 MAX_RECENT_PROJECTS = 10 |
157 |
157 |
158 if wx.Platform == '__WXMSW__': |
158 if wx.Platform == '__WXMSW__': |
328 (wx.ID_OPEN, "open", _(u'Open'), None), |
328 (wx.ID_OPEN, "open", _(u'Open'), None), |
329 (wx.ID_SAVE, "save", _(u'Save'), None), |
329 (wx.ID_SAVE, "save", _(u'Save'), None), |
330 (wx.ID_SAVEAS, "saveas", _(u'Save As...'), None), |
330 (wx.ID_SAVEAS, "saveas", _(u'Save As...'), None), |
331 (wx.ID_PRINT, "print", _(u'Print'), None)]) |
331 (wx.ID_PRINT, "print", _(u'Print'), None)]) |
332 |
332 |
|
333 def _RecursiveAddMenuItems(self, menu, items): |
|
334 for name, text, help, children in items: |
|
335 new_id = wx.NewId() |
|
336 if len(children) > 0: |
|
337 new_menu = wx.Menu(title='') |
|
338 menu.AppendMenu(new_id, text, new_menu) |
|
339 self._RecursiveAddMenuItems(new_menu, children) |
|
340 else: |
|
341 AppendMenu(menu, help=help, id=new_id, |
|
342 kind=wx.ITEM_NORMAL, text=text) |
|
343 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name), |
|
344 id=new_id) |
|
345 |
333 def _init_coll_AddMenu_Items(self, parent): |
346 def _init_coll_AddMenu_Items(self, parent): |
334 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
347 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
335 |
348 |
336 # Disable add resource until matiec is able to handle multiple ressource definition |
349 # Disable add resource until matiec is able to handle multiple ressource definition |
337 #new_id = wx.NewId() |
350 #new_id = wx.NewId() |
338 #AppendMenu(parent, help='', id=new_id, |
351 #AppendMenu(parent, help='', id=new_id, |
339 # kind=wx.ITEM_NORMAL, text=_(u'&Resource')) |
352 # kind=wx.ITEM_NORMAL, text=_(u'&Resource')) |
340 #self.Bind(wx.EVT_MENU, self.AddResourceMenu, id=new_id) |
353 #self.Bind(wx.EVT_MENU, self.AddResourceMenu, id=new_id) |
341 |
354 |
342 for name, XSDClass, help in ProjectController.CTNChildrenTypes: |
355 self._RecursiveAddMenuItems(parent, GetAddMenuItems()) |
343 new_id = wx.NewId() |
|
344 AppendMenu(parent, help='', id=new_id, |
|
345 kind=wx.ITEM_NORMAL, text=help) |
|
346 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name), id=new_id) |
|
347 |
356 |
348 def _init_coll_HelpMenu_Items(self, parent): |
357 def _init_coll_HelpMenu_Items(self, parent): |
349 parent.Append(help='', id=wx.ID_ABOUT, |
358 parent.Append(help='', id=wx.ID_ABOUT, |
350 kind=wx.ITEM_NORMAL, text=_(u'About')) |
359 kind=wx.ITEM_NORMAL, text=_(u'About')) |
351 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
360 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |