X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Swig.cxx;h=6ed39d3c8ccfc70d3c9f1fd6a0c6d14bc9b0a499;hp=b571990925dd31f0786a6313fd869d76dc8b1f20;hb=25cec45acb2923f66c849516f31337c1a3c4c687;hpb=8b4ba0cdff7660465a9ea7b26ef0df0757afed97 diff --git a/src/SMESHGUI/SMESHGUI_Swig.cxx b/src/SMESHGUI/SMESHGUI_Swig.cxx index b57199092..6ed39d3c8 100644 --- a/src/SMESHGUI/SMESHGUI_Swig.cxx +++ b/src/SMESHGUI/SMESHGUI_Swig.cxx @@ -1,23 +1,45 @@ -using namespace std; -// File : SMESH_Swig.cxx -// Created : Mon Jun 17 13:41:43 2002 -// Author : Nicolas REJNERI - -// Project : SALOME -// Module : SMESH -// Copyright : Open CASCADE 2002 +// SMESH SMESHGUI : GUI for SMESH component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SMESH_Swig.cxx +// Author : Nicolas REJNERI +// Module : SMESH // $Header$ - +using namespace std; #include "SMESHGUI_Swig.hxx" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" +#include +#include + // SALOME Includes -#include "QAD_Application.h" -#include "QAD_Desktop.h" -#include "QAD_ResourceMgr.h" +#include "SUIT_ResourceMgr.h" +#include "SUIT_Session.h" + +#include "SalomeApp_Application.h" #include "utilities.h" @@ -29,7 +51,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; @@ -52,37 +73,49 @@ SMESH_Swig::SMESH_Swig() void SMESH_Swig::Init(int studyID) { MESSAGE("Init"); - Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "SMESH"); - SMESH::SMESH_Gen_var CompMesh = SMESH::SMESH_Gen::_narrow(comp); + SMESH::SMESH_Gen_var CompMesh = SMESHGUI::GetSMESHGen(); + GEOM::GEOM_Gen_var CompGeom = SMESH::GetGEOMGen(); - QAD_ResourceMgr* resMgr = QAD_Desktop::createResourceManager(); + SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr(); if ( resMgr ) { - QString msg; + resMgr->loadLanguage( QString::null, "en" ); + /*QString msg; if (!resMgr->loadResources( "SMESH", msg )) - MESSAGE ( msg ) + MESSAGE ( msg )*/ } - CORBA::Object_var obj = QAD_Application::getDesktop()->getNameService()->Resolve("/myStudyManager"); + SalomeApp_Application* app = dynamic_cast( SUIT_Session::session()->activeApplication() ); + if( !app ) + return; + + CORBA::Object_var obj = app->namingService()->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); //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT")); - aName->SetValue( QAD_Application::getDesktop()->getComponentUserName( "SMESH" ) ); + aName->SetValue( SMESHGUI::GetSMESHGUI()->moduleName() ); 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 @@ -109,6 +142,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; @@ -158,6 +197,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; @@ -202,6 +247,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; @@ -349,6 +400,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);