plugger.py
changeset 19 73257cea38bd
parent 18 0fac6d621a24
child 20 d3cb5020997b
--- a/plugger.py	Mon Sep 03 17:12:43 2007 +0200
+++ b/plugger.py	Tue Sep 04 17:16:42 2007 +0200
@@ -36,7 +36,7 @@
 
     def _AddParamsMembers(self):
         Classes = GenerateClassesFromXSDstring(self.XSD)[0]
-        self.PlugParams = []
+        self.PlugParams = None
         Classes = [(name, XSDclass) for name, XSDclass in Classes.items() if XSDclass.IsBaseClass]
         if len(Classes) == 1:
             name, XSDclass = Classes[0]
@@ -68,15 +68,27 @@
     def OnPlugSave(self):
         return True
 
-    def GetPlugParamsAttributes(self):
-        return self.PlugParams[1].getElementAttributes()
-    
-    def SetPlugParamsAttribute(self, name, value):
-        attr = getattr(self.PlugParams[1], name, None)
-        if isinstance(attr, types.ClassType):
-            attr.SetValue(value)
+    def GetParamsAttributes(self, path = None):
+        if path:
+            parts = path.split(".", 1)
+            if self.MandatoryParams and parts[0] == self.MandatoryParams[0]:
+                return self.MandatoryParams[1].getElementInfos(parts[0], parts[1])
+            elif self.PlugParams and parts[0] == self.PlugParams[0]:
+                return self.PlugParams[1].getElementInfos(parts[0], parts[1])
         else:
-            setattr(self.PlugParams[1], name, value)
+            params = []
+            if self.MandatoryParams:
+                params.append(self.MandatoryParams[1].getElementInfos(self.MandatoryParams[0]))
+            if self.PlugParams:
+                params.append(self.PlugParams[1].getElementInfos(self.PlugParams[0]))
+            return params
+        
+    def SetParamsAttribute(self, path, value):
+        parts = path.split(".", 1)
+        if self.MandatoryParams and parts[0] == self.MandatoryParams[0]:
+            self.MandatoryParams[1].setElementValue(parts[1], value)
+        elif self.PlugParams and parts[0] == self.PlugParams[0]:
+            self.PlugParams[1].setElementValue(parts[1], value)
 
     def PlugRequestSave(self):
         # If plugin do not have corresponding directory
@@ -425,35 +437,6 @@
     def GetProjectPath(self):
         return self.ProjectPath
     
-    def GetTargetTypes(self):
-        return self.BeremizRoot.TargetType.getChoices().keys()
-    
-    def ChangeTargetType(self, target_type):
-        self.BeremizRoot.TargetType.addContent(target_type)
-        
-    def GetTargetAttributes(self):
-        content = self.BeremizRoot.TargetType.getContent()
-        if content:
-            return content["value"].getElementAttributes()
-        else:
-            return []
-        
-    def SetTargetAttribute(self, name, value):
-        content = self.BeremizRoot.TargetType.getContent()
-        if content:
-            attr = getattr(content["value"], name, None)
-            if isinstance(attr, types.ClassType):
-                attr.SetValue(value)
-            else:
-                setattr(content["value"], name, value)
-    
-    def GetTargetType(self):
-        content = self.BeremizRoot.TargetType.getContent()
-        if content:
-            return content["name"]
-        else:
-            return ""
-    
     def NewProject(self, ProjectPath, PLCParams):
         """
         Create a new project in an empty folder