From: rnv Date: Fri, 14 Nov 2008 08:38:37 +0000 (+0000) Subject: Dump Python extension. X-Git-Tag: TG_DumpPython_Extension_2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d5e2b6c529be0a6b6d87f8923b4f2e849e24e004;p=modules%2Fgeom.git Dump Python extension. --- diff --git a/src/GEOM/GEOM_Engine.cxx b/src/GEOM/GEOM_Engine.cxx index ba4976e00..73b315414 100644 --- a/src/GEOM/GEOM_Engine.cxx +++ b/src/GEOM/GEOM_Engine.cxx @@ -96,10 +96,12 @@ static Standard_Integer ExtractDocID(TCollection_AsciiString& theID) void ProcessFunction(Handle(GEOM_Function)& theFunction, TCollection_AsciiString& theScript, Resource_DataMapOfAsciiStringAsciiString& theVariableNames, + TColStd_HSequenceOfAsciiString& theStudyVariables, TColStd_MapOfTransient& theProcessed); void ReplaceVariables(TCollection_AsciiString& theCommand, - Resource_DataMapOfAsciiStringAsciiString& theVariableNames); + Resource_DataMapOfAsciiStringAsciiString& theVariableNames, + TColStd_HSequenceOfAsciiString& theStudyVariables); @@ -440,6 +442,7 @@ void GEOM_Engine::Close(int theDocID) TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, Resource_DataMapOfAsciiStringAsciiString& theVariableNames, + TColStd_HSequenceOfAsciiString& theStudyVariables, bool isPublished, bool& aValidScript) { @@ -469,7 +472,7 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, MESSAGE ( "Null function !!!!" ); continue; } - ProcessFunction(aFunction, aScript,theVariableNames,aMap); + ProcessFunction(aFunction, aScript, theVariableNames, theStudyVariables ,aMap); } } @@ -695,6 +698,7 @@ Handle(TColStd_HSequenceOfAsciiString) GEOM_Engine::GetAllDumpNames() const void ProcessFunction(Handle(GEOM_Function)& theFunction, TCollection_AsciiString& theScript, Resource_DataMapOfAsciiStringAsciiString& theVariableNames, + TColStd_HSequenceOfAsciiString& theStudyVariables, TColStd_MapOfTransient& theProcessed) { if(theFunction.IsNull() || theProcessed.Contains(theFunction)) return; @@ -719,7 +723,7 @@ void ProcessFunction(Handle(GEOM_Function)& theFunction, if(aDescr == "None") return; //Replace parameter by notebook variables - ReplaceVariables(aDescr,theVariableNames); + ReplaceVariables(aDescr,theVariableNames,theStudyVariables); theScript += "\n\t"; theScript += aDescr; @@ -772,11 +776,12 @@ Handle(TColStd_HSequenceOfInteger) FindEntries(TCollection_AsciiString& theStrin */ //============================================================================= void ReplaceVariables(TCollection_AsciiString& theCommand, - Resource_DataMapOfAsciiStringAsciiString& theVariableNames) + Resource_DataMapOfAsciiStringAsciiString& theVariableNames, + TColStd_HSequenceOfAsciiString& theStudyVariables) { //Get Entry of the result object TCollection_AsciiString anEntry = theCommand.Token("=",1); - + //Remove white spaces anEntry.RightAdjust(); anEntry.LeftAdjust(); @@ -874,11 +879,6 @@ void ReplaceVariables(TCollection_AsciiString& theCommand, aEndPos = theCommand.Location(i, COMMA, 1, theCommand.Length()); } - TCollection_AsciiString aParameter = theCommand.SubString(aStartPos, aStartPos); - - if(MYDEBUG) - cout<<"Current parameter "<GetName(); CORBA::String_var anEntry = GO->GetEntry(); aMap.Bind( (char*)anEntry.in(), (char*)aName.in() ); - + //Find attribute with list of used notebook variables SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeString_var anAttrStr; @@ -73,10 +73,18 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy, } } + //Get Study variables + SALOMEDS::ListOfStrings_var aListOfVars = aStudy->GetVariableNames(); + TColStd_HSequenceOfAsciiString aStudyVariables; + for(int i = 0;i < aListOfVars->length();i++) + { + aStudyVariables.Append(aListOfVars[i].in()); + } + TCollection_AsciiString aScript = "### This file is generated by SALOME automatically by dump python functionality\n" "### of GEOM component\n\n"; - aScript += _impl->DumpPython(aStudy->StudyId(), aMap, aVariableMap, isPublished, isValidScript); + aScript += _impl->DumpPython(aStudy->StudyId(), aMap, aVariableMap, aStudyVariables, isPublished, isValidScript); if (isPublished) {