Beremiz.py
changeset 761 7788545f4137
parent 759 8f6ed225f4d8
parent 760 d38560559afb
child 762 aaacc83aa86b
equal deleted inserted replaced
759:8f6ed225f4d8 761:7788545f4137
   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)
   730         self.MenuBar.UpdateMenus()
   731         self.MenuBar.UpdateMenus()
   731     
   732     
   732     def RefreshAll(self):
   733     def RefreshAll(self):
   733         self.RefreshStatusToolBar()
   734         self.RefreshStatusToolBar()
   734     
   735     
   735     def _GetAddConfNodeFunction(self, name, confnode=None):
       
   736         def OnConfNodeMenu(event):
       
   737             wx.CallAfter(self.AddConfNode, name, confnode)
       
   738         return OnConfNodeMenu
       
   739     
       
   740     def GetMenuCallBackFunction(self, method):
   736     def GetMenuCallBackFunction(self, method):
   741         """ Generate the callbackfunc for a given CTR method"""
   737         """ Generate the callbackfunc for a given CTR method"""
   742         def OnMenu(event):
   738         def OnMenu(event):
   743             # Disable button to prevent re-entrant call 
   739             # Disable button to prevent re-entrant call 
   744             event.GetEventObject().Disable()
   740             event.GetEventObject().Disable()
   906             confnode = item_infos["confnode"]
   902             confnode = item_infos["confnode"]
   907             if confnode is not None and len(confnode.CTNChildrenTypes) > 0:
   903             if confnode is not None and len(confnode.CTNChildrenTypes) > 0:
   908                 for name, XSDClass, help in confnode.CTNChildrenTypes:
   904                 for name, XSDClass, help in confnode.CTNChildrenTypes:
   909                     new_id = wx.NewId()
   905                     new_id = wx.NewId()
   910                     confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name)
   906                     confnode_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text=name)
   911                     self.Bind(wx.EVT_MENU, self._GetAddConfNodeFunction(name, confnode), id=new_id)
   907                     self.Bind(wx.EVT_MENU, self.GetAddConfNodeFunction(name, confnode), id=new_id)
   912 
   908 
   913             new_id = wx.NewId()
   909             new_id = wx.NewId()
   914             AppendMenu(confnode_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
   910             AppendMenu(confnode_menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Delete"))
   915             self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), id=new_id)
   911             self.Bind(wx.EVT_MENU, self.GetDeleteMenuFunction(confnode), id=new_id)
   916                 
   912                 
   949                 elif words[0] == "R":
   945                 elif words[0] == "R":
   950                     return self.RecursiveProjectTreeItemSelection(root, [(words[2], ITEM_RESOURCE)])
   946                     return self.RecursiveProjectTreeItemSelection(root, [(words[2], ITEM_RESOURCE)])
   951                 else:
   947                 else:
   952                     IDEFrame.SelectProjectTreeItem(self, tagname)
   948                     IDEFrame.SelectProjectTreeItem(self, tagname)
   953             
   949             
       
   950     def GetAddConfNodeFunction(self, name, confnode=None):
       
   951         def AddConfNodeMenuFunction(event):
       
   952             wx.CallAfter(self.AddConfNode, name, confnode)
       
   953         return AddConfNodeMenuFunction
       
   954     
   954     def GetDeleteMenuFunction(self, confnode):
   955     def GetDeleteMenuFunction(self, confnode):
   955         def DeleteMenuFunction(event):
   956         def DeleteMenuFunction(event):
   956             wx.CallAfter(self.DeleteConfNode, confnode)
   957             wx.CallAfter(self.DeleteConfNode, confnode)
   957         return DeleteMenuFunction
   958         return DeleteMenuFunction
   958     
   959     
       
   960     def AddResourceMenu(self, event):
       
   961         config_names = self.CTR.GetProjectConfigNames()
       
   962         if len(config_names) > 0:
       
   963             tagname = self.Controler.ProjectAddConfigurationResource(config_names[0])
       
   964             if tagname is not None:
       
   965                 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL)
       
   966                 self.EditProjectElement(ITEM_RESOURCE, tagname)
       
   967         
   959     def AddConfNode(self, ConfNodeType, confnode=None):
   968     def AddConfNode(self, ConfNodeType, confnode=None):
   960         if self.CTR.CheckProjectPathPerm():
   969         if self.CTR.CheckProjectPathPerm():
   961             dialog = wx.TextEntryDialog(self, _("Please enter a name for confnode:"), _("Add ConfNode"), "", wx.OK|wx.CANCEL)
   970             ConfNodeName = "%s-0" % ConfNodeType
   962             if dialog.ShowModal() == wx.ID_OK:
   971             if confnode is not None:
   963                 ConfNodeName = dialog.GetValue()
   972                 confnode.CTNAddChild(ConfNodeName, ConfNodeType)
   964                 if confnode is not None:
   973             else:
   965                     confnode.CTNAddChild(ConfNodeName, ConfNodeType)
   974                 self.CTR.CTNAddChild(ConfNodeName, ConfNodeType)
   966                 else:
   975             self._Refresh(TITLE, FILEMENU, PROJECTTREE)
   967                     self.CTR.CTNAddChild(ConfNodeName, ConfNodeType)
   976             
   968                 self._Refresh(TITLE, FILEMENU, PROJECTTREE)
       
   969             dialog.Destroy()
       
   970     
       
   971     def DeleteConfNode(self, confnode):
   977     def DeleteConfNode(self, confnode):
   972         if self.CTR.CheckProjectPathPerm():
   978         if self.CTR.CheckProjectPathPerm():
   973             dialog = wx.MessageDialog(self, _("Really delete confnode ?"), _("Remove confnode"), wx.YES_NO|wx.NO_DEFAULT)
   979             dialog = wx.MessageDialog(self, _("Really delete confnode ?"), _("Remove confnode"), wx.YES_NO|wx.NO_DEFAULT)
   974             if dialog.ShowModal() == wx.ID_YES:
   980             if dialog.ShowModal() == wx.ID_YES:
   975                 confnode.CTNRemove()
   981                 confnode.CTNRemove()