//
//
//
-// File : SMESHGUI_Swig.cxx
+// File : SMESH_Swig.cxx
// Author : Nicolas REJNERI
// Module : SMESH
// $Header$
#include "Utils_ORB_INIT.hxx"
#include "Utils_SINGLETON.hxx"
+#include <SMESHGUI.h>
+#include <SMESHGUI_GEOMGenUtils.h>
+
// 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"
#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;
return _orb->string_to_object(ior);
}
-SMESHGUI_Swig::SMESHGUI_Swig()
+SMESH_Swig::SMESH_Swig()
{
MESSAGE("Constructeur");
setOrb();
}
-void SMESHGUI_Swig::Init(int studyID)
+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;
- if (!resMgr->loadResources( "SMESHGUI", msg ))
- MESSAGE ( msg )
+ resMgr->loadLanguage( QString::null, "en" );
+ /*QString msg;
+ if (!resMgr->loadResources( "SMESH", msg ))
+ MESSAGE ( msg )*/
}
- CORBA::Object_var obj = QAD_Application::getDesktop()->getNameService()->Resolve("/myStudyManager");
+ SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( 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);
- aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
+ //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
+ 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
Tag_SubMeshOnCompound = 8;
}
-SMESHGUI_Swig::~SMESHGUI_Swig()
+SMESH_Swig::~SMESH_Swig()
{
MESSAGE("Destructeur");
}
-const char* SMESHGUI_Swig::AddNewMesh(const char* IOR)
+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;
return SALOMEDS::SObject::_narrow( newMesh )->GetID();
}
-const char* SMESHGUI_Swig::AddNewHypothesis(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;
return SALOMEDS::SObject::_narrow(newHypo)->GetID();
}
-const char* SMESHGUI_Swig::AddNewAlgorithms(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;
return SALOMEDS::SObject::_narrow(newHypo)->GetID();
}
-void SMESHGUI_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
+void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
{
SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry );
SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry );
}
}
-void SMESHGUI_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
+void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
{
SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry );
myStudyBuilder->Addreference (SO,SO_Hypothesis);
}
}
-void SMESHGUI_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
+void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
{
SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry );
}
}
-void SMESHGUI_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
+void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
{
SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry );
if ( !SO_Applied_Hypothesis->_is_nil() )
}
-const char* SMESHGUI_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
+const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
{
SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry );
if ( !SO_Mesh->_is_nil() ) {
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);
return "";
}
-const char* SMESHGUI_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry,
+const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry,
const char* SM_IOR, int ST)
{
SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry );
return "";
}
-void SMESHGUI_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
+void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
{
// SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
}
-void SMESHGUI_Swig::SetName(const char* Entry, const char* Name)
+void SMESH_Swig::SetName(const char* Entry, const char* Name)
{
SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry );
SALOMEDS::GenericAttribute_var anAttr;
}
-void SMESHGUI_Swig::setOrb()
+void SMESH_Swig::setOrb()
{
try {
ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();