1807 self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), id=new_id) |
1807 self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(name), id=new_id) |
1808 new_id = wx.NewId() |
1808 new_id = wx.NewId() |
1809 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action")) |
1809 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Action")) |
1810 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id) |
1810 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(name), id=new_id) |
1811 menu.AppendSeparator() |
1811 menu.AppendSeparator() |
|
1812 |
1812 new_id = wx.NewId() |
1813 new_id = wx.NewId() |
1813 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Create a new POU from")) |
1814 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Create a new POU from")) |
1814 self.Bind(wx.EVT_MENU, self.OnCreatePouFromMenu, id=new_id) |
1815 self.Bind(wx.EVT_MENU, self.OnCreatePouFromMenu, id=new_id) |
|
1816 |
|
1817 AppendMenu(menu, help='', id=wx.ID_COPY, kind=wx.ITEM_NORMAL, text=_("Copy")) |
|
1818 self.Bind(wx.EVT_MENU, self.OnCopyPou, id=wx.ID_COPY) |
|
1819 |
1815 pou_type = self.Controler.GetPouType(name, self.Debug) |
1820 pou_type = self.Controler.GetPouType(name, self.Debug) |
1816 if pou_type in ["function", "functionBlock"]: |
1821 if pou_type in ["function", "functionBlock"]: |
1817 change_menu = wx.Menu(title='') |
1822 change_menu = wx.Menu(title='') |
1818 if pou_type == "function": |
1823 if pou_type == "function": |
1819 new_id = wx.NewId() |
1824 new_id = wx.NewId() |
1853 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add DataType")) |
1858 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add DataType")) |
1854 self.Bind(wx.EVT_MENU, self.OnAddDataTypeMenu, id=new_id) |
1859 self.Bind(wx.EVT_MENU, self.OnAddDataTypeMenu, id=new_id) |
1855 self.PopupMenu(menu) |
1860 self.PopupMenu(menu) |
1856 elif name in ["Functions", "Function Blocks", "Programs"]: |
1861 elif name in ["Functions", "Function Blocks", "Programs"]: |
1857 menu = wx.Menu(title='') |
1862 menu = wx.Menu(title='') |
|
1863 |
1858 new_id = wx.NewId() |
1864 new_id = wx.NewId() |
1859 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Pou")) |
1865 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Pou")) |
1860 self.Bind(wx.EVT_MENU, self.GenerateAddPouFunction({"Functions" : "function", "Function Blocks" : "functionBlock", "Programs" : "program"}[name]), id=new_id) |
1866 self.Bind(wx.EVT_MENU, self.GenerateAddPouFunction({"Functions" : "function", "Function Blocks" : "functionBlock", "Programs" : "program"}[name]), id=new_id) |
|
1867 |
|
1868 AppendMenu(menu, help='', id=wx.ID_PASTE, kind=wx.ITEM_NORMAL, text=_("Paste")) |
|
1869 self.Bind(wx.EVT_MENU, self.OnPastePou, id=wx.ID_PASTE) |
|
1870 |
|
1871 if self.GetCopyBuffer() is None: |
|
1872 menu.Enable(wx.ID_PASTE, False) |
|
1873 |
1861 self.PopupMenu(menu) |
1874 self.PopupMenu(menu) |
1862 elif name == "Configurations": |
1875 elif name == "Configurations": |
1863 menu = wx.Menu(title='') |
1876 menu = wx.Menu(title='') |
1864 new_id = wx.NewId() |
1877 new_id = wx.NewId() |
1865 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Configuration")) |
1878 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Add Configuration")) |
2476 self.RefreshTypesTree() |
2489 self.RefreshTypesTree() |
2477 self.RefreshLibraryTree() |
2490 self.RefreshLibraryTree() |
2478 self.RefreshToolBar() |
2491 self.RefreshToolBar() |
2479 event.Skip() |
2492 event.Skip() |
2480 |
2493 |
|
2494 def OnCopyPou(self, event): |
|
2495 selected = self.TypesTree.GetSelection() |
|
2496 |
|
2497 pou_name = self.TypesTree.GetItemText(selected) |
|
2498 pou = self.Controler.Project.getpou(pou_name) |
|
2499 |
|
2500 pou_xml = pou.generateXMLText('pou', 0) |
|
2501 self.SetCopyBuffer(pou_xml) |
|
2502 |
|
2503 def OnPastePou(self, event): |
|
2504 selected = self.TypesTree.GetSelection() |
|
2505 |
|
2506 pou_type = self.TypesTree.GetItemText(selected) |
|
2507 pou_type = UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs' |
|
2508 pou_type = {'Functions': 'function', 'Function Blocks': 'functionBlock', 'Programs': 'program'}[pou_type] |
|
2509 |
|
2510 pou_xml = self.GetCopyBuffer() |
|
2511 |
|
2512 result = self.Controler.PastePou(pou_type, pou_xml) |
|
2513 |
|
2514 if result is not None: |
|
2515 message = wx.MessageDialog(self, result, _("Error"), wx.OK|wx.ICON_ERROR) |
|
2516 message.ShowModal() |
|
2517 message.Destroy() |
|
2518 else: |
|
2519 self.RefreshTitle() |
|
2520 self.RefreshEditMenu() |
|
2521 self.RefreshTypesTree() |
|
2522 self.RefreshLibraryTree() |
|
2523 self.RefreshToolBar() |
|
2524 |
2481 #------------------------------------------------------------------------------- |
2525 #------------------------------------------------------------------------------- |
2482 # Remove Project Elements Functions |
2526 # Remove Project Elements Functions |
2483 #------------------------------------------------------------------------------- |
2527 #------------------------------------------------------------------------------- |
2484 |
2528 |
2485 def OnRemoveDataTypeMenu(self, event): |
2529 def OnRemoveDataTypeMenu(self, event): |