135 def GetDeleteElementFunction(remove_function, parent_type=None, check_function=None): |
135 def GetDeleteElementFunction(remove_function, parent_type=None, check_function=None): |
136 def DeleteElementFunction(self, selected): |
136 def DeleteElementFunction(self, selected): |
137 name = self.ProjectTree.GetItemText(selected) |
137 name = self.ProjectTree.GetItemText(selected) |
138 if check_function is None or check_function(name): |
138 if check_function is None or check_function(name): |
139 if parent_type is not None: |
139 if parent_type is not None: |
140 item_infos = self.ProjectTree.GetPyData(selected) |
140 item_infos = self.ProjectTree.GetItemData(selected) |
141 parent_name = item_infos["tagname"].split("::")[1] |
141 parent_name = item_infos["tagname"].split("::")[1] |
142 remove_function(self.Controler, parent_name, name) |
142 remove_function(self.Controler, parent_name, name) |
143 else: |
143 else: |
144 remove_function(self.Controler, name) |
144 remove_function(self.Controler, name) |
145 return DeleteElementFunction |
145 return DeleteElementFunction |
1291 def OnDeleteMenu(self, event): |
1291 def OnDeleteMenu(self, event): |
1292 window = self.FindFocus() |
1292 window = self.FindFocus() |
1293 if window == self.ProjectTree or window is None: |
1293 if window == self.ProjectTree or window is None: |
1294 selected = self.ProjectTree.GetSelection() |
1294 selected = self.ProjectTree.GetSelection() |
1295 if selected is not None and selected.IsOk(): |
1295 if selected is not None and selected.IsOk(): |
1296 function = self.DeleteFunctions.get(self.ProjectTree.GetPyData(selected)["type"], None) |
1296 function = self.DeleteFunctions.get(self.ProjectTree.GetItemData(selected)["type"], None) |
1297 if function is not None: |
1297 if function is not None: |
1298 function(self, selected) |
1298 function(self, selected) |
1299 self.CloseTabsWithoutModel() |
1299 self.CloseTabsWithoutModel() |
1300 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, |
1300 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, |
1301 POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
1301 POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
1601 |
1601 |
1602 def RecursiveProjectTreeItemSelection(self, root, items): |
1602 def RecursiveProjectTreeItemSelection(self, root, items): |
1603 found = False |
1603 found = False |
1604 item, root_cookie = self.ProjectTree.GetFirstChild(root) |
1604 item, root_cookie = self.ProjectTree.GetFirstChild(root) |
1605 while item is not None and item.IsOk() and not found: |
1605 while item is not None and item.IsOk() and not found: |
1606 item_infos = self.ProjectTree.GetPyData(item) |
1606 item_infos = self.ProjectTree.GetItemData(item) |
1607 if (item_infos["name"].split(":")[-1].strip(), item_infos["type"]) == items[0]: |
1607 if (item_infos["name"].split(":")[-1].strip(), item_infos["type"]) == items[0]: |
1608 if len(items) == 1: |
1608 if len(items) == 1: |
1609 self.SelectedItem = item |
1609 self.SelectedItem = item |
1610 self.ProjectTree.SelectItem(item) |
1610 self.ProjectTree.SelectItem(item) |
1611 self.ResetSelectedItem() |
1611 self.ResetSelectedItem() |
1622 |
1622 |
1623 def OnProjectTreeBeginDrag(self, event): |
1623 def OnProjectTreeBeginDrag(self, event): |
1624 selected_item = (self.SelectedItem |
1624 selected_item = (self.SelectedItem |
1625 if self.SelectedItem is not None |
1625 if self.SelectedItem is not None |
1626 else event.GetItem()) |
1626 else event.GetItem()) |
1627 if selected_item.IsOk() and self.ProjectTree.GetPyData(selected_item)["type"] == ITEM_POU: |
1627 if selected_item.IsOk() and self.ProjectTree.GetItemData(selected_item)["type"] == ITEM_POU: |
1628 block_name = self.ProjectTree.GetItemText(selected_item) |
1628 block_name = self.ProjectTree.GetItemText(selected_item) |
1629 block_type = self.Controler.GetPouType(block_name) |
1629 block_type = self.Controler.GetPouType(block_name) |
1630 if block_type != "program": |
1630 if block_type != "program": |
1631 data = wx.TextDataObject(str((block_name, block_type, ""))) |
1631 data = wx.TextDataObject(str((block_name, block_type, ""))) |
1632 dragSource = wx.DropSource(self.ProjectTree) |
1632 dragSource = wx.DropSource(self.ProjectTree) |
1651 elif new_name.upper() in IEC_KEYWORDS: |
1651 elif new_name.upper() in IEC_KEYWORDS: |
1652 message = _("\"%s\" is a keyword. It can't be used!") % new_name |
1652 message = _("\"%s\" is a keyword. It can't be used!") % new_name |
1653 else: |
1653 else: |
1654 item = event.GetItem() |
1654 item = event.GetItem() |
1655 old_name = self.ProjectTree.GetItemText(item) |
1655 old_name = self.ProjectTree.GetItemText(item) |
1656 item_infos = self.ProjectTree.GetPyData(item) |
1656 item_infos = self.ProjectTree.GetItemData(item) |
1657 if item_infos["type"] == ITEM_PROJECT: |
1657 if item_infos["type"] == ITEM_PROJECT: |
1658 self.Controler.SetProjectProperties(name=new_name) |
1658 self.Controler.SetProjectProperties(name=new_name) |
1659 elif item_infos["type"] == ITEM_DATATYPE: |
1659 elif item_infos["type"] == ITEM_DATATYPE: |
1660 if new_name.upper() in [name.upper() for name in self.Controler.GetProjectDataTypeNames() if name != old_name]: |
1660 if new_name.upper() in [name.upper() for name in self.Controler.GetProjectDataTypeNames() if name != old_name]: |
1661 message = _("\"%s\" data type already exists!") % new_name |
1661 message = _("\"%s\" data type already exists!") % new_name |
1755 self._Refresh(TITLE, FILEMENU, EDITMENU) |
1755 self._Refresh(TITLE, FILEMENU, EDITMENU) |
1756 event.Skip() |
1756 event.Skip() |
1757 |
1757 |
1758 def OnProjectTreeItemActivated(self, event): |
1758 def OnProjectTreeItemActivated(self, event): |
1759 selected = event.GetItem() |
1759 selected = event.GetItem() |
1760 item_infos = self.ProjectTree.GetPyData(selected) |
1760 item_infos = self.ProjectTree.GetItemData(selected) |
1761 if item_infos["type"] == ITEM_PROJECT: |
1761 if item_infos["type"] == ITEM_PROJECT: |
1762 self.EditProjectSettings() |
1762 self.EditProjectSettings() |
1763 else: |
1763 else: |
1764 if item_infos["type"] in [ITEM_DATATYPE, ITEM_POU, |
1764 if item_infos["type"] in [ITEM_DATATYPE, ITEM_POU, |
1765 ITEM_CONFIGURATION, ITEM_RESOURCE, |
1765 ITEM_CONFIGURATION, ITEM_RESOURCE, |
1767 self.EditProjectElement(item_infos["type"], item_infos["tagname"]) |
1767 self.EditProjectElement(item_infos["type"], item_infos["tagname"]) |
1768 event.Skip() |
1768 event.Skip() |
1769 |
1769 |
1770 def ProjectTreeItemSelect(self, select_item): |
1770 def ProjectTreeItemSelect(self, select_item): |
1771 if select_item is not None and select_item.IsOk(): |
1771 if select_item is not None and select_item.IsOk(): |
1772 item_infos = self.ProjectTree.GetPyData(select_item) |
1772 item_infos = self.ProjectTree.GetItemData(select_item) |
1773 if item_infos["type"] in [ITEM_DATATYPE, ITEM_POU, |
1773 if item_infos["type"] in [ITEM_DATATYPE, ITEM_POU, |
1774 ITEM_CONFIGURATION, ITEM_RESOURCE, |
1774 ITEM_CONFIGURATION, ITEM_RESOURCE, |
1775 ITEM_TRANSITION, ITEM_ACTION]: |
1775 ITEM_TRANSITION, ITEM_ACTION]: |
1776 self.EditProjectElement(item_infos["type"], item_infos["tagname"], True) |
1776 self.EditProjectElement(item_infos["type"], item_infos["tagname"], True) |
1777 self.PouInstanceVariablesPanel.SetPouType(item_infos["tagname"]) |
1777 self.PouInstanceVariablesPanel.SetPouType(item_infos["tagname"]) |
1786 def OnProjectTreeMotion(self, event): |
1786 def OnProjectTreeMotion(self, event): |
1787 if not event.Dragging(): |
1787 if not event.Dragging(): |
1788 pt = wx.Point(event.GetX(), event.GetY()) |
1788 pt = wx.Point(event.GetX(), event.GetY()) |
1789 item, flags = self.ProjectTree.HitTest(pt) |
1789 item, flags = self.ProjectTree.HitTest(pt) |
1790 if item is not None and item.IsOk() and flags & wx.TREE_HITTEST_ONITEMLABEL: |
1790 if item is not None and item.IsOk() and flags & wx.TREE_HITTEST_ONITEMLABEL: |
1791 item_infos = self.ProjectTree.GetPyData(item) |
1791 item_infos = self.ProjectTree.GetItemData(item) |
1792 if item != self.LastToolTipItem and self.LastToolTipItem is not None: |
1792 if item != self.LastToolTipItem and self.LastToolTipItem is not None: |
1793 self.ProjectTree.SetToolTip(None) |
1793 self.ProjectTree.SetToolTip(None) |
1794 self.LastToolTipItem = None |
1794 self.LastToolTipItem = None |
1795 if self.LastToolTipItem != item and \ |
1795 if self.LastToolTipItem != item and \ |
1796 item_infos["type"] in [ITEM_POU, ITEM_TRANSITION, ITEM_ACTION]: |
1796 item_infos["type"] in [ITEM_POU, ITEM_TRANSITION, ITEM_ACTION]: |
1896 def OnProjectTreeRightUp(self, event): |
1896 def OnProjectTreeRightUp(self, event): |
1897 item = event.GetItem() |
1897 item = event.GetItem() |
1898 self.ProjectTree.SelectItem(item) |
1898 self.ProjectTree.SelectItem(item) |
1899 self.ProjectTreeItemSelect(item) |
1899 self.ProjectTreeItemSelect(item) |
1900 name = self.ProjectTree.GetItemText(item) |
1900 name = self.ProjectTree.GetItemText(item) |
1901 item_infos = self.ProjectTree.GetPyData(item) |
1901 item_infos = self.ProjectTree.GetItemData(item) |
1902 |
1902 |
1903 menu = None |
1903 menu = None |
1904 if item_infos["type"] in ITEMS_UNEDITABLE + [ITEM_PROJECT]: |
1904 if item_infos["type"] in ITEMS_UNEDITABLE + [ITEM_PROJECT]: |
1905 if item_infos["type"] == ITEM_PROJECT: |
1905 if item_infos["type"] == ITEM_PROJECT: |
1906 name = "Project" |
1906 name = "Project" |
1931 |
1931 |
1932 elif name == "Transitions": |
1932 elif name == "Transitions": |
1933 menu = wx.Menu(title='') |
1933 menu = wx.Menu(title='') |
1934 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Transition")) |
1934 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Transition")) |
1935 parent = self.ProjectTree.GetItemParent(item) |
1935 parent = self.ProjectTree.GetItemParent(item) |
1936 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1936 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1937 while parent_type != ITEM_POU: |
1937 while parent_type != ITEM_POU: |
1938 parent = self.ProjectTree.GetItemParent(parent) |
1938 parent = self.ProjectTree.GetItemParent(parent) |
1939 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1939 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1940 self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.ProjectTree.GetItemText(parent)), new_item) |
1940 self.Bind(wx.EVT_MENU, self.GenerateAddTransitionFunction(self.ProjectTree.GetItemText(parent)), new_item) |
1941 |
1941 |
1942 elif name == "Actions": |
1942 elif name == "Actions": |
1943 menu = wx.Menu(title='') |
1943 menu = wx.Menu(title='') |
1944 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Action")) |
1944 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Action")) |
1945 parent = self.ProjectTree.GetItemParent(item) |
1945 parent = self.ProjectTree.GetItemParent(item) |
1946 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1946 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1947 while parent_type != ITEM_POU: |
1947 while parent_type != ITEM_POU: |
1948 parent = self.ProjectTree.GetItemParent(parent) |
1948 parent = self.ProjectTree.GetItemParent(parent) |
1949 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1949 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1950 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.ProjectTree.GetItemText(parent)), new_item) |
1950 self.Bind(wx.EVT_MENU, self.GenerateAddActionFunction(self.ProjectTree.GetItemText(parent)), new_item) |
1951 |
1951 |
1952 elif name == "Resources": |
1952 elif name == "Resources": |
1953 menu = wx.Menu(title='') |
1953 menu = wx.Menu(title='') |
1954 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Resource")) |
1954 new_item = AppendMenu(menu, help='', kind=wx.ITEM_NORMAL, text=_("Add Resource")) |
1955 parent = self.ProjectTree.GetItemParent(item) |
1955 parent = self.ProjectTree.GetItemParent(item) |
1956 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1956 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1957 while parent_type not in [ITEM_CONFIGURATION, ITEM_PROJECT]: |
1957 while parent_type not in [ITEM_CONFIGURATION, ITEM_PROJECT]: |
1958 parent = self.ProjectTree.GetItemParent(parent) |
1958 parent = self.ProjectTree.GetItemParent(parent) |
1959 parent_type = self.ProjectTree.GetPyData(parent)["type"] |
1959 parent_type = self.ProjectTree.GetItemData(parent)["type"] |
1960 parent_name = None |
1960 parent_name = None |
1961 if parent_type == ITEM_PROJECT: |
1961 if parent_type == ITEM_PROJECT: |
1962 config_names = self.Controler.GetProjectConfigNames() |
1962 config_names = self.Controler.GetProjectConfigNames() |
1963 if len(config_names) > 0: |
1963 if len(config_names) > 0: |
1964 parent_name = config_names[0] |
1964 parent_name = config_names[0] |
2399 return OnAddResourceMenu |
2399 return OnAddResourceMenu |
2400 |
2400 |
2401 def GenerateChangePouTypeFunction(self, name, new_type): |
2401 def GenerateChangePouTypeFunction(self, name, new_type): |
2402 def OnChangePouTypeMenu(event): |
2402 def OnChangePouTypeMenu(event): |
2403 selected = self.ProjectTree.GetSelection() |
2403 selected = self.ProjectTree.GetSelection() |
2404 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU: |
2404 if self.ProjectTree.GetItemData(selected)["type"] == ITEM_POU: |
2405 self.Controler.ProjectChangePouType(name, new_type) |
2405 self.Controler.ProjectChangePouType(name, new_type) |
2406 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, LIBRARYTREE) |
2406 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, LIBRARYTREE) |
2407 return OnChangePouTypeMenu |
2407 return OnChangePouTypeMenu |
2408 |
2408 |
2409 def OnCopyPou(self, event): |
2409 def OnCopyPou(self, event): |
2416 self._Refresh(EDITMENU) |
2416 self._Refresh(EDITMENU) |
2417 |
2417 |
2418 def OnPastePou(self, event): |
2418 def OnPastePou(self, event): |
2419 selected = self.ProjectTree.GetSelection() |
2419 selected = self.ProjectTree.GetSelection() |
2420 |
2420 |
2421 if self.ProjectTree.GetPyData(selected)["type"] != ITEM_PROJECT: |
2421 if self.ProjectTree.GetItemData(selected)["type"] != ITEM_PROJECT: |
2422 pou_type = self.ProjectTree.GetItemText(selected) |
2422 pou_type = self.ProjectTree.GetItemText(selected) |
2423 pou_type = self.UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs' |
2423 pou_type = self.UNEDITABLE_NAMES_DICT[pou_type] # one of 'Functions', 'Function Blocks' or 'Programs' |
2424 pou_type = {'Functions': 'function', 'Function Blocks': 'functionBlock', 'Programs': 'program'}[pou_type] |
2424 pou_type = {'Functions': 'function', 'Function Blocks': 'functionBlock', 'Programs': 'program'}[pou_type] |
2425 else: |
2425 else: |
2426 pou_type = None |
2426 pou_type = None |
2461 self.Controler.PouIsUsed, |
2461 self.Controler.PouIsUsed, |
2462 _("Remove Pou"), name) |
2462 _("Remove Pou"), name) |
2463 |
2463 |
2464 def OnRemoveDataTypeMenu(self, event): |
2464 def OnRemoveDataTypeMenu(self, event): |
2465 selected = self.ProjectTree.GetSelection() |
2465 selected = self.ProjectTree.GetSelection() |
2466 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_DATATYPE: |
2466 if self.ProjectTree.GetItemData(selected)["type"] == ITEM_DATATYPE: |
2467 name = self.ProjectTree.GetItemText(selected) |
2467 name = self.ProjectTree.GetItemText(selected) |
2468 if self.CheckDataTypeIsUsedBeforeDeletion(name): |
2468 if self.CheckDataTypeIsUsedBeforeDeletion(name): |
2469 self.Controler.ProjectRemoveDataType(name) |
2469 self.Controler.ProjectRemoveDataType(name) |
2470 tagname = ComputeDataTypeName(name) |
2470 tagname = ComputeDataTypeName(name) |
2471 idx = self.IsOpened(tagname) |
2471 idx = self.IsOpened(tagname) |
2473 self.TabsOpened.DeletePage(idx) |
2473 self.TabsOpened.DeletePage(idx) |
2474 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE) |
2474 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE) |
2475 |
2475 |
2476 def OnRenamePouMenu(self, event): |
2476 def OnRenamePouMenu(self, event): |
2477 selected = self.ProjectTree.GetSelection() |
2477 selected = self.ProjectTree.GetSelection() |
2478 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU: |
2478 if self.ProjectTree.GetItemData(selected)["type"] == ITEM_POU: |
2479 wx.CallAfter(self.ProjectTree.EditLabel, selected) |
2479 wx.CallAfter(self.ProjectTree.EditLabel, selected) |
2480 |
2480 |
2481 def OnRemovePouMenu(self, event): |
2481 def OnRemovePouMenu(self, event): |
2482 selected = self.ProjectTree.GetSelection() |
2482 selected = self.ProjectTree.GetSelection() |
2483 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_POU: |
2483 if self.ProjectTree.GetItemData(selected)["type"] == ITEM_POU: |
2484 name = self.ProjectTree.GetItemText(selected) |
2484 name = self.ProjectTree.GetItemText(selected) |
2485 if self.CheckPouIsUsedBeforeDeletion(name): |
2485 if self.CheckPouIsUsedBeforeDeletion(name): |
2486 self.Controler.ProjectRemovePou(name) |
2486 self.Controler.ProjectRemovePou(name) |
2487 tagname = ComputePouName(name) |
2487 tagname = ComputePouName(name) |
2488 idx = self.IsOpened(tagname) |
2488 idx = self.IsOpened(tagname) |
2490 self.TabsOpened.DeletePage(idx) |
2490 self.TabsOpened.DeletePage(idx) |
2491 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
2491 self._Refresh(TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE) |
2492 |
2492 |
2493 def OnRemoveTransitionMenu(self, event): |
2493 def OnRemoveTransitionMenu(self, event): |
2494 selected = self.ProjectTree.GetSelection() |
2494 selected = self.ProjectTree.GetSelection() |
2495 item_infos = self.ProjectTree.GetPyData(selected) |
2495 item_infos = self.ProjectTree.GetItemData(selected) |
2496 if item_infos["type"] == ITEM_TRANSITION: |
2496 if item_infos["type"] == ITEM_TRANSITION: |
2497 transition = self.ProjectTree.GetItemText(selected) |
2497 transition = self.ProjectTree.GetItemText(selected) |
2498 pou_name = item_infos["tagname"].split("::")[1] |
2498 pou_name = item_infos["tagname"].split("::")[1] |
2499 self.Controler.ProjectRemovePouTransition(pou_name, transition) |
2499 self.Controler.ProjectRemovePouTransition(pou_name, transition) |
2500 tagname = ComputePouTransitionName(pou_name, transition) |
2500 tagname = ComputePouTransitionName(pou_name, transition) |
2503 self.TabsOpened.DeletePage(idx) |
2503 self.TabsOpened.DeletePage(idx) |
2504 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE) |
2504 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE) |
2505 |
2505 |
2506 def OnRemoveActionMenu(self, event): |
2506 def OnRemoveActionMenu(self, event): |
2507 selected = self.ProjectTree.GetSelection() |
2507 selected = self.ProjectTree.GetSelection() |
2508 item_infos = self.ProjectTree.GetPyData(selected) |
2508 item_infos = self.ProjectTree.GetItemData(selected) |
2509 if item_infos["type"] == ITEM_ACTION: |
2509 if item_infos["type"] == ITEM_ACTION: |
2510 action = self.ProjectTree.GetItemText(selected) |
2510 action = self.ProjectTree.GetItemText(selected) |
2511 pou_name = item_infos["tagname"].split("::")[1] |
2511 pou_name = item_infos["tagname"].split("::")[1] |
2512 self.Controler.ProjectRemovePouAction(pou_name, action) |
2512 self.Controler.ProjectRemovePouAction(pou_name, action) |
2513 tagname = ComputePouActionName(pou_name, action) |
2513 tagname = ComputePouActionName(pou_name, action) |
2516 self.TabsOpened.DeletePage(idx) |
2516 self.TabsOpened.DeletePage(idx) |
2517 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE) |
2517 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE) |
2518 |
2518 |
2519 def OnRemoveConfigurationMenu(self, event): |
2519 def OnRemoveConfigurationMenu(self, event): |
2520 selected = self.ProjectTree.GetSelection() |
2520 selected = self.ProjectTree.GetSelection() |
2521 if self.ProjectTree.GetPyData(selected)["type"] == ITEM_CONFIGURATION: |
2521 if self.ProjectTree.GetItemData(selected)["type"] == ITEM_CONFIGURATION: |
2522 name = self.ProjectTree.GetItemText(selected) |
2522 name = self.ProjectTree.GetItemText(selected) |
2523 self.Controler.ProjectRemoveConfiguration(name) |
2523 self.Controler.ProjectRemoveConfiguration(name) |
2524 tagname = ComputeConfigurationName(name) |
2524 tagname = ComputeConfigurationName(name) |
2525 idx = self.IsOpened(tagname) |
2525 idx = self.IsOpened(tagname) |
2526 if idx is not None: |
2526 if idx is not None: |
2527 self.TabsOpened.DeletePage(idx) |
2527 self.TabsOpened.DeletePage(idx) |
2528 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL) |
2528 self._Refresh(TITLE, FILEMENU, EDITMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL) |
2529 |
2529 |
2530 def OnRemoveResourceMenu(self, event): |
2530 def OnRemoveResourceMenu(self, event): |
2531 selected = self.ProjectTree.GetSelection() |
2531 selected = self.ProjectTree.GetSelection() |
2532 item_infos = self.ProjectTree.GetPyData(selected) |
2532 item_infos = self.ProjectTree.GetItemData(selected) |
2533 if item_infos["type"] == ITEM_RESOURCE: |
2533 if item_infos["type"] == ITEM_RESOURCE: |
2534 resource = self.ProjectTree.GetItemText(selected) |
2534 resource = self.ProjectTree.GetItemText(selected) |
2535 config_name = item_infos["tagname"].split("::")[1] |
2535 config_name = item_infos["tagname"].split("::")[1] |
2536 self.Controler.ProjectRemoveConfigurationResource(config_name, resource) |
2536 self.Controler.ProjectRemoveConfigurationResource(config_name, resource) |
2537 tagname = ComputeConfigurationResourceName(config_name, selected) |
2537 tagname = ComputeConfigurationResourceName(config_name, selected) |