From 2cca59fdafcd9f873513dd7f120510508a195ead Mon Sep 17 00:00:00 2001 From: ana Date: Tue, 6 Dec 2011 15:14:16 +0000 Subject: [PATCH] Fix for the bug IPAL22821: Plot2D and gauss points are not shown after loading exported script --- src/VISU_I/VISU_DumpPython.cc | 27 +++++++++++++++++++++++++++ src/VISU_SWIG/visu.py | 12 ++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/VISU_I/VISU_DumpPython.cc b/src/VISU_I/VISU_DumpPython.cc index e0a7b42e..f83b35e5 100644 --- a/src/VISU_I/VISU_DumpPython.cc +++ b/src/VISU_I/VISU_DumpPython.cc @@ -2427,6 +2427,33 @@ namespace VISU aStr, aPrefix); + if (theIsPublished) + { + SALOMEDS::AttributeParameter_var ap = aStudy->GetModuleParameters("Interface Applicative", "Post-Pro", -1); + if(!CORBA::is_nil(ap)) { + std::map::iterator it = aEntry2NameMap.begin(); + for( ;it != aEntry2NameMap.end(); it++ ) { + //1. Encode entry + if ( ((*it).first).length() < 7 ) continue; + std::string tail( (*it).first, 6, ((*it).first).length()-1 ); + std::string newEntry(ComponentDataType()); + newEntry+=("_"+tail); + + CORBA::String_var anEntry = CORBA::string_dup(newEntry.c_str()); + + if( ap->IsSet(anEntry, 6) ) { //6 Means string array, see SALOMEDS_Attributes.idl AttributeParameter interface + std::string idCommand = std::string("visu.getObjectID(") + (*it).second + std::string(")"); + SALOMEDS::StringSeq_var aSeq= ap->GetStrArray(anEntry); + int oldLenght = aSeq->length(); + aSeq->length(oldLenght+2); + aSeq[oldLenght] = CORBA::string_dup("_PT_OBJECT_ID_"); + aSeq[oldLenght + 1] = CORBA::string_dup(idCommand.c_str()); + ap->SetStrArray( anEntry, aSeq ); + } + } + } + } + //Output the script that sets up the visul parameters. if(theIsPublished) { diff --git a/src/VISU_SWIG/visu.py b/src/VISU_SWIG/visu.py index cb462c01..dbbaf05d 100644 --- a/src/VISU_SWIG/visu.py +++ b/src/VISU_SWIG/visu.py @@ -38,6 +38,7 @@ import SALOME_ModuleCatalog from omniORB import CORBA from string import * from time import sleep +from salome import ObjectToID myORB = None myNamingService = None @@ -127,6 +128,17 @@ def IntToEntity(theInt) : return VISU.FACE; else : return VISU.CELL; + +def getObjectID(obj): + ID = "" + entry = ObjectToID(obj) + if entry is not None: + lst = entry.split(":") + if len(entry) > 6: + ID = entry[6:] + return "VISU_" + ID + return ID + def HasValue(theList, theValue) : try : -- 2.39.2