Salome HOME
Fix bug SMESH5451: SMESH_mechanic script aborts.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Swig.cxx
index 0af98fb7243727a6f9c5931661ecdcdd2d417327..db4ce870e00e82054b593741453cc59cfb63a19c 100644 (file)
@@ -21,7 +21,7 @@
 //
 //
 //
-//  File   : SMESHGUI_Swig.cxx
+//  File   : SMESH_Swig.cxx
 //  Author : Nicolas REJNERI
 //  Module : SMESH
 //  $Header$
@@ -61,13 +61,13 @@ static CORBA::Object_ptr StringToObject (const char* ior)
   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");
@@ -76,7 +76,7 @@ void SMESHGUI_Swig::Init(int studyID)
   QAD_ResourceMgr* resMgr = QAD_Desktop::createResourceManager();
   if ( resMgr ) {
     QString msg;
-    if (!resMgr->loadResources( "SMESHGUI", msg ))
+    if (!resMgr->loadResources( "SMESH", msg ))
       MESSAGE ( msg )
   }
 
@@ -91,16 +91,21 @@ void SMESHGUI_Swig::Init(int studyID)
   SALOMEDS::SComponent_var father = myStudy->FindComponent("MESH");
   
   if (father->_is_nil()) {
+    bool aLocked = myStudy->GetProperties()->IsLocked();
+    if (aLocked) myStudy->GetProperties()->SetLocked(false);
     father = myStudyBuilder->NewComponent("MESH");
     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 );
+
+  mySComponentMesh=father;
 
   // Tags definition 
   Tag_HypothesisRoot  = 1;
@@ -117,13 +122,13 @@ void SMESHGUI_Swig::Init(int studyID)
   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");
   //Find or Create Hypothesis root
@@ -134,6 +139,7 @@ const char* SMESHGUI_Swig::AddNewMesh(const char* IOR)
   SALOMEDS::AttributePixMap_var     aPixmap;
 
   SALOMEDS::SObject_var HypothesisRoot;
+  ASSERT(!mySComponentMesh->_is_nil());
   if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
     HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
     anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
@@ -172,7 +178,7 @@ const char* SMESHGUI_Swig::AddNewMesh(const char* IOR)
   return SALOMEDS::SObject::_narrow( newMesh )->GetID();
 }
 
-const char* SMESHGUI_Swig::AddNewHypothesis(const char* IOR)
+const char* SMESH_Swig::AddNewHypothesis(const char* IOR)
 {
   MESSAGE("AddNewHypothesis");
   //Find or Create Hypothesis root
@@ -216,7 +222,7 @@ const char* SMESHGUI_Swig::AddNewHypothesis(const char* IOR)
   return SALOMEDS::SObject::_narrow(newHypo)->GetID();
 }
 
-const char* SMESHGUI_Swig::AddNewAlgorithms(const char* IOR)
+const char* SMESH_Swig::AddNewAlgorithms(const char* IOR)
 {
   MESSAGE("AddNewAlgorithms");
   //Find or Create Algorithms root
@@ -260,7 +266,7 @@ const char* SMESHGUI_Swig::AddNewAlgorithms(const char* IOR)
   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 );
@@ -271,7 +277,7 @@ void SMESHGUI_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
   }
 }
 
-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 );
@@ -300,7 +306,7 @@ void SMESHGUI_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char*
     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 );
@@ -329,7 +335,7 @@ void SMESHGUI_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char*
   }
 }
 
-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() )
@@ -337,7 +343,7 @@ void SMESHGUI_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
 }
 
 
-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() ) {
@@ -375,7 +381,7 @@ const char* SMESHGUI_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_
   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 );
@@ -390,12 +396,12 @@ const char* SMESHGUI_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char*
   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;
@@ -408,7 +414,7 @@ void SMESHGUI_Swig::SetName(const char* Entry, const char* Name)
 }
 
 
-void SMESHGUI_Swig::setOrb()
+void SMESH_Swig::setOrb()
 {
   try {
     ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();