Salome HOME
Update copyrights
[modules/homard.git] / src / HOMARDGUI / HOMARDGUI.cxx
index d7595169176ba49dec343a7996969f34599505f3..500679bfafff2583e0a226e0ca829d3f03b8b01f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2011-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2019  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -59,6 +59,7 @@
 #include "MonCreateIteration.h"
 #include "MonPursueIteration.h"
 #include "MonCreateYACS.h"
+#include "MonEditBoundaryCAO.h"
 #include "MonEditBoundaryAn.h"
 #include "MonEditBoundaryDi.h"
 #include "MonEditCase.h"
@@ -368,18 +369,12 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
   }
 
   SUIT_Desktop* parent = application()->desktop();
+
   HOMARD::HOMARD_Gen_var homardGen = HOMARDGUI::InitHOMARDGen(app);
 
   if (!CORBA::is_nil(homardGen))
-  {
-    // Set current study
-    SalomeApp_Study* aSAStudy =dynamic_cast<SalomeApp_Study*>(app->activeStudy());
-    _PTR(Study) aStudy = aSAStudy->studyDS();
-    SALOMEDS::Study_ptr aStudyDS;
-    if (aStudy)
-      aStudyDS = _CAST(Study,aStudy)->GetStudy();
-      homardGen->SetCurrentStudy(aStudyDS);
-   }
+    homardGen->UpdateStudy();
+
   getApp()->updateObjectBrowser();
 
 // B. Choix selon les commandes
@@ -471,8 +466,14 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
       _PTR(SObject) obj = chercheMonObjet();
       if (obj)
       {
+        // Edition d'une frontiere CAO
+        if (HOMARD_UTILS::isBoundaryCAO(obj))
+        {
+          MonEditBoundaryCAO *aDlg = new MonEditBoundaryCAO(0, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), QString(""), _ObjectName ) ;
+          aDlg->show();
+        }
         // Edition d'une frontiere discrete
-        if (HOMARD_UTILS::isBoundaryDi(obj))
+        else if (HOMARD_UTILS::isBoundaryDi(obj))
         {
           MonEditBoundaryDi *aDlg = new MonEditBoundaryDi(0, true, HOMARD::HOMARD_Gen::_duplicate(homardGen), QString(""), _ObjectName ) ;
           aDlg->show();
@@ -527,7 +528,7 @@ bool HOMARDGUI::OnGUIEvent (int theCommandID)
       if (obj)
       {
         // Suppression d'une frontiere
-        if ( HOMARD_UTILS::isBoundaryDi(obj) || HOMARD_UTILS::isBoundaryAn(obj) )
+        if ( HOMARD_UTILS::isBoundaryCAO(obj) || HOMARD_UTILS::isBoundaryDi(obj) || HOMARD_UTILS::isBoundaryAn(obj) )
         {
           try
           { homardGen->DeleteBoundary(_ObjectName.toStdString().c_str()); }
@@ -761,7 +762,12 @@ void HOMARDGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& t
     bool DeleteObject = false ;
     bool EditObject = false ;
 //
-    if ( HOMARD_UTILS::isBoundaryAn(obj) )
+    if ( HOMARD_UTILS::isBoundaryCAO(obj) )
+    {
+      EditObject = true ;
+      DeleteObject = true ;
+    }
+    else if ( HOMARD_UTILS::isBoundaryAn(obj) )
     {
       EditObject = true ;
       DeleteObject = true ;