Salome HOME
Suppression de l'option "Delete"
[modules/homard.git] / src / HOMARDGUI / MonCreateHypothesis.cxx
index 6f0dc14b24894020f24a567401b4919d11402b94..1e30fc359288bd0d7831d819b1d612174e6f47ac 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2011-2020  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
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -17,8 +17,6 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-using namespace std;
-
 #include "MonCreateHypothesis.h"
 #include "MonCreateListGroup.h"
 #include "MonCreateIteration.h"
@@ -33,16 +31,18 @@ using namespace std;
 #include "HomardQtCommun.h"
 #include <utilities.h>
 
+using namespace std;
+
 // -------------------------------------------------------------------------------
 MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
-                                         HOMARD::HOMARD_Gen_var myHomardGen,
-                                         QString aHypothesisName,
+                                         HOMARD::HOMARD_Gen_var myHomardGen0,
+                                         QString Name,
                                          QString caseName, QString aFieldFile)
 // ---------------------------------------------------------------------------------
 /* Constructs a MonCreateHypothesis */
     :
-    QDialog(0), Ui_CreateHypothesis(),
-    _parent(parent), _aHypothesisName(aHypothesisName),
+    QScrollArea(0), Ui_CreateHypothesis(),
+    _parent(parent), _Name(Name),
     _aCaseName(caseName), _aFieldFile(aFieldFile),
     _aFieldName(""),
     _aTypeAdap(-2), _aTypeRaff(1), _aTypeDera(0),
@@ -52,16 +52,18 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
     _NivMax(-1),
     _DiamMin(-1.),
     _AdapInit(0),
-    _LevelOutput(0)
+    _ExtraOutput(1)
 
 {
       MESSAGE("Constructeur") ;
-      _myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen);
+      myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0);
       setupUi(this);
-      setModal(modal);
+      if ( modal ) { setWindowModality(Qt::WindowModal); }
+      else         { setWindowModality(Qt::NonModal); }
+      setWindowFlags( Qt::WindowStaysOnTopHint ) ;
       InitConnect();
 
-      SetNewHypothesisName();
+      SetNewName();
       if (_aFieldFile != QString(""))
       { RBChamp->setChecked(1);
         SetChamp();
@@ -72,7 +74,14 @@ MonCreateHypothesis::MonCreateHypothesis(MonCreateIteration* parent, bool modal,
       }
       SetFieldNo();
       GBAdvancedOptions->setVisible(0);
-      CBLevelOutput->setChecked(false);
+      CBOutputLevel->setChecked(false);
+      CBOutputQuality->setChecked(false);
+      CBOutputDiameter->setChecked(false);
+      CBOutputParent->setChecked(false);
+      CBOutputVoisins->setChecked(false);
+      _ExtraOutput = 1 ;
+//
+      adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -107,7 +116,6 @@ void MonCreateHypothesis::InitConnect()
     connect( CBJump,       SIGNAL(stateChanged(int)), this, SLOT(SetUseField()));
     connect( PBZoneNew,    SIGNAL(pressed()), this, SLOT(PushZoneNew()));
     connect( PBZoneEdit,   SIGNAL(pressed()), this, SLOT(PushZoneEdit()) );
-    connect( PBZoneDelete, SIGNAL(pressed()), this, SLOT(PushZoneDelete()) );
     connect( CBGroupe,     SIGNAL(stateChanged(int)), this, SLOT(SetFiltrage()));
 
     connect( RBFieldNo,    SIGNAL(clicked()), this, SLOT(SetFieldNo()));
@@ -134,7 +142,7 @@ bool MonCreateHypothesis::PushOnApply()
 // Verifications
 
 
-  if (LEHypothesisName->text().trimmed()=="") {
+  if (LEName->text().trimmed()=="") {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_HYPO_NAME") );
     return false;
@@ -144,13 +152,13 @@ bool MonCreateHypothesis::PushOnApply()
   if (VerifieComposant() == false)  return false;
 
 // Creation de l'objet CORBA si ce n'est pas deja fait sous le meme nom
-  if (LEHypothesisName->text().trimmed() != _aHypothesisName)
+  if (LEName->text().trimmed() != _Name)
   {
-    _aHypothesisName=LEHypothesisName->text().trimmed();
+    _Name=LEName->text().trimmed();
     try
     {
-     _aHypothesis=_myHomardGen->CreateHypothesis(CORBA::string_dup(_aHypothesisName.toStdString().c_str()) );
-     _parent->addHypothese(_aHypothesisName);
+     aHypothesis=myHomardGen->CreateHypothesis(CORBA::string_dup(_Name.toStdString().c_str()) );
+     _parent->addHypothese(_Name);
     }
     catch( SALOME::SALOME_Exception& S_ex )
     {
@@ -161,9 +169,15 @@ bool MonCreateHypothesis::PushOnApply()
   }
 
 // Mise en place des attributs
-  _aHypothesis->SetAdapRefinUnRef(_aTypeAdap,_aTypeRaff,_aTypeDera);
-  _aHypothesis->SetTypeFieldInterp(_TypeFieldInterp);
-  _aHypothesis->SetCaseCreation(_aCaseName.toStdString().c_str());
+  if ( _aTypeAdap == -1 )
+  {
+    int TypeRaffDera ;
+    if ( _aTypeRaff == 1 ) { TypeRaffDera = 1 ; }
+    else                   { TypeRaffDera = -1 ; }
+    aHypothesis->SetUnifRefinUnRef(TypeRaffDera);
+  }
+  aHypothesis->SetTypeFieldInterp(_TypeFieldInterp);
+  aHypothesis->SetCaseCreation(_aCaseName.toStdString().c_str());
 
   AssocieLesZones();
   AssocieComposants();
@@ -174,19 +188,25 @@ bool MonCreateHypothesis::PushOnApply()
   if (CBAdvanced->isChecked())
   {
 // Enregistrement du niveau maximal
-    _NivMax = spinBoxNivMax->value() ;
-    _aHypothesis->SetNivMax(_NivMax);
+    _NivMax = SpinBoxNivMax->value() ;
+    aHypothesis->SetNivMax(_NivMax);
 // Enregistrement du diametre minimal
     _DiamMin = doubleSpinBoxDiamMin->value() ;
-    _aHypothesis->SetDiamMin(_DiamMin);
+    aHypothesis->SetDiamMin(_DiamMin);
 // Enregistrement de l'intialisation de l'adaptation
-    _aHypothesis->SetAdapInit(_AdapInit);
-// Sortie des niveaux de raffinement
-    if (CBLevelOutput->isChecked()) { _LevelOutput = 1 ; }
-    _aHypothesis->SetLevelOutput(_LevelOutput);
+    aHypothesis->SetAdapInit(_AdapInit);
+// Sortie optionnelle des niveaux de raffinement, des diametres, des qualites
+    _ExtraOutput = 1 ;
+    if (CBOutputLevel->isChecked())    { _ExtraOutput =  2 ; }
+    if (CBOutputQuality->isChecked())  { _ExtraOutput =  3*_ExtraOutput ; }
+    if (CBOutputDiameter->isChecked()) { _ExtraOutput =  5*_ExtraOutput ; }
+    if (CBOutputParent->isChecked())   { _ExtraOutput =  7*_ExtraOutput ; }
+    if (CBOutputVoisins->isChecked())  { _ExtraOutput = 11*_ExtraOutput ; }
+    aHypothesis->SetExtraOutput(_ExtraOutput);
   }
 
-  HOMARD_UTILS::updateObjBrowser();
+  HOMARD_UTILS::updateObjBrowser() ;
+
   return true;
 }
 
@@ -202,31 +222,32 @@ void MonCreateHypothesis::PushOnOK()
 void MonCreateHypothesis::PushOnHelp()
 // ------------------------------------------------------------------------
 {
-  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"));
+  std::string LanguageShort = myHomardGen->GetLanguageShort();
+  HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort.c_str()));
 }
 // -------------------------------------------------
-void MonCreateHypothesis::SetNewHypothesisName()
+void MonCreateHypothesis::SetNewName()
 // --------------------------------------------------
 {
 
-  HOMARD::listeHypotheses_var  MyHypos = _myHomardGen->GetAllHypothesesName();
+  HOMARD::listeHypotheses_var  MyObjects = myHomardGen->GetAllHypothesesName();
   int num = 0;//
-  QString aHypothesisName="";
-  while (aHypothesisName=="" )
+  QString aName="";
+  while (aName=="" )
   {
-    aHypothesisName.setNum(num+1) ;
-    aHypothesisName.insert(0, QString("Hypo_")) ;
-    for ( int i=0; i<MyHypos->length(); i++)
+    aName.setNum(num+1) ;
+    aName.insert(0, QString("Hypo_")) ;
+    for ( int i=0; i<MyObjects->length(); i++)
     {
-      if ( aHypothesisName ==  QString(MyHypos[i]))
+      if ( aName ==  QString(MyObjects[i]))
       {
-          num=num+1;
-          aHypothesisName="";
-          break;
+        num ++ ;
+        aName = "" ;
+        break ;
       }
     }
   }
-  LEHypothesisName->setText(aHypothesisName);
+  LEName->setText(aName);
 }
 
 //
@@ -239,8 +260,10 @@ void MonCreateHypothesis::SetUniforme()
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(0);
   GBUniform->setVisible(1);
-  adjustSize();
+
   _aTypeAdap = -1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetChamp()
@@ -266,9 +289,10 @@ void MonCreateHypothesis::SetChamp()
   GBAreaManagement->adjustSize();
   GBFieldManagement->adjustSize();
   GBFieldFile->adjustSize();
-  adjustSize();
 
   _aTypeAdap = 1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetZone()
@@ -280,10 +304,12 @@ void MonCreateHypothesis::SetZone()
   if ( _TypeFieldInterp == 0 ) { GBFieldFile->setVisible(0); }
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(1);
-  adjustSize();
+
   _aTypeRaff = 1 ;
   _aTypeDera = 0 ;
   _aTypeAdap = 0 ;
+//
+  adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -291,7 +317,7 @@ void MonCreateHypothesis::PushZoneNew()
 // ------------------------------------------------------------------------
 {
   MESSAGE("Debut de MonCreateHypothesis::PushZoneNew")
-  MonCreateZone *aDlg = new MonCreateZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName) ;
+  MonCreateZone *aDlg = new MonCreateZone(this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName) ;
   aDlg->show();
 }
 
@@ -302,25 +328,16 @@ void MonCreateHypothesis::PushZoneEdit()
   MESSAGE("Debut de MonCreateHypothesis::PushZoneEdit")
   int colonne = TWZone->currentColumn();
   QTableWidgetItem * monItem = TWZone->currentItem();
-  if (colonne !=2  or monItem == NULL)
+  if (colonne !=2  || monItem == NULL)
   {
     QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                               QObject::tr("HOM_HYPO_ZONE_1") );
     return;
   }
   QString zoneName = monItem->text().trimmed();
-  MonEditZone *aDlg = new MonEditZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName, zoneName) ;
+  MonEditZone *aDlg = new MonEditZone(this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName, zoneName) ;
   aDlg->show();
 }
-// ------------------------------------------------------------------------
-void MonCreateHypothesis::PushZoneDelete()
-// ------------------------------------------------------------------------
-{
-  MESSAGE("Debut de MonCreateHypothesis::PushZoneDelete")
-  QMessageBox::warning( 0, QObject::tr("HOM_WARNING"),
-                        QObject::tr("HOM_INACTIVE_BUTTON") );
-  return;
-}
 
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::GetAllZones()
@@ -330,7 +347,7 @@ void MonCreateHypothesis::GetAllZones()
 // Par defaut, aucune n'est selectionnee
 {
   MESSAGE("Debut de GetAllZones") ;
-  HOMARD::listeZones_var mesZones = _myHomardGen->GetAllZonesName();
+  HOMARD::listeZones_var mesZones = myHomardGen->GetAllZonesName();
   int nbrow=TWZone->rowCount();
   for ( int row=0; row< nbrow; row++)
   {
@@ -398,7 +415,7 @@ QStringList MonCreateHypothesis::GetZonesChecked()
   int Pbm = 0 ;
   for ( int row=0; row< TWZone->rowCount(); row++)
   {
-    if ( ( TWZone->item( row, 0 )->checkState() == Qt::Checked ) and ( TWZone->item( row, 1 )->checkState() == Qt::Checked ) )
+    if ( ( TWZone->item( row, 0 )->checkState() == Qt::Checked ) && ( TWZone->item( row, 1 )->checkState() == Qt::Checked ) )
     {
       QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
                                 QObject::tr("HOM_HYPO_ZONE_3") );
@@ -458,8 +475,12 @@ void MonCreateHypothesis::AssocieFieldInterp()
 {
   if ( _TypeFieldInterp != 2 ) return;
   for ( int row=0; row< TWField->rowCount(); row++)
-      if ( TWField->item( row, 0 )->checkState() == Qt::Checked )
-      { _aHypothesis->AddFieldInterp(TWField->item(row, 1)->text().toStdString().c_str()); }
+  {
+    if ( TWField->item( row, 0 )->checkState() == Qt::Checked )
+    {
+      aHypothesis->AddFieldInterp(TWField->item(row, 1)->text().toStdString().c_str());
+    }
+  }
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetUniRaff()
@@ -496,7 +517,7 @@ void MonCreateHypothesis::SetFieldName()
 {
   MESSAGE("Debut de SetFieldName");
   _aFieldName=CBFieldName->currentText();
-  if (QString(_aFieldFile) == QString("") or QString(_aFieldName) == QString("") ) { return; }
+  if (QString(_aFieldFile) == QString("") || QString(_aFieldName) == QString("") ) { return; }
 
   int nbrow= TWCMP->rowCount() ;
   for ( int row=0; row < nbrow ; row++)
@@ -664,7 +685,8 @@ void MonCreateHypothesis::SetUCL2()
 void MonCreateHypothesis::SetUCInf()
 // ------------------------------------------------------------------------
 {
-  _UsCmpI = 1 ;
+  if ( TWCMP->rowCount() == 1 ) { _UsCmpI = 2 ; }
+  else                          { _UsCmpI = 1 ; }
   RBInf->setChecked(true);
 }
 // ------------------------------------------------------------------------
@@ -679,7 +701,7 @@ void MonCreateHypothesis::SetFiltrage()
 // ------------------------------------------------------------------------
 {
   if (!CBGroupe->isChecked()) return;
-  MonCreateListGroup *aDlg = new MonCreateListGroup(this, NULL, TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen),_aCaseName, _aListeGroupes) ;
+  MonCreateListGroup *aDlg = new MonCreateListGroup(this, NULL, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen),_aCaseName, _aListeGroupes) ;
   aDlg->show();
 }
 
@@ -734,7 +756,7 @@ void MonCreateHypothesis::AssocieLesZones()
   for ( int i=0 ; i< _aListeZone.count() ; i++ )
   { if ( _aListeZone[i+1] == Raff ) { TypeUse =  1 ; }
     else                            { TypeUse = -1 ; }
-    _aHypothesis->AddZone(_aListeZone[i].toStdString().c_str(), TypeUse);
+    aHypothesis->AddZone(_aListeZone[i].toStdString().c_str(), TypeUse);
     i += 1 ;
   }
   MESSAGE( "Fin de AssocieLesZones" );
@@ -760,14 +782,14 @@ void MonCreateHypothesis::AssocieComposants()
   if ( _TypeThC == 4 ) { _ThreshC = SpinBox_CMuSigma->value(); }
 
   _aFieldName=CBFieldName->currentText();
-  _aHypothesis->SetField(CORBA::string_dup(_aFieldName.toStdString().c_str()) ) ;
-  _aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ;
-  _aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ;
-  _aHypothesis->SetUseField( _UsField ) ;
-  _aHypothesis->SetUseComp( _UsCmpI ) ;
+  aHypothesis->SetField(CORBA::string_dup(_aFieldName.toStdString().c_str()) ) ;
+  if ( _TypeThR > 0 ) { aHypothesis->SetRefinThr( _TypeThR, _ThreshR ) ; }
+  if ( _TypeThC > 0 ) { aHypothesis->SetUnRefThr( _TypeThC, _ThreshC ) ; }
+  aHypothesis->SetUseField( _UsField ) ;
+  aHypothesis->SetUseComp( _UsCmpI ) ;
   _aListeComposant = GetListCompChecked() ;
   for ( int i=0 ; i< _aListeComposant.count() ; i++ )
-      { _aHypothesis->AddComp(_aListeComposant[i].toStdString().c_str()); }
+      { aHypothesis->AddComp(_aListeComposant[i].toStdString().c_str()); }
 };
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::AssocieLesGroupes()
@@ -779,7 +801,7 @@ void MonCreateHypothesis::AssocieLesGroupes()
   int i=0;
   for (it = _aListeGroupes.constBegin(); it != _aListeGroupes.constEnd(); it++)
      aSeqGroupe[i++]=(*it).toStdString().c_str();
-  _aHypothesis->SetGroups(aSeqGroupe);
+  aHypothesis->SetGroups(aSeqGroupe);
 
 }
 // ------------------------------------------------------------------------
@@ -791,8 +813,9 @@ void MonCreateHypothesis::SetFieldNo()
   else                   { GBFieldFile->setVisible(0); }
   TWField->setVisible(0);
 //
-   adjustSize();
   _TypeFieldInterp = 0 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldAll()
@@ -813,7 +836,8 @@ void MonCreateHypothesis::SetFieldAll()
   TWField->setVisible(0);
 //
   _TypeFieldInterp = 1 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldChosen()
@@ -860,7 +884,8 @@ void MonCreateHypothesis::SetFieldChosen()
   TWField->setVisible(1);
 
   _TypeFieldInterp = 2 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetAdvanced()
@@ -869,21 +894,22 @@ void MonCreateHypothesis::SetAdvanced()
   MESSAGE("Debut de SetAdvanced ");
   if (CBAdvanced->isChecked())
   { GBAdvancedOptions->setVisible(1);
-    if (_aFieldFile != QString(""))
-    { GBAdapInit->setVisible(1) ;
-    }
-    else
-    { GBAdapInit->setVisible(0) ;
-    }
+    if (_aFieldFile != QString("")) { GBAdapInit->setVisible(1) ; }
+    else                            { GBAdapInit->setVisible(0) ; }
   }
   else
   { GBAdvancedOptions->setVisible(0);
     _NivMax = -1 ;
     _DiamMin = -1. ;
     _AdapInit = 0 ;
-    CBLevelOutput->setChecked(false);
-    _LevelOutput = 0 ;
+    CBOutputLevel->setChecked(false);
+    CBOutputQuality->setChecked(false);
+    CBOutputDiameter->setChecked(false);
+    CBOutputParent->setChecked(false);
+    CBOutputVoisins->setChecked(false);
+    _ExtraOutput = 1 ;
   }
+//
   adjustSize();
 }
 // ------------------------------------------------------------------------