]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Implementation of necessary auxiliary methods
authorasl <asl@opencascade.com>
Sat, 21 Nov 2009 12:11:14 +0000 (12:11 +0000)
committerasl <asl@opencascade.com>
Sat, 21 Nov 2009 12:11:14 +0000 (12:11 +0000)
src/Notebook/SALOME_Parameter.cxx
src/Notebook/SALOME_Parameter.hxx

index 04253c23dac521f975c15e1b24dc1ce7f9d5754c..aa2cad59ae6ec8107e070e5357d63b20b759113b 100644 (file)
 #include <utilities.h>
 #include <stdio.h>
 
+SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, bool theValue )
+: myNotebook( theNotebook ), myName( theName ), myResult( theValue ), myIsAnonimous( false ), myIsCalculable( false )
+{
+}
+
+SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, int theValue )
+: myNotebook( theNotebook ), myName( theName ), myResult( theValue ), myIsAnonimous( false ), myIsCalculable( false )
+{
+}
+
 SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, double theValue )
 : myNotebook( theNotebook ), myName( theName ), myResult( theValue ), myIsAnonimous( false ), myIsCalculable( false )
 {
 }
 
-SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, const std::string& theExpr )
-: myNotebook( theNotebook ), myName( theName ), myExpr( theExpr ), myIsAnonimous( false ), myIsCalculable( true )
+SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, const std::string& theData, bool isExpr )
+: myNotebook( theNotebook ), myName( theName ), myIsAnonimous( false ), myIsCalculable( isExpr )
 {
-  Update( SALOME::Notebook_ptr() );
+  if( isExpr )
+  {
+    myExpr.setExpression( theData );
+    Update( SALOME::Notebook_ptr() );
+  }
+  else
+    myResult = theData;
 }
 
 SALOME_Parameter::SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theExpr )
@@ -66,6 +82,10 @@ CORBA::Boolean SALOME_Parameter::IsValid()
   return myResult.isValid();
 }
 
+void SALOME_Parameter::SetParameters( SALOME::Notebook_ptr /*theNotebook*/, const SALOME::StringArray& /*theParameters*/ )
+{
+}
+
 void SALOME_Parameter::Update( SALOME::Notebook_ptr /*theNotebook*/ )
 {
   //printf( "Update of %s\n", GetEntry() );
@@ -77,7 +97,7 @@ void SALOME_Parameter::Update( SALOME::Notebook_ptr /*theNotebook*/ )
     for( ; it!=last; it++ )
     {
       std::string aName = *it;
-      SALOME_Parameter* aParam = myNotebook->ParamPtr( const_cast<char*>( aName.c_str() ) );
+      SALOME_Parameter* aParam = myNotebook->GetParameterPtr( const_cast<char*>( aName.c_str() ) );
       if( aParam )
       {
         //printf( "\tset %s = %lf\n", aName.c_str(), aParam->AsReal() );
@@ -96,10 +116,10 @@ void SALOME_Parameter::Update( SALOME::Notebook_ptr /*theNotebook*/ )
   }
 }
 
-void SALOME_Parameter::SetExpr( const char* theExpr )
+void SALOME_Parameter::SetExpression( const char* theExpr )
 {
   if( myIsAnonimous )
-    myNotebook->AddExpr( theExpr );
+    myNotebook->AddExpression( theExpr );
 
   else
   {
@@ -109,6 +129,32 @@ void SALOME_Parameter::SetExpr( const char* theExpr )
   }
 }
 
+void SALOME_Parameter::SetBoolean( CORBA::Boolean theValue )
+{
+  if( myIsAnonimous )
+  {
+  }
+  else
+  {
+    myResult = theValue;
+    myIsCalculable = false;
+    myNotebook->SetToUpdate( _this() );
+  }
+}
+
+void SALOME_Parameter::SetInteger( CORBA::Long theValue )
+{
+  if( myIsAnonimous )
+  {
+  }
+  else
+  {
+    myResult = (int)theValue;
+    myIsCalculable = false;
+    myNotebook->SetToUpdate( _this() );
+  }
+}
+
 void SALOME_Parameter::SetReal( CORBA::Double theValue )
 {
   if( myIsAnonimous )
@@ -122,6 +168,19 @@ void SALOME_Parameter::SetReal( CORBA::Double theValue )
   }
 }
 
+void SALOME_Parameter::SetString( const char* theValue )
+{
+  if( myIsAnonimous )
+  {
+  }
+  else
+  {
+    myResult = theValue;
+    myIsCalculable = false;
+    myNotebook->SetToUpdate( _this() );
+  }
+}
+
 SALOME::ParamType SALOME_Parameter::GetType()
 {
   switch( myResult.type() )
@@ -190,3 +249,18 @@ SALOME_Parameter* SALOME_Parameter::Load( const std::string& theData )
 {
   return 0;
 }
+
+bool SALOME_Parameter::IsAnonimous() const
+{
+  return myIsAnonimous;
+}
+
+bool SALOME_Parameter::IsCalculable() const
+{
+  return myIsCalculable;
+}
+
+std::string SALOME_Parameter::Expression() const
+{
+  return myExpr.expression();
+}
index fd4ac212478d83653c34cd72e77dea0d71f76136..03efc4a830bb1296a01d70c5062c046ed8672c56 100644 (file)
@@ -40,24 +40,27 @@ class SALOME_Parameter : public virtual POA_SALOME::Parameter, public virtual SA
 {
 public:
   //! standard constructor
+  SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, bool theValue );
+  SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, int theValue );
   SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, double theValue );
-  SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, const std::string& theExpr );
+  SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theName, const std::string& theData, bool isExpr );
   SALOME_Parameter( SALOME_Notebook* theNotebook, const std::string& theExpr );
   
   //! standard destructor
   virtual ~SALOME_Parameter();
 
   virtual char* GetEntry();
-
   virtual char* GetComponent();
-
   virtual CORBA::Boolean IsValid();
 
   virtual void Update( SALOME::Notebook_ptr theNotebook );
+  virtual void SetParameters ( SALOME::Notebook_ptr theNotebook, const SALOME::StringArray& theParameters );
 
-  virtual void SetExpr( const char* theExpr );
-
+  virtual void SetExpression( const char* theExpr );
+  virtual void SetBoolean( CORBA::Boolean theValue );
+  virtual void SetInteger( CORBA::Long theValue );
   virtual void SetReal( CORBA::Double theValue );
+  virtual void SetString( const char* theValue );
 
   virtual SALOME::ParamType GetType();
 
@@ -71,6 +74,11 @@ public:
   std::string Save() const;
   static SALOME_Parameter* Load( const std::string& theData );
 
+  bool IsAnonimous() const;
+  bool IsCalculable() const;
+
+  std::string Expression() const;
+
 private:
   SALOME_Notebook* myNotebook;
   std::string myName;