X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Swig.cxx;h=b82c7b32a0ff30ae803bf6fd4d2faff6d23dfb51;hp=9c720dd62e8a207ad73bc13ddabbf1748cc81d1b;hb=5c75cb66e546e974abea5f73e1bd88d6e7b25371;hpb=64ae2f71de80aad56ebd449db68b8d340bccd7bd diff --git a/src/SMESHGUI/SMESHGUI_Swig.cxx b/src/SMESHGUI/SMESHGUI_Swig.cxx index 9c720dd62..b82c7b32a 100644 --- a/src/SMESHGUI/SMESHGUI_Swig.cxx +++ b/src/SMESHGUI/SMESHGUI_Swig.cxx @@ -27,7 +27,7 @@ // $Header$ using namespace std; -#include "SMESH_Swig.hxx" +#include "SMESHGUI_Swig.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" @@ -47,7 +47,6 @@ using namespace std; #include CORBA_SERVER_HEADER(SMESH_Gen) #include CORBA_SERVER_HEADER(SMESH_Mesh) #include CORBA_SERVER_HEADER(SMESH_Hypothesis) -#include CORBA_SERVER_HEADER(GEOM_Shape) static CORBA::ORB_var _orb; @@ -73,6 +72,9 @@ void SMESH_Swig::Init(int studyID) Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "SMESH"); SMESH::SMESH_Gen_var CompMesh = SMESH::SMESH_Gen::_narrow(comp); + Engines::Component_var comp1 = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM"); + GEOM::GEOM_Gen_var CompGeom = GEOM::GEOM_Gen::_narrow(comp1); + QAD_ResourceMgr* resMgr = QAD_Desktop::createResourceManager(); if ( resMgr ) { QString msg; @@ -83,23 +85,31 @@ void SMESH_Swig::Init(int studyID) CORBA::Object_var obj = QAD_Application::getDesktop()->getNameService()->Resolve("/myStudyManager"); SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj); myStudy = myStudyMgr->GetStudyByID(studyID); + + CompMesh->SetCurrentStudy( myStudy.in() ); + myStudyBuilder = myStudy->NewBuilder(); SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeName_var aName; SALOMEDS::AttributePixMap_var aPixmap; - SALOMEDS::SComponent_var father = myStudy->FindComponent("MESH"); + // See return value of SMESH::SMESH_Gen::ComponentDataType() + SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH"); if (father->_is_nil()) { - father = myStudyBuilder->NewComponent("MESH"); + bool aLocked = myStudy->GetProperties()->IsLocked(); + if (aLocked) myStudy->GetProperties()->SetLocked(false); + father = myStudyBuilder->NewComponent("SMESH"); anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName"); aName = SALOMEDS::AttributeName::_narrow(anAttr); - aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT")); + //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT")); + aName->SetValue( QAD_Application::getDesktop()->getComponentUserName( "SMESH" ) ); anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap"); aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr); aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" ); + myStudyBuilder->DefineComponentInstance(father, CompMesh ); + if (aLocked) myStudy->GetProperties()->SetLocked(true); } - myStudyBuilder->DefineComponentInstance(father, CompMesh ); mySComponentMesh = SALOMEDS::SComponent::_narrow( father ); // Tags definition @@ -126,6 +136,12 @@ SMESH_Swig::~SMESH_Swig() const char* SMESH_Swig::AddNewMesh(const char* IOR) { MESSAGE("AddNewMesh"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Hypothesis root SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeName_var aName; @@ -175,6 +191,12 @@ const char* SMESH_Swig::AddNewMesh(const char* IOR) const char* SMESH_Swig::AddNewHypothesis(const char* IOR) { MESSAGE("AddNewHypothesis"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Hypothesis root SALOMEDS::SObject_var HypothesisRoot; SALOMEDS::GenericAttribute_var anAttr; @@ -219,6 +241,12 @@ const char* SMESH_Swig::AddNewHypothesis(const char* IOR) const char* SMESH_Swig::AddNewAlgorithms(const char* IOR) { MESSAGE("AddNewAlgorithms"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Algorithms root SALOMEDS::SObject_var AlgorithmsRoot; SALOMEDS::GenericAttribute_var anAttr; @@ -366,6 +394,9 @@ const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr); aSelAttr->SetSelectable(false); } + + free(Name); + SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot); anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR"); anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);