409 self.InstancesTree = wx.TreeCtrl(id=ID_PLCOPENEDITORINSTANCESTREE, |
410 self.InstancesTree = wx.TreeCtrl(id=ID_PLCOPENEDITORINSTANCESTREE, |
410 name='InstancesTree', parent=self.TreeNoteBook, |
411 name='InstancesTree', parent=self.TreeNoteBook, |
411 pos=wx.Point(0, 0), size=wx.Size(0, 0), |
412 pos=wx.Point(0, 0), size=wx.Size(0, 0), |
412 style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
413 style=wx.TR_HAS_BUTTONS|wx.TR_SINGLE|wx.SUNKEN_BORDER) |
413 if self.Debug: |
414 if self.Debug: |
|
415 if wx.VERSION >= (2, 6, 0): |
|
416 self.InstancesTree.Bind(wx.EVT_RIGHT_UP, self.OnInstancesTreeRightUp) |
|
417 else: |
|
418 wx.EVT_RIGHT_UP(self.InstancesTree, self.OnInstancesTreeRightUp) |
414 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnInstancesTreeBeginDrag, |
419 self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnInstancesTreeBeginDrag, |
415 id=ID_PLCOPENEDITORINSTANCESTREE) |
420 id=ID_PLCOPENEDITORINSTANCESTREE) |
416 self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnInstancesTreeItemActivated, |
421 self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnInstancesTreeItemActivated, |
417 id=ID_PLCOPENEDITORINSTANCESTREE) |
422 id=ID_PLCOPENEDITORINSTANCESTREE) |
418 |
423 |
1818 new_window.SetKeywords(ST_KEYWORDS) |
1823 new_window.SetKeywords(ST_KEYWORDS) |
1819 self.TabsOpened.AddPage(new_window, "") |
1824 self.TabsOpened.AddPage(new_window, "") |
1820 new_window.RefreshView() |
1825 new_window.RefreshView() |
1821 new_window.SetFocus() |
1826 new_window.SetFocus() |
1822 self.RefreshPageTitles() |
1827 self.RefreshPageTitles() |
1823 event.Skip() |
1828 if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE: |
|
1829 var_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (") |
|
1830 var_type = var_type.split(")")[0] |
|
1831 |
|
1832 if self.Controler.IsOfType(var_type, "ANY_NUM", self.Debug) or\ |
|
1833 self.Controler.IsOfType(var_type, "ANY_BIT", self.Debug): |
|
1834 parent_item = self.InstancesTree.GetItemParent(selected_item) |
|
1835 while self.InstancesTree.GetPyData(parent_item)[0] != ITEM_PROJECT: |
|
1836 parent_name = self.InstancesTree.GetItemText(parent_item).split(" (")[0] |
|
1837 var_path = "%s.%s"%(parent_name, var_path) |
|
1838 parent_item = self.InstancesTree.GetItemParent(parent_item) |
|
1839 |
|
1840 new_window = GraphicViewer(self.TabsOpened, self, self.Controler, var_path) |
|
1841 self.TabsOpened.AddPage(new_window, "") |
|
1842 new_window.SetFocus() |
|
1843 self.RefreshPageTitles() |
|
1844 event.Skip() |
|
1845 |
|
1846 def OnInstancesTreeRightUp(self, event): |
|
1847 if wx.Platform == '__WXMSW__': |
|
1848 selected_item = event.GetItem() |
|
1849 else: |
|
1850 selected_item = self.InstancesTree.GetSelection() |
|
1851 selected_infos = self.InstancesTree.GetPyData(selected_item) |
|
1852 if selected_item is not None and selected_infos[0] in ITEMS_VARIABLE: |
|
1853 var_path, var_type = self.InstancesTree.GetItemText(selected_item).split(" (") |
|
1854 var_type = var_type.split(")")[0] |
|
1855 |
|
1856 if self.Controler.IsOfType(var_type, "ANY_NUM", self.Debug) or\ |
|
1857 self.Controler.IsOfType(var_type, "ANY_BIT", self.Debug): |
|
1858 parent_item = self.InstancesTree.GetItemParent(selected_item) |
|
1859 while self.InstancesTree.GetPyData(parent_item)[0] != ITEM_PROJECT: |
|
1860 parent_name = self.InstancesTree.GetItemText(parent_item).split(" (")[0] |
|
1861 var_path = "%s.%s"%(parent_name, var_path) |
|
1862 parent_item = self.InstancesTree.GetItemParent(parent_item) |
|
1863 |
|
1864 menu = wx.Menu(title='') |
|
1865 new_id = wx.NewId() |
|
1866 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="Graphic Panel") |
|
1867 self.Bind(wx.EVT_MENU, self.AddVariableGraphicFunction(var_path), id=new_id) |
|
1868 new_id = wx.NewId() |
|
1869 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text="CSV Log") |
|
1870 self.PopupMenu(menu) |
|
1871 event.Skip() |
|
1872 |
|
1873 def AddVariableGraphicFunction(self, iec_path): |
|
1874 def AddVariableGraphic(event): |
|
1875 new_window = GraphicViewer(self.TabsOpened, self, self.Controler, iec_path) |
|
1876 self.TabsOpened.AddPage(new_window, "") |
|
1877 new_window.SetFocus() |
|
1878 self.RefreshPageTitles() |
|
1879 event.Skip() |
|
1880 return AddVariableGraphic |
1824 |
1881 |
1825 def SelectInstancesTreeItem(self, root, instancepath): |
1882 def SelectInstancesTreeItem(self, root, instancepath): |
1826 found = False |
1883 found = False |
1827 if self.InstancesTree is not None: |
1884 if self.InstancesTree is not None: |
1828 paths = instancepath.split(".", 1) |
1885 paths = instancepath.split(".", 1) |