Salome HOME
Dump Python extension
[modules/geom.git] / src / GEOM_I / GEOM_Gen_i.cc
index b36a652f7981dab7152f75e29e12ebb7b078a979..ce76a6fad321fadcb6e13a16a32171f34d125927 100644 (file)
@@ -274,31 +274,23 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
   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());
+  bool isFound = false;
+  TCollection_AsciiString aVars;
+  SALOMEDS::ListOfStrings_var aListOfVars = theStudy->ParseVariables(aShape->GetParameters());
+  for(int i = 0, n = aListOfVars->length(); i < n; i++) {
+    if(theStudy->IsVariable(aListOfVars[i].in())) {
+      aVars += TCollection_AsciiString(aListOfVars[i].in());
+      isFound = true;
     }
+    if(i != n-1)
+      aVars += ":";
   }
-  
+  if(isFound) {
+    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);