Dump Python extension

This commit is contained in:
ouv 2008-11-24 12:44:17 +00:00
parent 8f8acbd807
commit f86d14b0c0
2 changed files with 19 additions and 11 deletions

View File

@ -73,13 +73,16 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
vector<TVariable> aVariables; vector<TVariable> aVariables;
if(aValue->FindAttribute(anAttr,"AttributeString")){ if(aValue->FindAttribute(anAttr,"AttributeString")){
anAttrStr = SALOMEDS::AttributeString::_narrow(anAttr); anAttrStr = SALOMEDS::AttributeString::_narrow(anAttr);
SALOMEDS::ListOfStrings_var aListOfVars = aStudy->ParseVariables(anAttrStr->Value()); SALOMEDS::ListOfListOfStrings_var aSections = aStudy->ParseVariables(anAttrStr->Value());
for(int i = 0;i < aListOfVars->length();i++) { for(int i = 0; i < aSections->length(); i++) {
bool isVar = aStudy->IsVariable(aListOfVars[i].in()); SALOMEDS::ListOfStrings aListOfVars = aSections[i];
TVariable aVar = TVariable( (char*)aListOfVars[i].in(), isVar ); for(int j = 0; j < aListOfVars.length(); j++) {
bool isVar = aStudy->IsVariable(aListOfVars[j].in());
TVariable aVar = TVariable( (char*)aListOfVars[j].in(), isVar );
aVariables.push_back(aVar); aVariables.push_back(aVar);
} }
} }
}
aVariableMap.insert(pair<TCollection_AsciiString,vector<TVariable> >((char*)anEntry,aVariables)); aVariableMap.insert(pair<TCollection_AsciiString,vector<TVariable> >((char*)anEntry,aVariables));
} }
} }

View File

@ -276,15 +276,20 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
//Set NoteBook variables used in the object creation //Set NoteBook variables used in the object creation
bool isFound = false; bool isFound = false;
TCollection_AsciiString aVars; TCollection_AsciiString aVars;
SALOMEDS::ListOfStrings_var aListOfVars = theStudy->ParseVariables(aShape->GetParameters()); SALOMEDS::ListOfListOfStrings_var aSections = theStudy->ParseVariables(aShape->GetParameters());
for(int i = 0, n = aListOfVars->length(); i < n; i++) { for(int i = 0, n = aSections->length(); i < n; i++) {
if(theStudy->IsVariable(aListOfVars[i].in())) { SALOMEDS::ListOfStrings aListOfVars = aSections[i];
aVars += TCollection_AsciiString(aListOfVars[i].in()); for(int j = 0, m = aListOfVars.length(); j < m; j++) {
if(theStudy->IsVariable(aListOfVars[j].in())) {
aVars += TCollection_AsciiString(aListOfVars[j].in());
isFound = true; isFound = true;
} }
if(i != n-1) if(j != m-1)
aVars += ":"; aVars += ":";
} }
if(i != n-1)
aVars += "|";
}
if(isFound) { if(isFound) {
anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString"); anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString");
SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr); SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr);