350 def _init_coll_AddMenu_Items(self, parent): |
350 def _init_coll_AddMenu_Items(self, parent): |
351 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
351 IDEFrame._init_coll_AddMenu_Items(self, parent, False) |
352 new_id = wx.NewId() |
352 new_id = wx.NewId() |
353 AppendMenu(parent, help='', id=new_id, |
353 AppendMenu(parent, help='', id=new_id, |
354 kind=wx.ITEM_NORMAL, text=_(u'&Resource')) |
354 kind=wx.ITEM_NORMAL, text=_(u'&Resource')) |
|
355 self.Bind(wx.EVT_MENU, self.AddResourceMenu, id=new_id) |
355 for name, XSDClass, help in ProjectController.CTNChildrenTypes: |
356 for name, XSDClass, help in ProjectController.CTNChildrenTypes: |
356 new_id = wx.NewId() |
357 new_id = wx.NewId() |
357 AppendMenu(parent, help='', id=new_id, |
358 AppendMenu(parent, help='', id=new_id, |
358 kind=wx.ITEM_NORMAL, text=help) |
359 kind=wx.ITEM_NORMAL, text=help) |
359 self.Bind(wx.EVT_MENU, self._GetAddConfNodeFunction(name), id=new_id) |
360 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name), id=new_id) |
360 |
361 |
361 def _init_coll_HelpMenu_Items(self, parent): |
362 def _init_coll_HelpMenu_Items(self, parent): |
362 parent.Append(help='', id=wx.ID_ABOUT, |
363 parent.Append(help='', id=wx.ID_ABOUT, |
363 kind=wx.ITEM_NORMAL, text=_(u'About')) |
364 kind=wx.ITEM_NORMAL, text=_(u'About')) |
364 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
365 self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) |
732 self.MenuBar.UpdateMenus() |
733 self.MenuBar.UpdateMenus() |
733 |
734 |
734 def RefreshAll(self): |
735 def RefreshAll(self): |
735 self.RefreshStatusToolBar() |
736 self.RefreshStatusToolBar() |
736 |
737 |
737 def _GetAddConfNodeFunction(self, name, confnode=None): |
|
738 def OnConfNodeMenu(event): |
|
739 wx.CallAfter(self.AddConfNode, name, confnode) |
|
740 return OnConfNodeMenu |
|
741 |
|
742 def GetMenuCallBackFunction(self, method): |
738 def GetMenuCallBackFunction(self, method): |
743 """ Generate the callbackfunc for a given CTR method""" |
739 """ Generate the callbackfunc for a given CTR method""" |
744 def OnMenu(event): |
740 def OnMenu(event): |
745 # Disable button to prevent re-entrant call |
741 # Disable button to prevent re-entrant call |
746 event.GetEventObject().Disable() |
742 event.GetEventObject().Disable() |
908 confnode = item_infos["confnode"] |
904 confnode = item_infos["confnode"] |
909 if confnode is not None and len(confnode.CTNChildrenTypes) > 0: |
905 if confnode is not None and len(confnode.CTNChildrenTypes) > 0: |
910 for name, XSDClass, help in confnode.CTNChildrenTypes: |
906 for name, XSDClass, help in confnode.CTNChildrenTypes: |
911 new_id = wx.NewId() |
907 new_id = wx.NewId() |
912 confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name) |
908 confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name) |
913 self.Bind(wx.EVT_MENU, self._GetAddConfNodeFunction(name, confnode), id=new_id) |
909 self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name, confnode), id=new_id) |
914 |
910 |
915 new_id = wx.NewId() |
911 new_id = wx.NewId() |
916 AppendMenu(confnode_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete")) |
912 AppendMenu(confnode_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete")) |
917 self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), id=new_id) |
913 self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), id=new_id) |
918 |
914 |
951 elif words[0] == "R": |
947 elif words[0] == "R": |
952 return self.RecursiveProjectTreeItemSelection(root, [(words[2], ITEM_RESOURCE)]) |
948 return self.RecursiveProjectTreeItemSelection(root, [(words[2], ITEM_RESOURCE)]) |
953 else: |
949 else: |
954 IDEFrame.SelectProjectTreeItem(self, tagname) |
950 IDEFrame.SelectProjectTreeItem(self, tagname) |
955 |
951 |
|
952 def GetAddConfNodeFunction(self, name, confnode=None): |
|
953 def AddConfNodeMenuFunction(event): |
|
954 wx.CallAfter(self.AddConfNode, name, confnode) |
|
955 return AddConfNodeMenuFunction |
|
956 |
956 def GetDeleteMenuFunction(self, confnode): |
957 def GetDeleteMenuFunction(self, confnode): |
957 def DeleteMenuFunction(event): |
958 def DeleteMenuFunction(event): |
958 wx.CallAfter(self.DeleteConfNode, confnode) |
959 wx.CallAfter(self.DeleteConfNode, confnode) |
959 return DeleteMenuFunction |
960 return DeleteMenuFunction |
960 |
961 |
|
962 def AddResourceMenu(self, event): |
|
963 config_names = self.CTR.GetProjectConfigNames() |
|
964 if len(config_names) > 0: |
|
965 tagname = self.Controler.ProjectAddConfigurationResource(config_names[0]) |
|
966 if tagname is not None: |
|
967 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL) |
|
968 self.EditProjectElement(ITEM_RESOURCE, tagname) |
|
969 |
961 def AddConfNode(self, ConfNodeType, confnode=None): |
970 def AddConfNode(self, ConfNodeType, confnode=None): |
962 if self.CTR.CheckProjectPathPerm(): |
971 if self.CTR.CheckProjectPathPerm(): |
963 dialog = wx.TextEntryDialog(self, _("Please enter a name for confnode:"), _("Add ConfNode"), "", wx.OK|wx.CANCEL) |
972 ConfNodeName = "%s-0" % ConfNodeType |
964 if dialog.ShowModal() == wx.ID_OK: |
973 if confnode is not None: |
965 ConfNodeName = dialog.GetValue() |
974 confnode.CTNAddChild(ConfNodeName, ConfNodeType) |
966 if confnode is not None: |
975 else: |
967 confnode.CTNAddChild(ConfNodeName, ConfNodeType) |
976 self.CTR.CTNAddChild(ConfNodeName, ConfNodeType) |
968 else: |
977 self._Refresh(TITLE, FILEMENU, PROJECTTREE) |
969 self.CTR.CTNAddChild(ConfNodeName, ConfNodeType) |
978 |
970 self._Refresh(TITLE, FILEMENU, PROJECTTREE) |
|
971 dialog.Destroy() |
|
972 |
|
973 def DeleteConfNode(self, confnode): |
979 def DeleteConfNode(self, confnode): |
974 if self.CTR.CheckProjectPathPerm(): |
980 if self.CTR.CheckProjectPathPerm(): |
975 dialog = wx.MessageDialog(self, _("Really delete confnode ?"), _("Remove confnode"), wx.YES_NO|wx.NO_DEFAULT) |
981 dialog = wx.MessageDialog(self, _("Really delete confnode ?"), _("Remove confnode"), wx.YES_NO|wx.NO_DEFAULT) |
976 if dialog.ShowModal() == wx.ID_YES: |
982 if dialog.ShowModal() == wx.ID_YES: |
977 confnode.CTNRemove() |
983 confnode.CTNRemove() |