--- a/Beremiz.py Tue Sep 11 17:27:45 2007 +0200
+++ b/Beremiz.py Tue Sep 11 17:29:27 2007 +0200
@@ -358,10 +358,25 @@
root = self.PluginTree.GetRootItem()
root = self.PluginTree.AddRoot(infos["name"])
+ last_selected = self.GetSelectedPluginName() self.GenerateTreeBranch(root, infos, True)
self.PluginTree.Expand(self.PluginTree.GetRootItem())
+ self.SelectedPluginByName(root,last_selected) self.RefreshPluginParams()
+ def SelectedPluginByName(self, root, name): + toks = name.split('.',1) + item, root_cookie = self.PluginTree.GetFirstChild(root) + if self.PluginTree.GetPyData(item) == toks[0]: + return self.SelectedPluginByName(item, toks[1]) + self.PluginTree.SelectItem(item, True) + item, root_cookie = self.PluginTree.GetNextChild(root, root_cookie) def GenerateTreeBranch(self, root, infos, first = False):
self.PluginTree.SetItemText(root, infos["name"])
@@ -380,18 +395,27 @@
self.PluginTree.Delete(item)
- def GetSelectedPlugin(self):
+ def GetSelectedPluginName(self): selected = self.PluginTree.GetSelection()
if selected == self.PluginTree.GetRootItem():
+ name = self.PluginTree.GetPyData(selected) + item = self.PluginTree.GetItemParent(selected) + while item.IsOk() and item != self.PluginTree.GetRootItem(): + name = "%s.%s"%(self.PluginTree.GetPyData(item), name) + item = self.PluginTree.GetItemParent(item) + def GetSelectedPlugin(self): + name = self.GetSelectedPluginName() - name = self.PluginTree.GetItemText(selected)
- item = self.PluginTree.GetItemParent(selected)
- while item.IsOk() and item != self.PluginTree.GetRootItem():
- name = "%s.%s"%(self.PluginTree.GetItemText(item), name)
- item = self.PluginTree.GetItemParent(item)
return self.PluginRoot.GetChildByName(name)
def OnPluginTreeItemSelected(self, event):
--- a/plugger.py Tue Sep 11 17:27:45 2007 +0200
+++ b/plugger.py Tue Sep 11 17:29:27 2007 +0200
@@ -92,7 +92,7 @@
def SetParamsAttribute(self, path, value, logger):
# Filter IEC_Channel and Name, that have specific behavior
if path == "BaseParams.IEC_Channel":
- return self.FindNewIEC_Channel(value,logger), False
+ return self.FindNewIEC_Channel(value,logger), True elif path == "BaseParams.Name":
res = self.FindNewName(value,logger)
@@ -221,9 +221,13 @@
- for child in self.IterChilds():
- childs.append(child.GetPlugInfos())
- return {"name" : self.BaseParams.getName(), "type" : None, "values" : childs}
+ # reorder childs by IEC_channels + ordered = [(chld.BaseParams.getIEC_Channel(),chld) for chld in self.IterChilds()] + for child in zip(*ordered)[1]: + childs.append(child.GetPlugInfos()) + return {"name" : "%s (%d)"%(self.BaseParams.getName(),self.BaseParams.getIEC_Channel()), "type" : self.BaseParams.getName(), "values" : childs} def FindNewName(self, DesiredName, logger):
@@ -283,7 +287,10 @@
while res in AllChannels: # While channel not free
if res < CurrentChannel: # Want to go down ?
- if res < 0 : return CurrentChannel # Can't go bellow 0, do nothing
+ logger.write_warning("Cannot find lower free IEC channel than %d\n"%CurrentChannel) + return CurrentChannel # Can't go bellow 0, do nothing # Finally set IEC Channel
@@ -549,7 +556,7 @@
for child in self.IterChilds():
childs.append(child.GetPlugInfos())
- return {"name" : os.path.split(self.ProjectPath)[1], "type" : None, "values" : childs}
+ return {"name" : "PLC (%s)"%os.path.split(self.ProjectPath)[1], "type" : None, "values" : childs} def NewProject(self, ProjectPath):