]> SALOME platform Git repositories - modules/homard.git/blobdiff - src/HOMARDGUI/MonCreateHypothesis.cxx
Salome HOME
[bos #32517][EDF] Dynamic log messages switched on and off by SALOME_VERBOSE environm...
[modules/homard.git] / src / HOMARDGUI / MonCreateHypothesis.cxx
index 60bd6c85a6b79aed9e041b395af7da4cec1ae238..6d4574e707103d7ee16229b28d9fbf8d989791c6 100644 (file)
@@ -1,4 +1,21 @@
-using namespace std;
+// Copyright (C) 2011-2022  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, 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
+// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #include "MonCreateHypothesis.h"
 #include "MonCreateListGroup.h"
@@ -14,38 +31,57 @@ 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),
-    _aCaseName(caseName), _aFieldFile(aFieldFile), 
+    QScrollArea(0), Ui_CreateHypothesis(),
+    _parent(parent), _Name(Name),
+    _aCaseName(caseName), _aFieldFile(aFieldFile),
     _aFieldName(""),
     _aTypeAdap(-2), _aTypeRaff(1), _aTypeDera(0),
     _TypeThR(3), _ThreshR(0),
     _TypeThC(0), _ThreshC(0),
-    _UsCmpI(0), _TypeFieldInterp(0)
+    _UsField(0), _UsCmpI(0), _TypeFieldInterp(0),
+    _NivMax(-1),
+    _DiamMin(-1.),
+    _AdapInit(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();
-      if (_aFieldFile != QString("")) {
-          RBChamp->setChecked(1);
-          SetChamp();
-      } else {
-          RBUniforme->setChecked(1);
-          SetUniforme();
+      SetNewName();
+      if (_aFieldFile != QString(""))
+      { RBChamp->setChecked(1);
+        SetChamp();
+      }
+      else
+      { RBUniforme->setChecked(1);
+        SetUniforme();
       }
       SetFieldNo();
+      GBAdvancedOptions->setVisible(0);
+      CBOutputLevel->setChecked(false);
+      CBOutputQuality->setChecked(false);
+      CBOutputDiameter->setChecked(false);
+      CBOutputParent->setChecked(false);
+      CBOutputVoisins->setChecked(false);
+      _ExtraOutput = 1 ;
+//
+      adjustSize();
 }
 
 // ------------------------------------------------------------------------
@@ -63,24 +99,34 @@ void MonCreateHypothesis::InitConnect()
     connect( RBZone,       SIGNAL(clicked()), this, SLOT(SetZone()));
     connect( RBUniRaff,    SIGNAL(clicked()), this, SLOT(SetUniRaff()));
     connect( RBUniDera,    SIGNAL(clicked()), this, SLOT(SetUniDera()));
+
     connect( CBFieldName,  SIGNAL(activated(int)), this, SLOT( SetFieldName()));
     connect( RBRPE,        SIGNAL(clicked()), this, SLOT(SetRPE()));
     connect( RBRRel,       SIGNAL(clicked()), this, SLOT(SetRRel()));
+    connect( RBRMuSigma,   SIGNAL(clicked()), this, SLOT(SetRMS()));
     connect( RBRAbs,       SIGNAL(clicked()), this, SLOT(SetRAbs()));
     connect( RBRNo,        SIGNAL(clicked()), this, SLOT(SetRNo()));
     connect( RBCPE,        SIGNAL(clicked()), this, SLOT(SetCPE()));
     connect( RBCRel,       SIGNAL(clicked()), this, SLOT(SetCRel()));
+    connect( RBCMuSigma,   SIGNAL(clicked()), this, SLOT(SetCMS()));
     connect( RBCAbs,       SIGNAL(clicked()), this, SLOT(SetCAbs()));
     connect( RBCNo,        SIGNAL(clicked()), this, SLOT(SetCNo()));
     connect( RBL2,         SIGNAL(clicked()), this, SLOT(SetUCL2()));
     connect( RBInf,        SIGNAL(clicked()), this, SLOT(SetUCInf()));
+    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()));
     connect( RBFieldAll,   SIGNAL(clicked()), this, SLOT(SetFieldAll()));
     connect( RBFieldChosen,SIGNAL(clicked()), this, SLOT(SetFieldChosen()));
+
+    connect( CBAdvanced,   SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
+    connect( RBAIN,        SIGNAL(clicked()), this, SLOT(SetAIN()));
+    connect( RBAIR,        SIGNAL(clicked()), this, SLOT(SetAIR()));
+    connect( RBAID,        SIGNAL(clicked()), this, SLOT(SetAID()));
+
     connect( buttonOk,     SIGNAL(pressed()), this, SLOT( PushOnOK()));
     connect( buttonApply,  SIGNAL(pressed()), this, SLOT( PushOnApply()));
     connect( buttonCancel, SIGNAL(pressed()), this, SLOT(close()));
@@ -96,45 +142,71 @@ bool MonCreateHypothesis::PushOnApply()
 // Verifications
 
 
-  if (LEHypothesisName->text().trimmed()=="") {
-    QMessageBox::information( 0, "Error",
-                              "The hypothesis must be named.",
-                              QMessageBox::Ok + QMessageBox::Default );
+  if (LEName->text().trimmed()=="") {
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_NAME") );
     return false;
   }
 
-  if (VerifieZone()     == false)  return false;
+  if (VerifieZone()      == false)  return false;
   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 )
     {
-      QMessageBox::information( 0, "Error",
-                  QString(CORBA::string_dup(S_ex.details.text)),
-                  QMessageBox::Ok + QMessageBox::Default );
+      QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                                QString(CORBA::string_dup(S_ex.details.text)) );
       return false;
     }
   }
 
 // 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();
   AssocieLesGroupes();
   AssocieFieldInterp();
 
-  HOMARD_UTILS::updateObjBrowser();
+// Options avancees
+  if (CBAdvanced->isChecked())
+  {
+// Enregistrement du niveau maximal
+    _NivMax = SpinBoxNivMax->value() ;
+    aHypothesis->SetNivMax(_NivMax);
+// Enregistrement du diametre minimal
+    _DiamMin = doubleSpinBoxDiamMin->value() ;
+    aHypothesis->SetDiamMin(_DiamMin);
+// Enregistrement de l'intialisation de l'adaptation
+    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() ;
+
   return true;
 }
 
@@ -150,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->GetAllHypotheses();
-  int num = 0;// 
-  QString aHypothesisName="";
-  while (aHypothesisName=="" )
+  HOMARD::listeHypotheses_var  MyObjects = myHomardGen->GetAllHypothesesName();
+  int num = 0;//
+  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);
 }
 
 //
@@ -187,8 +260,10 @@ void MonCreateHypothesis::SetUniforme()
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(0);
   GBUniform->setVisible(1);
-  adjustSize();
+
   _aTypeAdap = -1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetChamp()
@@ -196,9 +271,8 @@ void MonCreateHypothesis::SetChamp()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -215,9 +289,10 @@ void MonCreateHypothesis::SetChamp()
   GBAreaManagement->adjustSize();
   GBFieldManagement->adjustSize();
   GBFieldFile->adjustSize();
-  adjustSize();
 
   _aTypeAdap = 1 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetZone()
@@ -229,18 +304,20 @@ void MonCreateHypothesis::SetZone()
   if ( _TypeFieldInterp == 0 ) { GBFieldFile->setVisible(0); }
   else                         { GBFieldFile->setVisible(1); }
   GBAreaManagement->setVisible(1);
-  adjustSize();
+
   _aTypeRaff = 1 ;
   _aTypeDera = 0 ;
   _aTypeAdap = 0 ;
+//
+  adjustSize();
 }
 
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::PushZoneNew()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de PushZoneNew")
-  MonCreateZone *aDlg = new MonCreateZone(this, TRUE, HOMARD::HOMARD_Gen::_duplicate(_myHomardGen), _aCaseName) ;
+  MESSAGE("Debut de MonCreateHypothesis::PushZoneNew");
+  MonCreateZone *aDlg = new MonCreateZone(this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName) ;
   aDlg->show();
 }
 
@@ -248,40 +325,31 @@ void MonCreateHypothesis::PushZoneNew()
 void MonCreateHypothesis::PushZoneEdit()
 // ------------------------------------------------------------------------
 {
-  MESSAGE("Debut de PushZoneEdit")
+  MESSAGE("Debut de MonCreateHypothesis::PushZoneEdit");
   int colonne = TWZone->currentColumn();
   QTableWidgetItem * monItem = TWZone->currentItem();
-  if (colonne !=1  or monItem == NULL) 
+  if (colonne !=2  || monItem == NULL)
   {
-    QMessageBox::information( 0, "Error",
-                              "Please, Select a Zone",
-                              QMessageBox::Ok + QMessageBox::Default );
+    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 PushZoneDelete")
-  QMessageBox::information( 0, "Error",
-                            "Inactive button.",
-                            QMessageBox::Ok + QMessageBox::Default );
-  return;
-}
 
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::GetAllZones()
 // ------------------------------------------------------------------------
 // Recuperation de toutes les zones enregistrees dans l'arbre d'etude
+// et affichage dans le tableau
+// Par defaut, aucune n'est selectionnee
 {
-  HOMARD::listeZones_var  mesZones = _myHomardGen->GetAllZones();
-  TWZone->clear();
-  int stop=TWZone->rowCount();
-  for ( int row=0; row< stop; row++)
+  MESSAGE("Debut de GetAllZones");
+  HOMARD::listeZones_var mesZones = myHomardGen->GetAllZonesName();
+  int nbrow=TWZone->rowCount();
+  for ( int row=0; row< nbrow; row++)
   {
      TWZone->removeRow(row);
   }
@@ -290,70 +358,113 @@ void MonCreateHypothesis::GetAllZones()
   for (int i=0; i<mesZones->length(); i++)
   {
     TWZone->insertRow(row);
+//
     TWZone->setItem( row, 0, new QTableWidgetItem( QString ("") ) );
     TWZone->item( row, 0 )->setFlags( 0 );
     TWZone->item( row, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
     TWZone->item( row, 0 )->setCheckState( Qt::Unchecked );
-    TWZone->setItem( row, 1, new QTableWidgetItem(QString(mesZones[i])));
-    TWZone->item( row, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
-    row=row+1;
+//
+    TWZone->setItem( row, 1, new QTableWidgetItem( QString ("") ) );
+    TWZone->item( row, 1 )->setFlags( 0 );
+    TWZone->item( row, 1 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
+    TWZone->item( row, 1 )->setCheckState( Qt::Unchecked );
+//
+    TWZone->setItem( row, 2, new QTableWidgetItem(QString(mesZones[i]).trimmed()));
+    TWZone->item( row, 2 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+//
+    row += 1;
   }
   TWZone->resizeColumnsToContents();
   TWZone->resizeRowsToContents();
   TWZone->clearSelection();
 }
-    
 // ------------------------------------------------------------------------
-void MonCreateHypothesis::addZone(QString newZone)
+void MonCreateHypothesis::addZoneinTWZone(QString newZone)
 // ------------------------------------------------------------------------
 {
+  MESSAGE("Debut de addZoneinTWZone") ;
   int row = TWZone->rowCount() ;
+// Par defaut, on suppose qu'une nouvelle zone est destinee au raffinement
   TWZone->setRowCount( row+1 );
-  TWZone->setItem( row, 0, new QTableWidgetItem( 0 ) );
+//
+  TWZone->setItem( row, 0, new QTableWidgetItem( QString ("") ) );
   TWZone->item( row, 0 )->setFlags( Qt::ItemIsEditable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
   TWZone->item( row, 0 )->setCheckState( Qt::Checked );
-  TWZone->setItem( row, 1, new QTableWidgetItem( newZone ) );
-  TWZone->scrollToItem( TWZone->item( row, 1 ) );
+//
+  TWZone->setItem( row, 1, new QTableWidgetItem( QString ("") ) );
+  TWZone->item( row, 1 )->setFlags( Qt::ItemIsEditable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
+  TWZone->item( row, 1 )->setCheckState( Qt::Unchecked );
+//
+  TWZone->setItem( row, 2, new QTableWidgetItem( newZone ) );
+  TWZone->scrollToItem( TWZone->item( row, 2 ) );
+//
   TWZone->resizeRowsToContents();
   TWZone->resizeColumnToContents(1);
   TWZone->clearSelection();
-  TWZone->item( row, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
+//
+  TWZone->item( row, 2 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
 }
-
 // ------------------------------------------------------------------------
 QStringList MonCreateHypothesis::GetZonesChecked()
 // ------------------------------------------------------------------------
 // Retourne les zones enregistrees
 {
+  MESSAGE("Debut de GetZonesChecked") ;
   QStringList ListeZone ;
+// On ne peut pas avoir selectionne les deux options
+  int Pbm = 0 ;
   for ( int row=0; row< TWZone->rowCount(); row++)
   {
-      if ( TWZone->item( row, 0 )->checkState() ==  Qt::Checked )
-          ListeZone.insert(0, QString(TWZone->item(row, 1)->text()) ) ;
+    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") );
+      Pbm = 1 ;
+    }
+  }
+// Si tout va bien, on affecte
+// Attention, on insere en tete, donc on commence d'inserer le type, psui le nom de la zone
+  if ( Pbm == 0 )
+  {
+    QString Raff =  "1" ;
+    QString Dera = "-1" ;
+    for ( int row=0; row< TWZone->rowCount(); row++)
+    {
+//     MESSAGE ("row "<<row<<", zone : "<<TWZone->item(row, 2)->text().toStdString());
+//  En raffinement :
+      if ( TWZone->item(row,0)->checkState() == Qt::Checked )
+      { ListeZone.insert(0, Raff) ;
+        ListeZone.insert(0, QString(TWZone->item(row, 2)->text()) ) ; }
+//  En deraffinement :
+      if ( TWZone->item(row,1)->checkState() == Qt::Checked )
+      { ListeZone.insert(0, Dera) ;
+        ListeZone.insert(0, QString(TWZone->item(row, 2)->text()) ) ; }
+    }
+  MESSAGE("Fin de GetZonesChecked ; longueur de ListeZone : "<<ListeZone.count()) ;
   }
-  return ListeZone ;
+//
+return ListeZone ;
 }
-
 // ------------------------------------------------------------------------
 QStringList MonCreateHypothesis::GetListCompChecked()
 // ------------------------------------------------------------------------
 // Retourne les composantes retenues
 {
-  MESSAGE( "Dans GetListCompChecked" );
+  MESSAGE( "Debut de GetListCompChecked" );
   QStringList ListeComposant ;
 
   ListeComposant.clear();
   for ( int row=0; row< TWCMP->rowCount(); row++)
-      if ( TWCMP->item( row, 0 )->checkState() ==  Qt::Checked )
+      if ( TWCMP->item( row, 0 )->checkState() == Qt::Checked )
           ListeComposant.insert(0, QString(TWCMP->item(row, 1)->text()) ) ;
   // Choix du texte des radio-boutons selon 1 ou plusieurs composantes
   if ( ListeComposant.count() < 2 )
-  { RBL2->setText(QString("Absolute value"));
-    RBInf->setText(QString("Relative value"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_ABS"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_REL"));
   }
   else
-  { RBL2->setText(QString("L2 norm"));
-    RBInf->setText(QString("Infinite Norm"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_L2"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_INF"));
   }
   return ListeComposant ;
 //
@@ -364,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()
@@ -400,14 +515,16 @@ void MonCreateHypothesis::InitFields()
 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; }
 
-  for ( int row=0; row < TWCMP->rowCount() ; row++)
+  int nbrow= TWCMP->rowCount() ;
+  for ( int row=0; row < nbrow ; row++)
   {
      TWCMP->removeRow(row);
   }
-  //TWCMP->setRowCount(0);
+  TWCMP->setRowCount(0);
   //TWCMP->resizeRowsToContents();
 
   std::list<QString>  maListe =HOMARD_QT_COMMUN::GetListeComposants(_aFieldFile, _aFieldName);
@@ -419,7 +536,7 @@ void MonCreateHypothesis::SetFieldName()
        TWCMP->item( 0, 0 )->setFlags( 0 );
        TWCMP->item( 0, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
        TWCMP->item( 0, 0 )->setCheckState( Qt::Checked );
-       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString((*it))));
+       TWCMP->setItem( 0, 1, new QTableWidgetItem(QString((*it)).trimmed()));
        TWCMP->item( 0, 1 )->setFlags( Qt::ItemIsEnabled |Qt::ItemIsSelectable );
   }
   TWCMP->resizeColumnsToContents();
@@ -427,12 +544,12 @@ void MonCreateHypothesis::SetFieldName()
   TWCMP->clearSelection();
   // Choix du texte des radio-boutons selon 1 ou plusieurs composantes
   if ( TWCMP->rowCount() == 1 )
-  { RBL2->setText(QString("Absolute value"));
-    RBInf->setText(QString("Relative value"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_ABS"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_REL"));
   }
   else
-  { RBL2->setText(QString("L2 norm"));
-    RBInf->setText(QString("Infinite Norm"));
+  { RBL2->setText(QObject::tr("HOM_HYPO_NORM_L2"));
+    RBInf->setText(QObject::tr("HOM_HYPO_NORM_INF"));
   }
   // Par defaut, on propose la valeur absolue / norme L2
   SetUCL2();
@@ -447,6 +564,7 @@ void MonCreateHypothesis::SetRPE()
   SpinBox_RPE->setEnabled(true);
   SpinBox_RRel->setEnabled(false);
   SpinBox_RAbs->setEnabled(false);
+  SpinBox_RMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetRRel()
@@ -458,6 +576,7 @@ void MonCreateHypothesis::SetRRel()
   SpinBox_RPE->setEnabled(false);
   SpinBox_RRel->setEnabled(true);
   SpinBox_RAbs->setEnabled(false);
+  SpinBox_RMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetRAbs()
@@ -469,6 +588,19 @@ void MonCreateHypothesis::SetRAbs()
   SpinBox_RPE->setEnabled(false);
   SpinBox_RRel->setEnabled(false);
   SpinBox_RAbs->setEnabled(true);
+  SpinBox_RMuSigma->setEnabled(false);
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetRMS()
+// ------------------------------------------------------------------------
+{
+  _aTypeRaff = 1 ;
+  _TypeThR = 4 ;
+  RBRMuSigma->setChecked(true);
+  SpinBox_RPE->setEnabled(false);
+  SpinBox_RRel->setEnabled(false);
+  SpinBox_RAbs->setEnabled(false);
+  SpinBox_RMuSigma->setEnabled(true);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetRNo()
@@ -480,6 +612,7 @@ void MonCreateHypothesis::SetRNo()
   SpinBox_RPE->setEnabled(false);
   SpinBox_RRel->setEnabled(false);
   SpinBox_RAbs->setEnabled(false);
+  SpinBox_RMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetCPE()
@@ -491,6 +624,7 @@ void MonCreateHypothesis::SetCPE()
   SpinBox_CPE->setEnabled(true);
   SpinBox_CRel->setEnabled(false);
   SpinBox_CAbs->setEnabled(false);
+  SpinBox_CMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetCRel()
@@ -502,6 +636,7 @@ void MonCreateHypothesis::SetCRel()
   SpinBox_CPE->setEnabled(false);
   SpinBox_CRel->setEnabled(true);
   SpinBox_CAbs->setEnabled(false);
+  SpinBox_CMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetCAbs()
@@ -513,6 +648,19 @@ void MonCreateHypothesis::SetCAbs()
   SpinBox_CPE->setEnabled(false);
   SpinBox_CRel->setEnabled(false);
   SpinBox_CAbs->setEnabled(true);
+  SpinBox_CMuSigma->setEnabled(false);
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetCMS()
+// ------------------------------------------------------------------------
+{
+  _aTypeDera = 1 ;
+  _TypeThC = 4 ;
+  RBCMuSigma->setChecked(true);
+  SpinBox_CPE->setEnabled(false);
+  SpinBox_CRel->setEnabled(false);
+  SpinBox_CAbs->setEnabled(false);
+  SpinBox_CMuSigma->setEnabled(true);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetCNo()
@@ -524,6 +672,7 @@ void MonCreateHypothesis::SetCNo()
   SpinBox_CPE->setEnabled(false);
   SpinBox_CRel->setEnabled(false);
   SpinBox_CAbs->setEnabled(false);
+  SpinBox_CMuSigma->setEnabled(false);
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetUCL2()
@@ -536,15 +685,23 @@ void MonCreateHypothesis::SetUCL2()
 void MonCreateHypothesis::SetUCInf()
 // ------------------------------------------------------------------------
 {
-  _UsCmpI = 1 ;
+  if ( TWCMP->rowCount() == 1 ) { _UsCmpI = 2 ; }
+  else                          { _UsCmpI = 1 ; }
   RBInf->setChecked(true);
 }
 // ------------------------------------------------------------------------
+void MonCreateHypothesis::SetUseField()
+// ------------------------------------------------------------------------
+{
+  if ( CBJump->isChecked() ) { _UsField = 1 ; }
+  else                       { _UsField = 0 ; }
+}
+// ------------------------------------------------------------------------
 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();
 }
 
@@ -559,14 +716,16 @@ bool MonCreateHypothesis::VerifieZone()
 // ------------------------------------------------------------------------
 {
   if ( _aTypeAdap != 0 ) return true;
+  MESSAGE("Debut de VerifieZone") ;
   _aListeZone = GetZonesChecked() ;
+  MESSAGE(". Longueur de _aListeZone : "<<_aListeZone.count()) ;
   if (_aListeZone.count() == 0)
   {
-     QMessageBox::information( 0, "Error",
-                              QString("At least, one zone must be given."),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_ZONE_2") );
      return false;
   }
+  MESSAGE("Fin de VerifieZone") ;
   return true;
 }
 // ------------------------------------------------------------------------
@@ -577,9 +736,8 @@ bool MonCreateHypothesis::VerifieComposant()
   _aListeComposant = GetListCompChecked() ;
   if (_aListeComposant.count() == 0)
   {
-     QMessageBox::information( 0, "Error",
-                              QString("At least, one composant must be given."),
-                               QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_COMP") );
      return false;
   }
   return true;
@@ -589,10 +747,19 @@ bool MonCreateHypothesis::VerifieComposant()
 void MonCreateHypothesis::AssocieLesZones()
 // ------------------------------------------------------------------------
 {
+  MESSAGE( "Debut de AssocieLesZones" );
   if ( _aTypeAdap != 0 ) return;
   _aListeZone = GetZonesChecked() ;
+  MESSAGE(". Longueur de _aListeZone : "<<_aListeZone.count()) ;
+  QString Raff =  "1" ;
+  int TypeUse ;
   for ( int i=0 ; i< _aListeZone.count() ; i++ )
-      { _myHomardGen->AssociateHypoZone(_aListeZone[i].toStdString().c_str(),_aHypothesisName.toStdString().c_str()); }
+  { if ( _aListeZone[i+1] == Raff ) { TypeUse =  1 ; }
+    else                            { TypeUse = -1 ; }
+    aHypothesis->AddZone(_aListeZone[i].toStdString().c_str(), TypeUse);
+    i += 1 ;
+  }
+  MESSAGE( "Fin de AssocieLesZones" );
 };
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::AssocieComposants()
@@ -606,20 +773,23 @@ void MonCreateHypothesis::AssocieComposants()
   if ( _TypeThR == 1 ) { _ThreshR = SpinBox_RAbs->value();}
   if ( _TypeThR == 2 ) { _ThreshR = SpinBox_RRel->value();}
   if ( _TypeThR == 3 ) { _ThreshR = SpinBox_RPE->value(); }
+  if ( _TypeThR == 4 ) { _ThreshR = SpinBox_RMuSigma->value(); }
 
   _ThreshC = 0;
   if ( _TypeThC == 1 ) { _ThreshC = SpinBox_CAbs->value();}
   if ( _TypeThC == 2 ) { _ThreshC = SpinBox_CRel->value();}
   if ( _TypeThC == 3 ) { _ThreshC = SpinBox_CPE->value(); }
+  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->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()
@@ -631,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);
 
 }
 // ------------------------------------------------------------------------
@@ -643,8 +813,9 @@ void MonCreateHypothesis::SetFieldNo()
   else                   { GBFieldFile->setVisible(0); }
   TWField->setVisible(0);
 //
-   adjustSize();
   _TypeFieldInterp = 0 ;
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldAll()
@@ -653,9 +824,8 @@ void MonCreateHypothesis::SetFieldAll()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -666,7 +836,8 @@ void MonCreateHypothesis::SetFieldAll()
   TWField->setVisible(0);
 //
   _TypeFieldInterp = 1 ;
-   adjustSize();
+//
+  adjustSize();
 }
 // ------------------------------------------------------------------------
 void MonCreateHypothesis::SetFieldChosen()
@@ -674,9 +845,8 @@ void MonCreateHypothesis::SetFieldChosen()
 {
   if (_aFieldFile == QString(""))
   {
-     QMessageBox::information( 0, "Error",
-                              QString("Enter FieldFile please "),
-                              QMessageBox::Ok + QMessageBox::Default );
+    QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
+                              QObject::tr("HOM_HYPO_FIELD_FILE") );
      close();
      if ( _parent ) { _parent->raise(); _parent->activateWindow(); };
      return;
@@ -689,9 +859,11 @@ void MonCreateHypothesis::SetFieldChosen()
 
   // Initialisation de la table
   TWField->clear();
-  for ( int row=0; row< TWField->rowCount(); row++)
+  int nbrow=TWField->rowCount();
+  for ( int row=0; row< nbrow; row++)
+  {
      TWField->removeRow(row);
-
+  }
   TWField->setRowCount(0);
   std:: list<QString>::const_iterator it;
   int row=0;
@@ -702,7 +874,7 @@ void MonCreateHypothesis::SetFieldChosen()
     TWField->item( row, 0 )->setFlags( 0 );
     TWField->item( row, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled  );
     TWField->item( row, 0 )->setCheckState( Qt::Unchecked );
-    TWField->setItem( row, 1, new QTableWidgetItem(QString(*it)));
+    TWField->setItem( row, 1, new QTableWidgetItem(QString(*it).trimmed()));
     TWField->item( row, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
     row=row+1;
   }
@@ -712,5 +884,52 @@ void MonCreateHypothesis::SetFieldChosen()
   TWField->setVisible(1);
 
   _TypeFieldInterp = 2 ;
-   adjustSize();
+//
+  adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAdvanced()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAdvanced ");
+  if (CBAdvanced->isChecked())
+  { GBAdvancedOptions->setVisible(1);
+    if (_aFieldFile != QString("")) { GBAdapInit->setVisible(1) ; }
+    else                            { GBAdapInit->setVisible(0) ; }
+  }
+  else
+  { GBAdvancedOptions->setVisible(0);
+    _NivMax = -1 ;
+    _DiamMin = -1. ;
+    _AdapInit = 0 ;
+    CBOutputLevel->setChecked(false);
+    CBOutputQuality->setChecked(false);
+    CBOutputDiameter->setChecked(false);
+    CBOutputParent->setChecked(false);
+    CBOutputVoisins->setChecked(false);
+    _ExtraOutput = 1 ;
+  }
+//
+  adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAIN()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAIN ");
+  _AdapInit = 0 ;
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAIR()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAIR ");
+  _AdapInit = 1 ;
+}
+// ------------------------------------------------------------------------
+void MonCreateHypothesis::SetAID()
+// ------------------------------------------------------------------------
+{
+  MESSAGE("Debut de SetAID ");
+  _AdapInit = -1 ;
 }