PLCOpenEditor.py
changeset 605 279c16d017f3
parent 604 5b42b4401e6b
child 606 d65122c61eaf
equal deleted inserted replaced
604:5b42b4401e6b 605:279c16d017f3
  1909 #-------------------------------------------------------------------------------
  1909 #-------------------------------------------------------------------------------
  1910 #                         Library Tree Management Functions
  1910 #                         Library Tree Management Functions
  1911 #-------------------------------------------------------------------------------
  1911 #-------------------------------------------------------------------------------
  1912 
  1912 
  1913     def RefreshLibraryTree(self):
  1913     def RefreshLibraryTree(self):
  1914         to_delete = []
  1914         if self.Controler is not None:
  1915         blocktypes = self.Controler.GetBlockTypes()
  1915             to_delete = []
  1916         root = self.LibraryTree.GetRootItem()
  1916             blocktypes = self.Controler.GetBlockTypes()
  1917         if not root.IsOk():
  1917             root = self.LibraryTree.GetRootItem()
  1918             root = self.LibraryTree.AddRoot("")
  1918             if not root.IsOk():
  1919         if wx.VERSION >= (2, 6, 0):
  1919                 root = self.LibraryTree.AddRoot("")
  1920             category_item, root_cookie = self.LibraryTree.GetFirstChild(root)
  1920             if wx.VERSION >= (2, 6, 0):
  1921         else:
  1921                 category_item, root_cookie = self.LibraryTree.GetFirstChild(root)
  1922             category_item, root_cookie = self.LibraryTree.GetFirstChild(root, 0)
       
  1923         for category in blocktypes:
       
  1924             category_name = category["name"]
       
  1925             if not category_item.IsOk():
       
  1926                 category_item = self.LibraryTree.AppendItem(root, _(category_name))
       
  1927                 if wx.Platform != '__WXMSW__':
       
  1928                     category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
       
  1929             else:
  1922             else:
  1930                 self.LibraryTree.SetItemText(category_item, _(category_name))
  1923                 category_item, root_cookie = self.LibraryTree.GetFirstChild(root, 0)
  1931             self.LibraryTree.SetPyData(category_item, {"type" : CATEGORY})
  1924             for category in blocktypes:
  1932             if wx.VERSION >= (2, 6, 0):
  1925                 category_name = category["name"]
  1933                 blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item)
  1926                 if not category_item.IsOk():
  1934             else:
  1927                     category_item = self.LibraryTree.AppendItem(root, _(category_name))
  1935                 blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item, 0)        
       
  1936             for blocktype in category["list"]:
       
  1937                 if not blocktype_item.IsOk():
       
  1938                     blocktype_item = self.LibraryTree.AppendItem(category_item, blocktype["name"])
       
  1939                     if wx.Platform != '__WXMSW__':
  1928                     if wx.Platform != '__WXMSW__':
  1940                         blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
  1929                         category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
  1941                 else:
  1930                 else:
  1942                     self.LibraryTree.SetItemText(blocktype_item, blocktype["name"])
  1931                     self.LibraryTree.SetItemText(category_item, _(category_name))
  1943                 self.LibraryTree.SetPyData(blocktype_item, {"type" : BLOCK, "block_type" : blocktype["type"], "inputs" : tuple([type for name, type, modifier in blocktype["inputs"]])})
  1932                 self.LibraryTree.SetPyData(category_item, {"type" : CATEGORY})
  1944                 blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
  1933                 if wx.VERSION >= (2, 6, 0):
  1945             while blocktype_item.IsOk():
  1934                     blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item)
  1946                 to_delete.append(blocktype_item)
  1935                 else:
  1947                 blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
  1936                     blocktype_item, category_cookie = self.LibraryTree.GetFirstChild(category_item, 0)        
  1948             category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
  1937                 for blocktype in category["list"]:
  1949         while category_item.IsOk():
  1938                     if not blocktype_item.IsOk():
  1950             to_delete.append(category_item)
  1939                         blocktype_item = self.LibraryTree.AppendItem(category_item, blocktype["name"])
  1951             category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
  1940                         if wx.Platform != '__WXMSW__':
  1952         for item in to_delete:
  1941                             blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
  1953             self.LibraryTree.Delete(item)
  1942                     else:
       
  1943                         self.LibraryTree.SetItemText(blocktype_item, blocktype["name"])
       
  1944                     self.LibraryTree.SetPyData(blocktype_item, {"type" : BLOCK, "block_type" : blocktype["type"], "inputs" : tuple([type for name, type, modifier in blocktype["inputs"]])})
       
  1945                     blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
       
  1946                 while blocktype_item.IsOk():
       
  1947                     to_delete.append(blocktype_item)
       
  1948                     blocktype_item, category_cookie = self.LibraryTree.GetNextChild(category_item, category_cookie)
       
  1949                 category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
       
  1950             while category_item.IsOk():
       
  1951                 to_delete.append(category_item)
       
  1952                 category_item, root_cookie = self.LibraryTree.GetNextChild(root, root_cookie)
       
  1953             for item in to_delete:
       
  1954                 self.LibraryTree.Delete(item)
  1954 
  1955 
  1955     def OnLibraryTreeItemSelected(self, event):
  1956     def OnLibraryTreeItemSelected(self, event):
  1956         selected = event.GetItem()
  1957         selected = event.GetItem()
  1957         pydata = self.LibraryTree.GetPyData(selected)
  1958         pydata = self.LibraryTree.GetPyData(selected)
  1958         if pydata is not None and pydata["type"] != CATEGORY:
  1959         if pydata is not None and pydata["type"] != CATEGORY: