]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Introduce Parameter wrapper class in Python
authorvsr <vsr@opencascade.com>
Mon, 14 Dec 2009 14:23:45 +0000 (14:23 +0000)
committervsr <vsr@opencascade.com>
Mon, 14 Dec 2009 14:23:45 +0000 (14:23 +0000)
src/KERNEL_PY/salome_notebook.py

index c9633b530b1882cb4965eaf2e2b3c462aa15e6d5..112c2120933b2bfebfafa645c8c8b6eabe092cd6 100644 (file)
@@ -37,7 +37,7 @@ class Parameter:
     A wrapper class for the CORBA Parameter object.
     """
 
-    def __init__( self, aName, aNoteBook = None ):
+    def __init__( self, aName, aValue = None, aNoteBook = None ):
         """
         Constructor
         """
@@ -47,9 +47,16 @@ class Parameter:
         if not aNoteBook:
             aNoteBook = Notebook( salome.myStudy )
         self.myNotebook = aNoteBook
-        self.myParameter = self.myNotebook.getNotebook().GetParameter( aName )
-        if not self.myParameter:
-            raise "Parameter '%s' is not defined in the study" % aName
+        if aValue is None:
+            # get existing variable
+            self.myParameter = self.myNotebook.getNotebook().GetParameter( aName )
+            if not self.myParameter:
+                raise "Parameter '%s' is not defined in the study" % aName
+            pass
+        else:
+            # create new variable or set new value for existing variable
+            self.myNotebook.set( aName, aValue )
+            self.myParameter = self.myNotebook.getNotebook().GetParameter( aName )
         pass
     
     def name( self ):
@@ -75,7 +82,25 @@ class Parameter:
             return self.myParameter.AsString()
             
         return None
-    
+
+    def setValue( self, aValue ):
+       """
+        Set new value to the variable
+       """
+        if type( aValue ) == float:
+            self.myParameter.SetReal( aValue )
+                
+        elif type( aValue ) == str:
+            self.myParameter.SetExpression( aValue )
+            
+        elif type( aValue ) == int:
+            self.myParameter.SetInteger( aValue )
+            
+        elif type( aValue ) == bool:
+            self.myParameter.SetBoolean( aValue )
+
+        pass
+
     pass # end of Parameter class
         
 class Notebook:
@@ -138,7 +163,7 @@ class Notebook:
        """
         aResult = None
         try:
-            aParam = Parameter( variableName, self )
+            aParam = Parameter( variableName, None, self )
             aResult = aParam.value()
             pass
         except: