50 CWD = os.path.split(os.path.realpath(__file__))[0] |
50 CWD = os.path.split(os.path.realpath(__file__))[0] |
51 |
51 |
52 [ID_PLCOPENEDITOR, ID_PLCOPENEDITORTREENOTEBOOK, |
52 [ID_PLCOPENEDITOR, ID_PLCOPENEDITORTREENOTEBOOK, |
53 ID_PLCOPENEDITORTYPESTREE, ID_PLCOPENEDITORINSTANCESTREE, |
53 ID_PLCOPENEDITORTYPESTREE, ID_PLCOPENEDITORINSTANCESTREE, |
54 ID_PLCOPENEDITORMAINSPLITTER, ID_PLCOPENEDITORSECONDSPLITTER, |
54 ID_PLCOPENEDITORMAINSPLITTER, ID_PLCOPENEDITORSECONDSPLITTER, |
55 ID_PLCOPENEDITOREDITORPANEL, ID_PLCOPENEDITORTABSOPENED, |
55 ID_PLCOPENEDITORTHIRDSPLITTER, ID_PLCOPENEDITORLIBRARYPANEL, |
|
56 ID_PLCOPENEDITORLIBRARYTREE, ID_PLCOPENEDITORLIBRARYCOMMENT, |
|
57 ID_PLCOPENEDITORTABSOPENED, ID_PLCOPENEDITORTABSOPENED, |
56 ID_PLCOPENEDITORTOOLBAR, ID_PLCOPENEDITORDEFAULTTOOLBAR, |
58 ID_PLCOPENEDITORTOOLBAR, ID_PLCOPENEDITORDEFAULTTOOLBAR, |
57 ID_PLCOPENEDITORSFCTOOLBAR, ID_PLCOPENEDITORFBDTOOLBAR, |
59 ID_PLCOPENEDITORSFCTOOLBAR, ID_PLCOPENEDITORFBDTOOLBAR, |
58 ID_PLCOPENEDITORLDTOOLBAR, |
60 ID_PLCOPENEDITORLDTOOLBAR, |
59 ] = [wx.NewId() for _init_ctrls in range(13)] |
61 ] = [wx.NewId() for _init_ctrls in range(17)] |
60 |
62 |
61 [ID_PLCOPENEDITORFILEMENUGENERATE, |
63 [ID_PLCOPENEDITORFILEMENUGENERATE, |
62 ] = [wx.NewId() for _init_coll_FileMenu_Items in range(1)] |
64 ] = [wx.NewId() for _init_coll_FileMenu_Items in range(1)] |
63 |
65 |
64 [ID_PLCOPENEDITOREDITMENUADDDATATYPE, ID_PLCOPENEDITOREDITMENUADDFUNCTION, |
66 [ID_PLCOPENEDITOREDITMENUADDDATATYPE, ID_PLCOPENEDITOREDITMENUADDFUNCTION, |
333 |
335 |
334 self._init_coll_MenuBar_Menus(self.MenuBar) |
336 self._init_coll_MenuBar_Menus(self.MenuBar) |
335 self._init_coll_FileMenu_Items(self.FileMenu) |
337 self._init_coll_FileMenu_Items(self.FileMenu) |
336 self._init_coll_EditMenu_Items(self.EditMenu) |
338 self._init_coll_EditMenu_Items(self.EditMenu) |
337 self._init_coll_HelpMenu_Items(self.HelpMenu) |
339 self._init_coll_HelpMenu_Items(self.HelpMenu) |
|
340 |
|
341 def _init_coll_MainLibrarySizer_Items(self, parent): |
|
342 parent.AddWindow(self.LibraryTree, 0, border=0, flag=wx.GROW) |
|
343 parent.AddSizer(self.LibraryComment, 0, border=0, flag=wx.GROW) |
|
344 |
|
345 def _init_coll_MainLibrarySizer_Growables(self, parent): |
|
346 parent.AddGrowableCol(0) |
|
347 parent.AddGrowableRow(0) |
|
348 |
|
349 def _init_sizers(self): |
|
350 self.MainLibrarySizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
|
351 |
|
352 self._init_coll_MainLibrarySizer_Growables(self.MainLibrarySizer) |
|
353 self._init_coll_MainLibrarySizer_Items(self.MainLibrarySizer) |
|
354 |
|
355 self.LibraryPanel.SetSizer(self.MainLibrarySizer) |
338 |
356 |
339 def _init_ctrls(self, prnt): |
357 def _init_ctrls(self, prnt): |
340 wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name=u'PLCOpenEditor', |
358 wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name=u'PLCOpenEditor', |
341 parent=prnt, pos=wx.DefaultPosition, size=wx.Size(1000, 600), |
359 parent=prnt, pos=wx.DefaultPosition, size=wx.Size(1000, 600), |
342 style=wx.DEFAULT_FRAME_STYLE, title=u'PLCOpenEditor') |
360 style=wx.DEFAULT_FRAME_STYLE, title=u'PLCOpenEditor') |
428 size=wx.Size(0, 0), style=wx.SP_3D) |
446 size=wx.Size(0, 0), style=wx.SP_3D) |
429 self.SecondSplitter.SetMinimumPaneSize(1) |
447 self.SecondSplitter.SetMinimumPaneSize(1) |
430 |
448 |
431 self.MainSplitter.SplitVertically(self.TreeNoteBook, self.SecondSplitter, 200) |
449 self.MainSplitter.SplitVertically(self.TreeNoteBook, self.SecondSplitter, 200) |
432 |
450 |
|
451 self.VariablePanelIndexer = VariablePanelIndexer(self.SecondSplitter, self, self.Controler) |
|
452 |
|
453 self.ThirdSplitter = wx.SplitterWindow(id=ID_PLCOPENEDITORTHIRDSPLITTER, |
|
454 name='ThirdSplitter', parent=self.SecondSplitter, point=wx.Point(0, 0), |
|
455 size=wx.Size(0, 0), style=wx.SP_3D) |
|
456 self.ThirdSplitter.SetMinimumPaneSize(1) |
|
457 |
|
458 self.SecondSplitter.SplitHorizontally(self.ThirdSplitter, self.VariablePanelIndexer, -200) |
|
459 |
433 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
460 self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED, |
434 name='TabsOpened', parent=self.SecondSplitter, pos=wx.Point(0, |
461 name='TabsOpened', parent=self.SecondSplitter, pos=wx.Point(0, |
435 0), size=wx.Size(0, 0), style=0) |
462 0), size=wx.Size(0, 0), style=0) |
436 if wx.VERSION >= (2, 6, 0): |
463 if wx.VERSION >= (2, 6, 0): |
437 self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, |
464 self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, |
438 self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED) |
465 self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED) |
439 else: |
466 else: |
440 wx.EVT_NOTEBOOK_PAGE_CHANGED(self.TabsOpened, ID_PLCOPENEDITORTABSOPENED, |
467 wx.EVT_NOTEBOOK_PAGE_CHANGED(self.TabsOpened, ID_PLCOPENEDITORTABSOPENED, |
441 self.OnPouSelectedChanged) |
468 self.OnPouSelectedChanged) |
442 else: |
469 |
|
470 self.LibraryPanel = wx.Panel(id=ID_PLCOPENEDITORLIBRARYPANEL, |
|
471 name='LibraryPanel', parent=self.ThirdSplitter, pos=wx.Point(0, |
|
472 0), size=wx.Size(0, 0), style=wx.SUNKEN_BORDER) |
|
473 |
|
474 self.ThirdSplitter.SplitVertically(self.TabsOpened, self.LibraryPanel, -250) |
|
475 else: |
|
476 self.VariablePanelIndexer = VariablePanelIndexer(self, self, self.Controler) |
|
477 self.AUIManager.AddPane(self.VariablePanelIndexer, wx.aui.AuiPaneInfo().Caption("Variables").Bottom().Layer(0).BestSize(wx.Size(800, 200)).CloseButton(False)) |
|
478 |
443 self.TabsOpened = wx.aui.AuiNotebook(self) |
479 self.TabsOpened = wx.aui.AuiNotebook(self) |
444 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
480 self.TabsOpened.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, |
445 self.OnPouSelectedChanged) |
481 self.OnPouSelectedChanged) |
446 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane()) |
482 self.AUIManager.AddPane(self.TabsOpened, wx.aui.AuiPaneInfo().CentrePane()) |
447 |
483 |
448 if wx.VERSION < (2, 8, 0): |
484 self.LibraryPanel = wx.Panel(id=ID_PLCOPENEDITORLIBRARYPANEL, |
449 self.VariablePanelIndexer = VariablePanelIndexer(self.SecondSplitter, self, self.Controler) |
485 name='LibraryPanel', parent=self, pos=wx.Point(0, |
450 |
486 0), size=wx.Size(0, 0), style=0) |
451 self.SecondSplitter.SplitHorizontally(self.TabsOpened, self.VariablePanelIndexer, -200) |
487 self.AUIManager.AddPane(self.LibraryPanel, wx.aui.AuiPaneInfo().Caption("Library").Right().Layer(0).BestSize(wx.Size(250, 400)).CloseButton(False)) |
452 else: |
488 |
453 self.VariablePanelIndexer = VariablePanelIndexer(self, self, self.Controler) |
|
454 self.AUIManager.AddPane(self.VariablePanelIndexer, wx.aui.AuiPaneInfo().Caption("Variables").Bottom().Layer(0).BestSize(wx.Size(800, 200)).CloseButton(False)) |
|
455 |
|
456 self.AUIManager.Update() |
489 self.AUIManager.Update() |
|
490 |
|
491 if wx.Platform == '__WXMSW__': |
|
492 treestyle = wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER |
|
493 else: |
|
494 treestyle = wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_SINGLE|wx.SUNKEN_BORDER |
|
495 self.LibraryTree = wx.TreeCtrl(id=ID_PLCOPENEDITORLIBRARYTREE, |
|
496 name='LibraryTree', parent=self.LibraryPanel, |
|
497 pos=wx.Point(0, 0), size=wx.Size(0, 0), |
|
498 style=treestyle) |
|
499 self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnLibraryTreeItemSelected, |
|
500 id=ID_PLCOPENEDITORLIBRARYTREE) |
|
501 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnLibraryTreeBeginDrag, |
|
502 id=ID_PLCOPENEDITORLIBRARYTREE) |
|
503 |
|
504 self.LibraryComment = wx.TextCtrl(id=ID_PLCOPENEDITORLIBRARYCOMMENT, |
|
505 name='LibraryComment', parent=self.LibraryPanel, |
|
506 pos=wx.Point(0, 0), size=wx.Size(0, 60), |
|
507 style=wx.TE_READONLY|wx.TE_MULTILINE) |
|
508 |
|
509 self._init_sizers() |
457 |
510 |
458 def __init__(self, parent, controler = None, fileOpen = None): |
511 def __init__(self, parent, controler = None, fileOpen = None): |
459 self.ModeSolo = controler == None |
512 self.ModeSolo = controler == None |
460 if self.ModeSolo: |
513 if self.ModeSolo: |
461 self.Controler = PLCControler() |
514 self.Controler = PLCControler() |
1095 self.SetPageBitmap(idx, GenerateBitmap("DATATYPE")) |
1157 self.SetPageBitmap(idx, GenerateBitmap("DATATYPE")) |
1096 self.TabsOpened.SetPageText(idx, "-".join(words[1:])) |
1158 self.TabsOpened.SetPageText(idx, "-".join(words[1:])) |
1097 |
1159 |
1098 |
1160 |
1099 #------------------------------------------------------------------------------- |
1161 #------------------------------------------------------------------------------- |
1100 # Project Tree Management Functions |
1162 # Types Tree Management Functions |
1101 #------------------------------------------------------------------------------- |
1163 #------------------------------------------------------------------------------- |
1102 |
1164 |
1103 def RefreshTypesTree(self): |
1165 def RefreshTypesTree(self): |
1104 infos = self.Controler.GetProjectInfos() |
1166 infos = self.Controler.GetProjectInfos() |
1105 root = self.TypesTree.GetRootItem() |
1167 root = self.TypesTree.GetRootItem() |
1106 if not root.IsOk(): |
1168 if not root.IsOk(): |
1107 root = self.TypesTree.AddRoot(infos["name"]) |
1169 root = self.TypesTree.AddRoot(infos["name"]) |
1108 self.GenerateTypesTreeBranch(root, infos) |
1170 self.GenerateTypesTreeBranch(root, infos) |
1109 self.TypesTree.Expand(self.TypesTree.GetRootItem()) |
1171 self.TypesTree.Expand(root) |
1110 |
1172 |
1111 def GenerateTypesTreeBranch(self, root, infos, topology=False): |
1173 def GenerateTypesTreeBranch(self, root, infos, topology=False): |
1112 to_delete = [] |
1174 to_delete = [] |
1113 self.TypesTree.SetItemText(root, infos["name"]) |
1175 self.TypesTree.SetItemText(root, infos["name"]) |
1114 self.TypesTree.SetPyData(root, infos["type"]) |
1176 self.TypesTree.SetPyData(root, infos["type"]) |
1575 self.PopupMenu(menu) |
1637 self.PopupMenu(menu) |
1576 event.Skip() |
1638 event.Skip() |
1577 |
1639 |
1578 |
1640 |
1579 #------------------------------------------------------------------------------- |
1641 #------------------------------------------------------------------------------- |
1580 # Topology Tree Management Functions |
1642 # Instances Tree Management Functions |
1581 #------------------------------------------------------------------------------- |
1643 #------------------------------------------------------------------------------- |
1582 |
1644 |
1583 def RefreshInstancesTree(self): |
1645 def RefreshInstancesTree(self): |
1584 infos = self.Controler.GetProjectTopology() |
1646 infos = self.Controler.GetProjectTopology() |
1585 root = self.InstancesTree.GetRootItem() |
1647 root = self.InstancesTree.GetRootItem() |
1586 if not root.IsOk(): |
1648 if not root.IsOk(): |
1587 root = self.InstancesTree.AddRoot(infos["name"]) |
1649 root = self.InstancesTree.AddRoot(infos["name"]) |
1588 self.GenerateInstancesTreeBranch(root, infos) |
1650 self.GenerateInstancesTreeBranch(root, infos) |
1589 self.InstancesTree.Expand(self.InstancesTree.GetRootItem()) |
1651 self.InstancesTree.Expand(root) |
1590 |
1652 |
1591 def GenerateInstancesTreeBranch(self, root, infos): |
1653 def GenerateInstancesTreeBranch(self, root, infos): |
1592 to_delete = [] |
1654 to_delete = [] |
1593 if infos.get("elmt_type", None) is not None: |
1655 if infos.get("elmt_type", None) is not None: |
1594 self.InstancesTree.SetItemText(root, "%s(%s)"%(infos["name"], infos["elmt_type"])) |
1656 self.InstancesTree.SetItemText(root, "%s(%s)"%(infos["name"], infos["elmt_type"])) |
1611 while item.IsOk(): |
1673 while item.IsOk(): |
1612 to_delete.append(item) |
1674 to_delete.append(item) |
1613 item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie) |
1675 item, root_cookie = self.InstancesTree.GetNextChild(root, root_cookie) |
1614 for item in to_delete: |
1676 for item in to_delete: |
1615 self.InstancesTree.Delete(item) |
1677 self.InstancesTree.Delete(item) |
|
1678 |
|
1679 #------------------------------------------------------------------------------- |
|
1680 # Library Tree Management Functions |
|
1681 #------------------------------------------------------------------------------- |
|
1682 |
|
1683 def RefreshLibraryTree(self): |
|
1684 to_delete = [] |
|
1685 blocktypes = self.Controler.GetBlockTypes() |
|
1686 if wx.Platform == '__WXMSW__': |
|
1687 root = self.LibraryTree.AddRoot("Block Types") |
|
1688 self.TypeTree.SetPyData(root, {"type" : CATEGORY}) |
|
1689 else: |
|
1690 root = self.LibraryTree.AddRoot("") |
|
1691 if wx.VERSION >= (2, 6, 0): |
|
1692 category_item, root_cookie = self.LibraryTree.GetFirstChild(root) |
|
1693 else: |
|
1694 category_item, root_cookie = self.LibraryTree.GetFirstChild(root, 0) |
|
1695 for category in blocktypes: |
|
1696 print category["name"] |
|
1697 if not category_item.IsOk(): |
|
1698 category_item = self.LibraryTree.AppendItem(root, category["name"]) |
|
1699 if wx.Platform != '__WXMSW__': |
|
1700 category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie) |
|
1701 else: |
|
1702 self.LibraryTree.SetItemText(category_item, category["name"]) |
|
1703 self.LibraryTree.SetPyData(category_item, {"type" : CATEGORY}) |
|
1704 if wx.VERSION >= (2, 6, 0): |
|
1705 blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item) |
|
1706 else: |
|
1707 blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item, 0) |
|
1708 for blocktype in category["list"]: |
|
1709 if not blocktype_item.IsOk(): |
|
1710 blocktype_item = self.LibraryTree.AppendItem(category_item, blocktype["name"]) |
|
1711 if wx.Platform != '__WXMSW__': |
|
1712 blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie) |
|
1713 else: |
|
1714 self.LibraryTree.SetItemText(blocktype_item, blocktype["name"]) |
|
1715 self.LibraryTree.SetPyData(blocktype_item, {"type" : BLOCK, "block_type" : blocktype["type"], "inputs" : tuple([type for name, type, modifier in blocktype["inputs"]])}) |
|
1716 blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie) |
|
1717 while blocktype_item.IsOk(): |
|
1718 to_delete.append(blocktype_item) |
|
1719 blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie) |
|
1720 category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie) |
|
1721 while category_item.IsOk(): |
|
1722 to_delete.append(category_item) |
|
1723 category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie) |
|
1724 for item in to_delete: |
|
1725 self.LibraryTree.Delete(item) |
|
1726 if wx.Platform == '__WXMSW__': |
|
1727 self.LibraryTree.Expand(root) |
|
1728 |
|
1729 def OnLibraryTreeItemSelected(self, event): |
|
1730 selected = event.GetItem() |
|
1731 pydata = self.LibraryTree.GetPyData(selected) |
|
1732 if pydata["type"] != CATEGORY: |
|
1733 blocktype = self.Controler.GetBlockType(self.LibraryTree.GetItemText(selected), pydata["inputs"]) |
|
1734 if blocktype: |
|
1735 self.LibraryComment.SetValue(blocktype["comment"]) |
|
1736 else: |
|
1737 self.LibraryComment.SetValue("") |
|
1738 else: |
|
1739 self.LibraryComment.SetValue("") |
|
1740 event.Skip() |
|
1741 |
|
1742 def OnLibraryTreeBeginDrag(self, event): |
|
1743 selected = event.GetItem() |
|
1744 pydata = self.LibraryTree.GetPyData(selected) |
|
1745 if selected is not None and pydata["type"] == BLOCK: |
|
1746 data = wx.TextDataObject(str((self.LibraryTree.GetItemText(selected), |
|
1747 pydata["block_type"], "", pydata["inputs"]))) |
|
1748 dragSource = wx.DropSource(self.LibraryTree) |
|
1749 dragSource.SetData(data) |
|
1750 dragSource.DoDragDrop() |
1616 |
1751 |
1617 #------------------------------------------------------------------------------- |
1752 #------------------------------------------------------------------------------- |
1618 # ToolBar Management Functions |
1753 # ToolBar Management Functions |
1619 #------------------------------------------------------------------------------- |
1754 #------------------------------------------------------------------------------- |
1620 |
1755 |
1947 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
2085 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
1948 self.TabsOpened.DeletePage(idx) |
2086 self.TabsOpened.DeletePage(idx) |
1949 self.RefreshTitle() |
2087 self.RefreshTitle() |
1950 self.RefreshEditMenu() |
2088 self.RefreshEditMenu() |
1951 self.RefreshTypesTree() |
2089 self.RefreshTypesTree() |
|
2090 self.RefreshInstancesTree() |
|
2091 self.RefreshLibraryTree() |
1952 self.RefreshToolBar() |
2092 self.RefreshToolBar() |
1953 else: |
2093 else: |
1954 message = wx.MessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wx.OK|wx.ICON_ERROR) |
2094 message = wx.MessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wx.OK|wx.ICON_ERROR) |
1955 message.ShowModal() |
2095 message.ShowModal() |
1956 message.Destroy() |
2096 message.Destroy() |
1957 event.Skip() |
|
1958 |
|
1959 def OnRemoveConfigurationMenu(self, event): |
|
1960 selected = self.TypesTree.GetSelection() |
|
1961 if self.TypesTree.GetPyData(selected) == ITEM_CONFIGURATION: |
|
1962 name = self.TypesTree.GetItemText(selected) |
|
1963 self.Controler.ProjectRemoveConfiguration(name) |
|
1964 tagname = self.Controler.ComputeConfigurationName(name) |
|
1965 idx = self.IsOpened(tagname) |
|
1966 if idx is not None: |
|
1967 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
|
1968 self.TabsOpened.DeletePage(idx) |
|
1969 self.RefreshTitle() |
|
1970 self.RefreshEditMenu() |
|
1971 self.RefreshTypesTree() |
|
1972 event.Skip() |
2097 event.Skip() |
1973 |
2098 |
1974 def OnRemoveTransitionMenu(self, event): |
2099 def OnRemoveTransitionMenu(self, event): |
1975 selected = self.TypesTree.GetSelection() |
2100 selected = self.TypesTree.GetSelection() |
1976 if self.TypesTree.GetPyData(selected) == ITEM_TRANSITION: |
2101 if self.TypesTree.GetPyData(selected) == ITEM_TRANSITION: |
2011 self.RefreshTitle() |
2136 self.RefreshTitle() |
2012 self.RefreshEditMenu() |
2137 self.RefreshEditMenu() |
2013 self.RefreshTypesTree() |
2138 self.RefreshTypesTree() |
2014 event.Skip() |
2139 event.Skip() |
2015 |
2140 |
|
2141 def OnRemoveConfigurationMenu(self, event): |
|
2142 selected = self.TypesTree.GetSelection() |
|
2143 if self.TypesTree.GetPyData(selected) == ITEM_CONFIGURATION: |
|
2144 name = self.TypesTree.GetItemText(selected) |
|
2145 self.Controler.ProjectRemoveConfiguration(name) |
|
2146 tagname = self.Controler.ComputeConfigurationName(name) |
|
2147 idx = self.IsOpened(tagname) |
|
2148 if idx is not None: |
|
2149 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
|
2150 self.TabsOpened.DeletePage(idx) |
|
2151 self.RefreshTitle() |
|
2152 self.RefreshEditMenu() |
|
2153 self.RefreshTypesTree() |
|
2154 self.RefreshInstancesTree() |
|
2155 event.Skip() |
|
2156 |
2016 def OnRemoveResourceMenu(self, event): |
2157 def OnRemoveResourceMenu(self, event): |
2017 selected = self.TypesTree.GetSelection() |
2158 selected = self.TypesTree.GetSelection() |
2018 if self.TypesTree.GetPyData(selected) == ITEM_RESOURCE: |
2159 if self.TypesTree.GetPyData(selected) == ITEM_RESOURCE: |
2019 resource = self.TypesTree.GetItemText(selected) |
2160 resource = self.TypesTree.GetItemText(selected) |
2020 item = self.TypesTree.GetItemParent(selected) |
2161 item = self.TypesTree.GetItemParent(selected) |
3757 new_row["Class"] = self.Filter |
3899 new_row["Class"] = self.Filter |
3758 self.Values.append(new_row) |
3900 self.Values.append(new_row) |
3759 self.SaveValues() |
3901 self.SaveValues() |
3760 self.RefreshValues() |
3902 self.RefreshValues() |
3761 self.RefreshButtons() |
3903 self.RefreshButtons() |
|
3904 self.ParentWindow.RefreshInstancesTree() |
3762 event.Skip() |
3905 event.Skip() |
3763 |
3906 |
3764 def OnDeleteButton(self, event): |
3907 def OnDeleteButton(self, event): |
3765 row = self.Table.GetRow(self.VariablesGrid.GetGridCursorRow()) |
3908 row = self.Table.GetRow(self.VariablesGrid.GetGridCursorRow()) |
3766 self.Values.remove(row) |
3909 self.Values.remove(row) |
3767 self.SaveValues() |
3910 self.SaveValues() |
3768 self.RefreshValues() |
3911 self.RefreshValues() |
3769 self.RefreshButtons() |
3912 self.RefreshButtons() |
|
3913 self.ParentWindow.RefreshInstancesTree() |
3770 event.Skip() |
3914 event.Skip() |
3771 |
3915 |
3772 def OnUpButton(self, event): |
3916 def OnUpButton(self, event): |
3773 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), -1) |
3917 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), -1) |
3774 self.RefreshButtons() |
3918 self.RefreshButtons() |
|
3919 self.ParentWindow.RefreshInstancesTree() |
3775 event.Skip() |
3920 event.Skip() |
3776 |
3921 |
3777 def OnDownButton(self, event): |
3922 def OnDownButton(self, event): |
3778 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1) |
3923 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1) |
3779 self.RefreshButtons() |
3924 self.RefreshButtons() |
|
3925 self.ParentWindow.RefreshInstancesTree() |
3780 event.Skip() |
3926 event.Skip() |
3781 |
3927 |
3782 def OnVariablesGridCellChange(self, event): |
3928 def OnVariablesGridCellChange(self, event): |
3783 row, col = event.GetRow(), event.GetCol() |
3929 row, col = event.GetRow(), event.GetCol() |
3784 colname = self.Table.GetColLabelValue(col) |
3930 colname = self.Table.GetColLabelValue(col) |
3811 self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value) |
3957 self.Controler.UpdateEditedElementUsedVariable(self.TagName, old_value, value) |
3812 self.Controler.BufferProject() |
3958 self.Controler.BufferProject() |
3813 self.ParentWindow.RefreshEditor(variablepanel = False) |
3959 self.ParentWindow.RefreshEditor(variablepanel = False) |
3814 self.ParentWindow.RefreshTitle() |
3960 self.ParentWindow.RefreshTitle() |
3815 self.ParentWindow.RefreshEditMenu() |
3961 self.ParentWindow.RefreshEditMenu() |
|
3962 self.ParentWindow.RefreshInstancesTree() |
3816 event.Skip() |
3963 event.Skip() |
3817 else: |
3964 else: |
3818 self.SaveValues() |
3965 self.SaveValues() |
3819 if colname == "Class": |
3966 if colname == "Class": |
3820 self.Table.ResetView(self.VariablesGrid) |
3967 self.Table.ResetView(self.VariablesGrid) |
|
3968 self.ParentWindow.RefreshInstancesTree() |
3821 event.Skip() |
3969 event.Skip() |
3822 |
3970 |
3823 def OnVariablesGridEditorShown(self, event): |
3971 def OnVariablesGridEditorShown(self, event): |
3824 row, col = event.GetRow(), event.GetCol() |
3972 row, col = event.GetRow(), event.GetCol() |
3825 if self.Table.GetColLabelValue(col) == "Type": |
3973 if self.Table.GetColLabelValue(col) == "Type": |