Beremiz.py
changeset 33 59b84ab7bf8b
parent 28 848ce4b1f9e4
child 36 42e391e7c455
equal deleted inserted replaced
32:4bdc888e634b 33:59b84ab7bf8b
   356     def RefreshPluginTree(self):
   356     def RefreshPluginTree(self):
   357         infos = self.PluginRoot.GetPlugInfos()
   357         infos = self.PluginRoot.GetPlugInfos()
   358         root = self.PluginTree.GetRootItem()
   358         root = self.PluginTree.GetRootItem()
   359         if not root.IsOk():
   359         if not root.IsOk():
   360             root = self.PluginTree.AddRoot(infos["name"])
   360             root = self.PluginTree.AddRoot(infos["name"])
       
   361         last_selected = self.GetSelectedPluginName()
   361         self.GenerateTreeBranch(root, infos, True)
   362         self.GenerateTreeBranch(root, infos, True)
   362         self.PluginTree.Expand(self.PluginTree.GetRootItem())
   363         self.PluginTree.Expand(self.PluginTree.GetRootItem())
       
   364         self.SelectedPluginByName(root,last_selected)
   363         self.RefreshPluginParams()
   365         self.RefreshPluginParams()
       
   366 
       
   367     def SelectedPluginByName(self, root, name):
       
   368         toks = name.split('.',1)
       
   369         item, root_cookie = self.PluginTree.GetFirstChild(root)
       
   370         while item.IsOk():
       
   371             if self.PluginTree.GetPyData(item) == toks[0]:
       
   372                 if len(toks)>1:
       
   373                     return self.SelectedPluginByName(item, toks[1])
       
   374                 else:
       
   375                     self.PluginTree.SelectItem(item, True)
       
   376                     return True
       
   377             item, root_cookie = self.PluginTree.GetNextChild(root, root_cookie)
       
   378         return False
   364 
   379 
   365     def GenerateTreeBranch(self, root, infos, first = False):
   380     def GenerateTreeBranch(self, root, infos, first = False):
   366         to_delete = []
   381         to_delete = []
   367         self.PluginTree.SetItemText(root, infos["name"])
   382         self.PluginTree.SetItemText(root, infos["name"])
   368         self.PluginTree.SetPyData(root, infos["type"])
   383         self.PluginTree.SetPyData(root, infos["type"])
   378             to_delete.append(item)
   393             to_delete.append(item)
   379             item, root_cookie = self.PluginTree.GetNextChild(root, root_cookie)
   394             item, root_cookie = self.PluginTree.GetNextChild(root, root_cookie)
   380         for item in to_delete:
   395         for item in to_delete:
   381             self.PluginTree.Delete(item)
   396             self.PluginTree.Delete(item)
   382 
   397 
   383     def GetSelectedPlugin(self):
   398     def GetSelectedPluginName(self):
   384         selected = self.PluginTree.GetSelection()
   399         selected = self.PluginTree.GetSelection()
   385         if not selected.IsOk():
   400         if not selected.IsOk():
   386             return None
   401             return None
   387         if selected == self.PluginTree.GetRootItem():
   402         if selected == self.PluginTree.GetRootItem():
       
   403             return ""
       
   404         else:
       
   405             name = self.PluginTree.GetPyData(selected)
       
   406             item = self.PluginTree.GetItemParent(selected)
       
   407             while item.IsOk() and item != self.PluginTree.GetRootItem():
       
   408                 name = "%s.%s"%(self.PluginTree.GetPyData(item), name)
       
   409                 item = self.PluginTree.GetItemParent(item)
       
   410             return name
       
   411 
       
   412     def GetSelectedPlugin(self):
       
   413         name = self.GetSelectedPluginName()
       
   414         if not name:
       
   415             return None
       
   416         elif name == "":
   388             return self.PluginRoot
   417             return self.PluginRoot
   389         else:
   418         else:
   390             name = self.PluginTree.GetItemText(selected)
       
   391             item = self.PluginTree.GetItemParent(selected)
       
   392             while item.IsOk() and item != self.PluginTree.GetRootItem():
       
   393                 name = "%s.%s"%(self.PluginTree.GetItemText(item), name)
       
   394                 item = self.PluginTree.GetItemParent(item)
       
   395             return self.PluginRoot.GetChildByName(name)
   419             return self.PluginRoot.GetChildByName(name)
   396 
   420 
   397     def OnPluginTreeItemSelected(self, event):
   421     def OnPluginTreeItemSelected(self, event):
   398         wx.CallAfter(self.RefreshPluginParams)
   422         wx.CallAfter(self.RefreshPluginParams)
   399         event.Skip()
   423         event.Skip()