Beremiz.py
changeset 760 d38560559afb
parent 755 9f5dbd90e1e0
child 761 7788545f4137
equal deleted inserted replaced
758:699a7bad5a8c 760:d38560559afb
   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()