]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
To show notebook variables in the Object Browser. TG_DumpPython_Extension_1
authorrnv <rnv@opencascade.com>
Sat, 1 Nov 2008 12:55:44 +0000 (12:55 +0000)
committerrnv <rnv@opencascade.com>
Sat, 1 Nov 2008 12:55:44 +0000 (12:55 +0000)
idl/GEOM_Gen.idl
src/GEOM/GEOM_Object.hxx
src/GEOM_I/GEOM_Gen_i.cc
src/GEOM_I/GEOM_I3DPrimOperations_i.cc
src/GEOM_I/GEOM_Object_i.cc
src/GEOM_I/GEOM_Object_i.hh

index 7c2ffe0df4f1599cc121c7ec109a53494e51695e..9a8569e61aae86bc5a5f52ff8324a2057468869d 100644 (file)
@@ -231,6 +231,20 @@ module GEOM
      *  For example, method return false for GEOM_MARKER
      */
      boolean IsShape();
+     
+     
+     /*!
+     *  Set list of parameters
+     *  \param theParameters is a string containing the notebook variables separated by ":" symbol,
+     *         used for object creation
+     */
+    void SetParameters (in string theParameters);
+                           
+    /*!
+     *  Return list of notebook variables used for object creation separated by ":" symbol
+     */
+    string GetParameters();
+                                             
   };
 
 
index 7d8eda71bdde9c29a32249209cf8b876428419ad..4039569330b2d26970930be1f67daa26fa94c0d7 100644 (file)
@@ -219,6 +219,14 @@ class GEOM_Object : public MMgt_TShared
   //Returns an auxiliary data
   Standard_EXPORT TCollection_AsciiString GetAuxData();
 
+  //Set a notebook variables used for object creation
+  Standard_EXPORT void SetParameters(const TCollection_AsciiString& theParameters)
+  {_parameters = theParameters;}
+
+  //Get a notebook variables used for object creation
+  Standard_EXPORT TCollection_AsciiString GetParameters() const
+  {return _parameters;}
+
   //###########################################################
   // Sub shape methods
   //###########################################################
@@ -270,6 +278,7 @@ class GEOM_Object : public MMgt_TShared
   Handle(TDataStd_TreeNode) _root;
   TDF_Label                 _label;
   TCollection_AsciiString   _ior;
+  TCollection_AsciiString   _parameters;
 };
 
 #endif
index 75d163a218ad305499cf415179fd642fb2017f63..b36a652f7981dab7152f75e29e12ebb7b078a979 100644 (file)
@@ -272,6 +272,32 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
   anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeName");
   SALOMEDS::AttributeName_var aNameAttrib = SALOMEDS::AttributeName::_narrow(anAttr);
   aNameAttrib->SetValue(aShapeName.ToCString());
+
+  //Set NoteBook variables used in the object creation
+  TCollection_AsciiString aParams(aShape->GetParameters());
+  if(!aParams.IsEmpty()) {
+    TCollection_AsciiString aVars;
+    int nbVars = 0;
+    int n = 1;
+    TCollection_AsciiString aParam = aParams.Token(":",1);
+    while( aParam.Length() != 0 ) {
+      aParam = aParams.Token(":",n);
+      if(theStudy->IsVariable(aParam.ToCString())){
+       aVars+=aParam;
+       nbVars++;
+      }
+      if(aParam.Length() == 0)
+       break;
+      aVars+=":";
+      n++;
+    }
+    aVars.Remove(aVars.Length(),1);
+    if(nbVars > 0 ) {
+      anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString");
+      SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr);
+      aStringAttrib->SetValue(aVars.ToCString());
+    }
+  }
   
   //Set a name of the GEOM object
   aShape->SetName(theName);
index ae0ba98c6baab53d56f8e0ff940e69dfec604f29..a455d0f5bdb4758caaa38c5d324df4c58c87a66f 100644 (file)
@@ -68,7 +68,8 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeBoxDXDYDZ (CORBA::Double the
   Handle(GEOM_Object) anObject = GetOperations()->MakeBoxDXDYDZ(theDX, theDY, theDZ);
   if (!GetOperations()->IsDone() || anObject.IsNull())
     return aGEOMObject._retn();
+  GetObject(anObject)->SetParameters(GetParameters());
+    
   return GetObject(anObject);
 }
 
index 4a86443b64649dd578f5123654e9a25b3bff4c23..97ad13b5cc74d8ff7dff73d086344965d4237ec6 100644 (file)
@@ -360,3 +360,14 @@ bool GEOM_Object_i::IsShape()
 {
   return !_impl->GetValue().IsNull() && _impl->GetType() != GEOM_MARKER;
 }
+
+void GEOM_Object_i::SetParameters(const char* theParameters)
+{
+  _impl->SetParameters((char*)theParameters);
+}
+
+char* GEOM_Object_i::GetParameters()
+{
+  return CORBA::string_dup(_impl->GetParameters().ToCString());
+}
+
index 56631b7f0e7e8f1493cb124374b2584722c5358f..4325622a2d895969d016a1006abd555f99a1685d 100644 (file)
@@ -81,11 +81,16 @@ class GEOM_I_EXPORT GEOM_Object_i : public virtual POA_GEOM::GEOM_Object, public
 
   virtual bool IsShape();
 
+  virtual void SetParameters(const char* theParameters);
+
+  virtual char* GetParameters();
+
   Handle(GEOM_Object) GetImpl() { return _impl; }
 
  private:
 
   GEOM::GEOM_Gen_var _engine;
+  TCollection_AsciiString _parameters;
   Handle(GEOM_Object) _impl;
   TopoDS_Shape _geom;
 };