Salome HOME
Gestion des erreurs de données
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MG_ADAPTDRIVER.cxx
index 1e732a8a098286e7d8cde59adb4e61a186509b8e..fc1496380c1b6462edd792630a65e42ce29ac4e4 100644 (file)
 
 #include <TCollection_AsciiString.hxx>
 
-const int SPACING = 6;            // layout spacing
-const int MARGIN  = 9;            // layout margin
+const int SPACING = 6; // layout spacing
+const int MARGIN  = 9; // layout margin
 
 SALOME_ListIO mySelected;
 
@@ -116,8 +116,8 @@ SALOME_ListIO mySelected;
 //================================================================
 Handle(SALOME_InteractiveObject) firstIObject()
 {
-    const SALOME_ListIO& aList = selectedIO();
-    return aList.Extent() > 0 ? aList.First() : Handle(SALOME_InteractiveObject)();
+  const SALOME_ListIO& aList = selectedIO();
+  return aList.Extent() > 0 ? aList.First() : Handle(SALOME_InteractiveObject)();
 }
 //================================================================
 // Function : selectedIO
@@ -125,15 +125,15 @@ Handle(SALOME_InteractiveObject) firstIObject()
 //================================================================
 const SALOME_ListIO& selectedIO()
 {
-    SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* > ( SUIT_Session::session()->activeApplication() );
-    LightApp_SelectionMgr* aSelectionMgr = app->selectionMgr();
-    if( aSelectionMgr )
-    {
-        aSelectionMgr->selectedObjects( mySelected );
-        for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next())
-            SCRUTE(it.Value()->getEntry());
-    };
-    return mySelected;
+  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* > ( SUIT_Session::session()->activeApplication() );
+  LightApp_SelectionMgr* aSelectionMgr = app->selectionMgr();
+  if( aSelectionMgr )
+  {
+    aSelectionMgr->selectedObjects( mySelected );
+    for (SALOME_ListIteratorOfListIO it (mySelected); it.More(); it.Next())
+      SCRUTE(it.Value()->getEntry());
+  };
+  return mySelected;
 }
 //================================================================
 // Function : getStudy
@@ -141,76 +141,78 @@ const SALOME_ListIO& selectedIO()
 //================================================================
 _PTR(Study) getStudy()
 {
-    static _PTR(Study) _study;
-    if(!_study)
-        _study = SalomeApp_Application::getStudy();
-    return _study;
+  static _PTR(Study) _study;
+  if(!_study)
+      _study = SalomeApp_Application::getStudy();
+  return _study;
 }
 
 bool createAndPublishMed(QString fileName)
 {
 
-    SMESH::DriverMED_ReadStatus res;
-    SMESH::mesh_array_var aMeshes = new SMESH::mesh_array;
-    // SMESHGUI aGui;
-
-    aMeshes = SMESHGUI::GetSMESHGen()->CreateMeshesFromMED( fileName.toUtf8().constData(), res );
-    _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshes[0] );
-    _PTR(Study) aStudy = SMESH::getStudy();
-    QStringList anEntryList;
-    // bool isEmpty;
-    if ( aMeshSO ) {
-        _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-        _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( aMeshSO, "AttributePixMap" );
-        aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH_IMPORTED" );
-        anEntryList.append( aMeshSO->GetID().c_str() );
-    }
-    else {
-        // isEmpty = true;
-        return false;
-    }
-    SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+  SMESH::DriverMED_ReadStatus res;
+  SMESH::mesh_array_var aMeshes = new SMESH::mesh_array;
+  // SMESHGUI aGui;
 
-    // browse to the published meshes
-    if( LightApp_Application* anApp =
-                dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
-        anApp->browseObjects( anEntryList );
-    return true;
+  aMeshes = SMESHGUI::GetSMESHGen()->CreateMeshesFromMED( fileName.toUtf8().constData(), res );
+  _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshes[0] );
+  _PTR(Study) aStudy = SMESH::getStudy();
+  QStringList anEntryList;
+  // bool isEmpty;
+  if ( aMeshSO )
+  {
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( aMeshSO, "AttributePixMap" );
+    aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH_IMPORTED" );
+    anEntryList.append( aMeshSO->GetID().c_str() );
+  }
+  else
+  {
+      // isEmpty = true;
+      return false;
+  }
+  SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+
+  // browse to the published meshes
+  if( LightApp_Application* anApp =
+              dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
+      anApp->browseObjects( anEntryList );
+  return true;
 }
 bool createMgAdaptObject(MgAdapt *myMgAdapt )
 {
-    // SMESH::SMESH_Mesh_var newMesh = SMESHGUI::GetSMESHGen()->CreateEmptyMesh();
-
-    // _PTR(SObject) aHypothesis;
-    _PTR(Study) aStudy = SMESH::getStudy();
-    QStringList anEntryList;
-    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-    _PTR(SComponent) mgadapt = aStudy->FindComponent("MG-ADAPT");
-    _PTR(GenericAttribute) ga;
-    if (!aBuilder->FindAttribute(mgadapt, ga, "AttributeName") )
-    {
-        mgadapt = aBuilder->NewComponent("MG-ADAPT");
-        _PTR(AttributeName) Name = aBuilder->FindOrCreateAttribute(mgadapt, "AttributeName");
-        Name->SetValue("MG-ADAPT");
-        _PTR(AttributePixMap) myPixmap = aBuilder->FindOrCreateAttribute( mgadapt, "AttributePixMap" );
-        myPixmap->SetPixMap( "ICON_MG_ADAPT" );
-        anEntryList.append( mgadapt->GetID().c_str() );
-    }
-
-    _PTR(SObject) obj =  aBuilder->NewObject(mgadapt);
-    _PTR(AttributeName) myName = aBuilder->FindOrCreateAttribute(obj, "AttributeName");
-    myName->SetValue("hypo");
-    _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( obj, "AttributePixMap" );
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-    anEntryList.append( obj->GetID().c_str() );
-
-    SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-
-    // // browse to the published meshes
-    if( LightApp_Application* anApp =
-                dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
-        anApp->browseObjects( anEntryList );
-    return true;
+  // SMESH::SMESH_Mesh_var newMesh = SMESHGUI::GetSMESHGen()->CreateEmptyMesh();
+
+  // _PTR(SObject) aHypothesis;
+  _PTR(Study) aStudy = SMESH::getStudy();
+  QStringList anEntryList;
+  _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+  _PTR(SComponent) mgadapt = aStudy->FindComponent("MG-ADAPT");
+  _PTR(GenericAttribute) ga;
+  if (!aBuilder->FindAttribute(mgadapt, ga, "AttributeName") )
+  {
+    mgadapt = aBuilder->NewComponent("MG-ADAPT");
+    _PTR(AttributeName) Name = aBuilder->FindOrCreateAttribute(mgadapt, "AttributeName");
+    Name->SetValue("MG-ADAPT");
+    _PTR(AttributePixMap) myPixmap = aBuilder->FindOrCreateAttribute( mgadapt, "AttributePixMap" );
+    myPixmap->SetPixMap( "ICON_MG_ADAPT" );
+    anEntryList.append( mgadapt->GetID().c_str() );
+  }
+
+  _PTR(SObject) obj = aBuilder->NewObject(mgadapt);
+  _PTR(AttributeName) myName = aBuilder->FindOrCreateAttribute(obj, "AttributeName");
+  myName->SetValue("hypo");
+  _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( obj, "AttributePixMap" );
+  aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
+  anEntryList.append( obj->GetID().c_str() );
+
+  SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+
+  // // browse to the published meshes
+  if( LightApp_Application* anApp =
+              dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
+      anApp->browseObjects( anEntryList );
+  return true;
 }
 
 
@@ -221,186 +223,182 @@ bool createMgAdaptObject(MgAdapt *myMgAdapt )
 //================================================================
 int IObjectCount()
 {
-    SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
-    LightApp_SelectionMgr* aSelectionMgr = app->selectionMgr();
-    if( aSelectionMgr )
-    {
-        aSelectionMgr->selectedObjects( mySelected );
-        SCRUTE(mySelected.Extent());
-        return mySelected.Extent();
-    }
-    return 0;
+  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  LightApp_SelectionMgr* aSelectionMgr = app->selectionMgr();
+  if( aSelectionMgr )
+  {
+      aSelectionMgr->selectedObjects( mySelected );
+      SCRUTE(mySelected.Extent());
+      return mySelected.Extent();
+  }
+  return 0;
 }
 
 
-SMESHGUI_MG_AdaptComputeDlg_QThread::SMESHGUI_MG_AdaptComputeDlg_QThread(MgAdapt* aModel)
-{
-    model = aModel;
-    myResult = -1;
-}
 
-void SMESHGUI_MG_AdaptComputeDlg_QThread::run()
+SMESHGUI_MG_ADAPTDRIVER::SMESHGUI_MG_ADAPTDRIVER( SMESHGUI* theModule, SMESH::MG_ADAPT_ptr myModel, bool isCreation )
+  : mySMESHGUI( theModule ),
+    myFilterDlg(0),
+    myIsApplyAndClose( false ),
+    SMESHGUI_MgAdaptDlg((SalomeApp_Module*)theModule, myModel, SMESHGUI::desktop(), isCreation)
 {
 
-    int err;
-    std::string errStr;
-    errStr = model->compute(errStr);
-    std::string msg = err == 0 ? " ok" : std::string("Not ok \n")+ errStr;
-    exec();
-}
+  resMgr = resourceMgr();
 
-int SMESHGUI_MG_AdaptComputeDlg_QThread::result()
-{
-    return myResult;
-}
+  selMgr = selectionMgr();
 
-void SMESHGUI_MG_AdaptComputeDlg_QThread::cancel()
-{
-    //~model->cancel();
-}
-
-SMESHGUI_MG_ADAPTDRIVER::SMESHGUI_MG_ADAPTDRIVER( SMESHGUI* theModule, MgAdapt* myModel, bool isCreation )
-    : mySMESHGUI( theModule ),
-      myFilterDlg(0),
-      myIsApplyAndClose( false ),
-      SMESHGUI_MgAdaptDlg((SalomeApp_Module*)theModule, myModel, SMESHGUI::desktop(), isCreation)
-{
-
-    resMgr = resourceMgr();
-
-    selMgr = selectionMgr();
-
-    // connections
-    connect(myArgs, SIGNAL(updateSelection()), this, SLOT(updateSelection()));
-    connect(myArgs, SIGNAL(toExportMED(const char*)), this, SLOT(exportMED(const char*)));
+  // connections
+  connect(myArgs, SIGNAL(updateSelection()), this, SLOT(updateSelection()));
+  connect(myArgs, SIGNAL(toExportMED(const char*)), this, SLOT(exportMED(const char*)));
 }
 
 SUIT_ResourceMgr* SMESHGUI_MG_ADAPTDRIVER::resourceMgr()
 {
-    return dynamic_cast<SUIT_ResourceMgr*>( SUIT_Session::session()->resourceMgr() );
+  return dynamic_cast<SUIT_ResourceMgr*>( SUIT_Session::session()->resourceMgr() );
 }
 
 LightApp_SelectionMgr* SMESHGUI_MG_ADAPTDRIVER::selectionMgr()
 {
-    SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
-    if( anApp )
-        return dynamic_cast<LightApp_SelectionMgr*>( anApp->selectionMgr() );
-    else
-        return 0;
+  SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
+  if( anApp )
+    return dynamic_cast<LightApp_SelectionMgr*>( anApp->selectionMgr() );
+  else
+    return 0;
 }
 
 void SMESHGUI_MG_ADAPTDRIVER::updateSelection()
 {
-    disconnect( selMgr, 0, this, 0 );
-    selMgr->clearFilters();
+  disconnect( selMgr, 0, this, 0 );
+  selMgr->clearFilters();
 
-    SMESH::SetPointRepresentation( true );
-    if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow() )
-        aViewWindow->SetSelectionMode( ActorSelection );
-    if (myArgs->aBrowser->isChecked())
-    {
-        connect( selMgr,  SIGNAL( currentSelectionChanged() ), this, SLOT( selectionChanged() ));
-        selectionChanged();
-    }
+  SMESH::SetPointRepresentation( true );
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow() )
+      aViewWindow->SetSelectionMode( ActorSelection );
+  if (myArgs->aBrowser->isChecked())
+  {
+    connect( selMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( selectionChanged() ));
+    selectionChanged();
+  }
 
 }
 void SMESHGUI_MG_ADAPTDRIVER::selectionChanged()
 {
-    //~ get selected mesh
-    SALOME_ListIO aList;
-    selMgr->selectedObjects(aList);
-    QString aString = "";
-    int nbSel = aList.Extent();
-    if (nbSel != 1)
-        return;
-
-    Handle(SALOME_InteractiveObject) IO = aList.First();
-    SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(IO);
-    if ( !mesh->_is_nil() )
-    {
-        myMesh  = mesh;
-
-        mySelectedObject = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
-        if ( mySelectedObject->_is_nil() )
-            return;
+  //~ get selected mesh
+  SALOME_ListIO aList;
+  selMgr->selectedObjects(aList);
+  QString aString = "";
+  int nbSel = aList.Extent();
+  if (nbSel != 1)
+    return;
+
+  Handle(SALOME_InteractiveObject) IO = aList.First();
+  SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(IO);
+  if ( !mesh->_is_nil() )
+  {
+    myMesh = mesh;
 
-    }
-    else
+    mySelectedObject = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
+    if ( mySelectedObject->_is_nil() )
         return;
-
-    SMESH::GetNameOfSelectedIObjects( selMgr, aString );
-    if ( aString.isEmpty() ) aString = " ";
-    else                     aString = aString.trimmed();
-
-
-    bool ok = !aString.isEmpty();
-    if ( !mesh->_is_nil() )
-    {
-        myArgs->aBrowserObject->setText( aString );
-        myArgs->meshNameLineEdit->setText( aString );
-        myArgs->selectOutMedFileLineEdit->setText(aString+QString(".med"));
-    }
+  }
+  else
+      return;
+
+  SMESH::GetNameOfSelectedIObjects( selMgr, aString );
+  if ( aString.isEmpty() ) aString = " ";
+  else                     aString = aString.trimmed();
+
+
+  bool ok = !aString.isEmpty();
+  if ( !mesh->_is_nil() )
+  {
+    myArgs->aBrowserObject->setText( aString );
+    myArgs->meshNameLineEdit->setText( aString );
+    myArgs->selectOutMedFileLineEdit->setText(aString+QString(".med"));
+    ADAPTATION_MODE aMode;
+    int nbVolumes = myMesh->NbVolumes();
+    int nbFaces = myMesh->NbFaces();
+    if(nbFaces > 0 && nbVolumes > 0) aMode = ADAPTATION_MODE::BOTH;
+    else if(nbFaces > 0) aMode = ADAPTATION_MODE::SURFACE;
+    else aMode = ADAPTATION_MODE::VOLUME;
+    emit myArgs->meshDimSignal(aMode);
+  }
 
 }
 void SMESHGUI_MG_ADAPTDRIVER::exportMED(const char* tmp_file)
 {
-    bool toOverwrite  = true;
-    bool toFindOutDim = true;
-    myMesh->ExportMED(tmp_file, false, -1, toOverwrite, toFindOutDim);
+  bool toOverwrite = true;
+  bool toFindOutDim = true;
+  myMesh->ExportMED(tmp_file, false, -1, toOverwrite, toFindOutDim);
 }
 void SMESHGUI_MG_ADAPTDRIVER::setMyMesh(SMESH::SMESH_Mesh_var mesh)
 {
-    myMesh = mesh;
+  myMesh = mesh;
 }
 SMESH::SMESH_Mesh_var SMESHGUI_MG_ADAPTDRIVER::getMyMesh()
 {
-    return myMesh;
+  return myMesh;
 }
 
 //=================================================================================
-// function : ClickOnOk()
+// function : PushOnOk()
 // purpose  :
 //=================================================================================
-void SMESHGUI_MG_ADAPTDRIVER::clickOnOk()
+void SMESHGUI_MG_ADAPTDRIVER::PushOnOK()
 {
-    setIsApplyAndClose( true );
-    clickOnApply();
-    reject();
+  setIsApplyAndClose( true );
+  bool ret = PushOnApply();
+//   std::cout  << "SMESHGUI_MG_ADAPTDRIVER::PushOnOK ret : " <<ret<<std::endl;
+  if ( ret ) reject();
 }
-bool SMESHGUI_MG_ADAPTDRIVER::clickOnApply()
+bool SMESHGUI_MG_ADAPTDRIVER::PushOnApply()
 {
+  MESSAGE("PushOnApply");
 
-    if ( SMESHGUI::isStudyLocked() )
-        return false;
-    if( !isValid() )
-        return false;
+  if ( SMESHGUI::isStudyLocked() )
+    return false;
+  if( !isValid() )
+    return false;
 
-    SMESHGUI_MgAdaptDlg::clickOnApply();
+  bool ok = SMESHGUI_MgAdaptDlg::PushOnApply();
+//   std::cout  << "SMESHGUI_MG_ADAPTDRIVER::PushOnApply ok 1 : " <<ok<<std::endl;
 
-    bool ok = execute();
-    //~SMESHGUI_MG_AdaptComputeDlg_QThread atest(getModel());
-    //~atest.start();
-    //~atest.quit();
+  if ( ok )
+  {
+    ok = execute();
     if (getModel()->getPublish()) this->createMeshInObjectBrowser();
+//     std::cout  << "SMESHGUI_MG_ADAPTDRIVER::PushOnApply ok 2 : " <<ok<<std::endl;
+    if ( ok )
+    {
+      QMessageBox::information( 0, QObject::tr(""),
+                                   QObject::tr("MG_ADAPT_DIAG_1") );
+    }
+    else
+    {
+      QMessageBox::critical( 0, QObject::tr("MG_ADAPT_ERROR"),
+                                QObject::tr("MG_ADAPT_DIAG_2") );
+    }
+  }
 
-    return ok;
+  return ok;
 }
 
 bool SMESHGUI_MG_ADAPTDRIVER::execute()
 {
-
-    int err;
-    std::string errStr;
-    try
-    {
-        err = getModel()->compute(errStr);
-        std::string msg =  err == 0 ? " ok" : std::string("Not ok \n")+errStr ;
-    }
-    catch (const std::exception& e)
-    {
-        std::cerr<<e.what();
-    }
-    return err == 0? true: false;
+  int err;
+  //~std::string errStr;
+  char* errStr;
+  try
+  {
+    err = getModel()->compute();
+    errStr = getModel()->getErrMsg();
+    std::string msg = err == 0 ? " ok" : std::string("Not ok \n")+CORBA::string_dup(errStr) ;
+  }
+  catch (const std::exception& e)
+  {
+    std::cerr<<e.what();
+  }
+  return err == 0? true: false;
 }
 
 //=================================================================================
@@ -409,23 +407,23 @@ bool SMESHGUI_MG_ADAPTDRIVER::execute()
 //=================================================================================
 void SMESHGUI_MG_ADAPTDRIVER::Init (bool ResetControls)
 {
-    myBusy = false;
+  myBusy = false;
 
-    if ( ResetControls )
-    {
-        myLineEditElements->clear();
-        myNbOkElements = 0;
+  if ( ResetControls )
+  {
+    myLineEditElements->clear();
+    myNbOkElements = 0;
 
-        buttonOk->setEnabled(false);
-        buttonApply->setEnabled(false);
+    buttonOk->setEnabled(false);
+    buttonApply->setEnabled(false);
 
-        //~myActor = 0;
-        myMesh = SMESH::SMESH_Mesh::_nil();
+    //~myActor = 0;
+    myMesh = SMESH::SMESH_Mesh::_nil();
 
-        myIdSourceCheck->setChecked(true);
+    myIdSourceCheck->setChecked(true);
 
-        onConstructor( 0 );
-    }
+    onConstructor( 0 );
+  }
 
 }
 
@@ -437,23 +435,21 @@ void SMESHGUI_MG_ADAPTDRIVER::Init (bool ResetControls)
 void SMESHGUI_MG_ADAPTDRIVER::onConstructor( int withGeom )
 {
 
-    myGeomLabel        ->setVisible( withGeom );
-    myGeomNameEdit     ->setVisible( withGeom );
-    myReuseHypCheck    ->setVisible( withGeom );
-    myCopyElementsCheck->setVisible( withGeom );
-    myFilterBtn        ->setVisible( !withGeom );
-    myIdSourceCheck    ->setVisible( !withGeom );
+  myGeomLabel        ->setVisible( withGeom );
+  myGeomNameEdit     ->setVisible( withGeom );
+  myReuseHypCheck    ->setVisible( withGeom );
+  myCopyElementsCheck->setVisible( withGeom );
+  myFilterBtn        ->setVisible( !withGeom );
+  myIdSourceCheck    ->setVisible( !withGeom );
 
-    if ( !withGeom )
-        myMeshNameEdit->setText( SMESH::UniqueMeshName("Mesh"));
+  if ( !withGeom )
+      myMeshNameEdit->setText( SMESH::UniqueMeshName("Mesh"));
 
 }
 
-
 //~void SMESHGUI_MG_ADAPTDRIVER::onSelectIdSource( bool )
 //~{}
 
-
 //=================================================================================
 // function : enterEvent()
 // purpose  :
@@ -461,13 +457,13 @@ void SMESHGUI_MG_ADAPTDRIVER::onConstructor( int withGeom )
 void SMESHGUI_MG_ADAPTDRIVER::enterEvent (QEvent*)
 {
 
-    // if ( !ConstructorsBox->isEnabled() ) {
-    //   SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-    //   if ( aViewWindow && !mySelector ) {
-    //     mySelector = aViewWindow->GetSelector();
-    //   }
-    //   activateThisDialog();
-    // }
+  // if ( !ConstructorsBox->isEnabled() ) {
+  //   SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI );
+  //   if ( aViewWindow && !mySelector ) {
+  //     mySelector = aViewWindow->GetSelector();
+  //   }
+  //   activateThisDialog();
+  // }
 
 }
 
@@ -478,40 +474,28 @@ void SMESHGUI_MG_ADAPTDRIVER::enterEvent (QEvent*)
 void SMESHGUI_MG_ADAPTDRIVER::keyPressEvent( QKeyEvent* e )
 {
 
-    QDialog::keyPressEvent( e );
-    if ( e->isAccepted() )
-        return;
+  QDialog::keyPressEvent( e );
+  if ( e->isAccepted() )
+      return;
 
-    if ( e->key() == Qt::Key_F1 ) {
-        e->accept();
-        clickOnHelp();
-    }
+  if ( e->key() == Qt::Key_F1 )
+  {
+    e->accept();
+    PushOnHelp();
+  }
 
 }
 
 //=================================================================================
-// function : clickOnHelp()
+// function : PushOnHelp()
 // purpose  :
 //=================================================================================
-void SMESHGUI_MG_ADAPTDRIVER::clickOnHelp()
-{
-
-    LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
-    if (app)
-        app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
-    else {
-        QString platform;
-#ifdef WIN32
-        platform = "winapplication";
-#else
-        platform = "application";
-#endif
-        SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
-                                 tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
-                                 arg(app->resourceMgr()->stringValue("ExternalBrowser",
-                                         platform)).
-                                 arg(myHelpFileName));
-    }
+void SMESHGUI_MG_ADAPTDRIVER::PushOnHelp()
+{
+
+  QString aHelpFile = "adaptation.html#_mg_adapt_anchor";
+
+  SMESH::ShowHelpFile( aHelpFile );
 
 }
 
@@ -521,74 +505,74 @@ void SMESHGUI_MG_ADAPTDRIVER::clickOnHelp()
 //=======================================================================
 
 QString SMESHGUI_MG_ADAPTDRIVER::getErrorMsg( SMESH::string_array_var theInvalidEntries,
-        QStringList &           theEntriesToBrowse )
+        QStringList & theEntriesToBrowse )
 {
 
-    if ( theInvalidEntries->length() == 0 )
-        return tr("OPERATION_FAILED");
+  if ( theInvalidEntries->length() == 0 )
+      return tr("OPERATION_FAILED");
+
+  // theInvalidEntries - SObject's that hold geometry objects whose
+  // counterparts are not found in the newGeometry, followed by SObject's
+  // holding mesh sub-objects that are invalid because they depend on a not found
+  // preceding sub-shape
 
-    // theInvalidEntries - SObject's that hold geometry objects whose
-    // counterparts are not found in the newGeometry, followed by SObject's
-    // holding mesh sub-objects that are invalid because they depend on a not found
-    // preceding sub-shape
+  QString msg = tr("SUBSHAPES_NOT_FOUND_MSG") + "\n";
 
-    QString msg = tr("SUBSHAPES_NOT_FOUND_MSG") + "\n";
+  QString objString;
+  for ( CORBA::ULong i = 0; i < theInvalidEntries->length(); ++i )
+  {
+    _PTR(SObject) so = SMESH::getStudy()->FindObjectID( theInvalidEntries[i].in() );
 
-    QString objString;
-    for ( CORBA::ULong i = 0; i < theInvalidEntries->length(); ++i )
+    int objType = SMESHGUI_Selection::type( theInvalidEntries[i].in() );
+    if ( objType < 0 ) // geom object
+    {
+      objString += "\n";
+      if ( so )
+          objString += so->GetName().c_str();
+      else
+          objString += theInvalidEntries[i].in(); // it's something like "FACE #2"
+    }
+    else // smesh object
     {
-        _PTR(SObject) so = SMESH::getStudy()->FindObjectID( theInvalidEntries[i].in() );
-
-        int objType = SMESHGUI_Selection::type( theInvalidEntries[i].in() );
-        if ( objType < 0 ) // geom object
-        {
-            objString += "\n";
-            if ( so )
-                objString += so->GetName().c_str();
-            else
-                objString += theInvalidEntries[i].in(); // it's something like "FACE #2"
-        }
-        else // smesh object
-        {
-            theEntriesToBrowse.push_back( theInvalidEntries[i].in() );
-
-            objString += "\n   ";
-            switch ( objType ) {
-            case SMESH::MESH:
-                objString += tr("SMESH_MESH");
-                break;
-            case SMESH::HYPOTHESIS:
-                objString += tr("SMESH_HYPOTHESIS");
-                break;
-            case SMESH::ALGORITHM:
-                objString += tr("SMESH_ALGORITHM");
-                break;
-            case SMESH::SUBMESH_VERTEX:
-            case SMESH::SUBMESH_EDGE:
-            case SMESH::SUBMESH_FACE:
-            case SMESH::SUBMESH_SOLID:
-            case SMESH::SUBMESH_COMPOUND:
-            case SMESH::SUBMESH:
-                objString += tr("SMESH_SUBMESH");
-                break;
-            case SMESH::GROUP:
-                objString += tr("SMESH_GROUP");
-                break;
-            default:
-                ;
-            }
-            objString += " \"";
-            if ( so )
-                objString += so->GetName().c_str();
-            objString += "\" (";
-            objString += theInvalidEntries[i].in();
-            objString += ")";
-        }
+      theEntriesToBrowse.push_back( theInvalidEntries[i].in() );
+
+      objString += "\n ";
+      switch ( objType ) {
+      case SMESH::MESH:
+          objString += tr("SMESH_MESH");
+          break;
+      case SMESH::HYPOTHESIS:
+          objString += tr("SMESH_HYPOTHESIS");
+          break;
+      case SMESH::ALGORITHM:
+          objString += tr("SMESH_ALGORITHM");
+          break;
+      case SMESH::SUBMESH_VERTEX:
+      case SMESH::SUBMESH_EDGE:
+      case SMESH::SUBMESH_FACE:
+      case SMESH::SUBMESH_SOLID:
+      case SMESH::SUBMESH_COMPOUND:
+      case SMESH::SUBMESH:
+          objString += tr("SMESH_SUBMESH");
+          break;
+      case SMESH::GROUP:
+          objString += tr("SMESH_GROUP");
+          break;
+      default:
+          ;
+      }
+      objString += " \"";
+      if ( so )
+          objString += so->GetName().c_str();
+      objString += "\" (";
+      objString += theInvalidEntries[i].in();
+      objString += ")";
     }
-    if ( !objString.isEmpty() )
-        msg += objString;
+  }
+  if ( !objString.isEmpty() )
+      msg += objString;
 
-    return msg;
+  return msg;
 }
 
 //=================================================================================
@@ -598,64 +582,66 @@ QString SMESHGUI_MG_ADAPTDRIVER::getErrorMsg( SMESH::string_array_var theInvalid
 
 bool SMESHGUI_MG_ADAPTDRIVER::isValid()
 {
-    bool ok = true;
-    return ok;
+  bool ok = true;
+  return ok;
 }
 
 bool SMESHGUI_MG_ADAPTDRIVER::createMeshInObjectBrowser()
 {
-    QString filename(getModel()->getMedFileOut().c_str());
-    QStringList errors;
-    QStringList anEntryList;
-    bool isEmpty = false;
-    bool ok = false;
-    SMESH::SMESH_Gen_var SMESH_Gen_ptr = SMESHGUI::GetSMESHGen();
-    if (!SMESH_Gen_ptr) {
-        std::cerr << "Could not retrieve SMESH_Gen_ptr" << std::endl;
-        throw SALOME_Exception(LOCALIZED("Could not retrieve SMESH::GetSMESHGen()"));
-    }
-    SMESH::mesh_array_var aMeshes = new SMESH::mesh_array;
-    aMeshes->length( 1 ); // one mesh only
-    SMESH::DriverMED_ReadStatus res;
-    aMeshes = SMESH_Gen_ptr->CreateMeshesFromMED( filename.toUtf8().constData(), res );
-    if ( res != SMESH::DRS_OK ) {
-        errors.append( QString( "%1 :\n\t%2" ).arg( filename ).arg( QObject::tr( QString( "SMESH_DRS_%1" ).arg( res ).toLatin1().data() ) ) );
-    }
-    _PTR(Study) aStudy = SMESH::getStudy();
-    for ( int i = 0, iEnd = aMeshes->length(); i < iEnd; i++ )
+  QString filename(getModel()->getMedFileOut());
+  QStringList errors;
+  QStringList anEntryList;
+  bool isEmpty = false;
+  bool ok = false;
+  SMESH::SMESH_Gen_var SMESH_Gen_ptr = SMESHGUI::GetSMESHGen();
+  if (!SMESH_Gen_ptr) {
+    std::cerr << "Could not retrieve SMESH_Gen_ptr" << std::endl;
+    throw SALOME_Exception(LOCALIZED("Could not retrieve SMESH::GetSMESHGen()"));
+  }
+  SMESH::mesh_array_var aMeshes = new SMESH::mesh_array;
+  aMeshes->length( 1 ); // one mesh only
+  SMESH::DriverMED_ReadStatus res;
+  aMeshes = SMESH_Gen_ptr->CreateMeshesFromMED( filename.toUtf8().constData(), res );
+  if ( res != SMESH::DRS_OK ) {
+    errors.append( QString( "%1 :\n\t%2" ).arg( filename ).arg( QObject::tr( QString( "SMESH_DRS_%1" ).arg( res ).toLatin1().data() ) ) );
+  }
+  _PTR(Study) aStudy = SMESH::getStudy();
+  for ( int i = 0, iEnd = aMeshes->length(); i < iEnd; i++ )
+  {
+    _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshes[i] );
+    if ( aMeshSO )
     {
-        _PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshes[i] );
-        if ( aMeshSO ) {
-            _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
-            _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( aMeshSO, "AttributePixMap" );
-            aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH_IMPORTED" ); // put REFINED mesh ico
-            anEntryList.append( aMeshSO->GetID().c_str() );
-        }
-        else {
-            isEmpty = true;
-        }
-    }
-    // update Object browser
-    SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-    // browse to the published meshes
-    if( LightApp_Application* anApp =
-                dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
-        anApp->browseObjects( anEntryList );
-
-    // show Error message box if there were errors
-    if ( errors.count() > 0 ) {
-        SUIT_MessageBox::critical( SMESHGUI::desktop(),
-                                   QObject::tr( "SMESH_ERROR" ),
-                                   QObject::tr( "SMESH_IMPORT_ERRORS" ) + "\n" + errors.join( "\n" ) );
+      _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+      _PTR(AttributePixMap) aPixmap = aBuilder->FindOrCreateAttribute( aMeshSO, "AttributePixMap" );
+      aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH_IMPORTED" ); // put REFINED mesh ico
+      anEntryList.append( aMeshSO->GetID().c_str() );
     }
-
-    // show warning message box, if some imported mesh is empty
-    if ( isEmpty ) {
-        SUIT_MessageBox::warning( SMESHGUI::desktop(),
-                                  QObject::tr( "SMESH_WRN_WARNING" ),
-                                  QObject::tr( "SMESH_DRS_SOME_EMPTY" ) );
+    else
+    {
+      isEmpty = true;
     }
-    return true;
+  }
+  // update Object browser
+  SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+  // browse to the published meshes
+  if( LightApp_Application* anApp =
+              dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() ) )
+      anApp->browseObjects( anEntryList );
+
+  // show Error message box if there were errors
+  if ( errors.count() > 0 ) {
+    SUIT_MessageBox::critical( SMESHGUI::desktop(),
+                                QObject::tr( "SMESH_ERROR" ),
+                                QObject::tr( "SMESH_IMPORT_ERRORS" ) + "\n" + errors.join( "\n" ) );
+  }
+
+  // show warning message box, if some imported mesh is empty
+  if ( isEmpty ) {
+    SUIT_MessageBox::warning( SMESHGUI::desktop(),
+                                QObject::tr( "SMESH_WRN_WARNING" ),
+                                QObject::tr( "SMESH_DRS_SOME_EMPTY" ) );
+  }
+  return true;
 }
 
 //================================================================
@@ -665,7 +651,7 @@ bool SMESHGUI_MG_ADAPTDRIVER::createMeshInObjectBrowser()
 //================================================================
 void SMESHGUI_MG_ADAPTDRIVER::setIsApplyAndClose( const bool theFlag )
 {
-    myIsApplyAndClose = theFlag;
+  myIsApplyAndClose = theFlag;
 }//================================================================
 // function : isApplyAndClose
 // Purpose  : Get value of the flag indicating that the dialog is
@@ -673,7 +659,7 @@ void SMESHGUI_MG_ADAPTDRIVER::setIsApplyAndClose( const bool theFlag )
 //================================================================
 bool SMESHGUI_MG_ADAPTDRIVER::isApplyAndClose() const
 {
-    return myIsApplyAndClose;
+  return myIsApplyAndClose;
 }
 
 //=================================================================================
@@ -682,16 +668,16 @@ bool SMESHGUI_MG_ADAPTDRIVER::isApplyAndClose() const
 //=================================================================================
 void SMESHGUI_MG_ADAPTDRIVER::deactivateActiveDialog()
 {
-
-    if (ConstructorsBox->isEnabled()) {
-        ConstructorsBox->setEnabled(false);
-        GroupArguments->setEnabled(false);
-        GroupButtons->setEnabled(false);
-        mySMESHGUI->ResetState();
-        mySMESHGUI->SetActiveDialogBox(0);
-        if ( selMgr )
-            selMgr->removeFilter( myIdSourceFilter );
-    }
+  if (ConstructorsBox->isEnabled())
+  {
+    ConstructorsBox->setEnabled(false);
+    GroupArguments->setEnabled(false);
+    GroupButtons->setEnabled(false);
+    mySMESHGUI->ResetState();
+    mySMESHGUI->SetActiveDialogBox(0);
+    if ( selMgr )
+        selMgr->removeFilter( myIdSourceFilter );
+  }
 }
 
 //=================================================================================
@@ -701,17 +687,17 @@ void SMESHGUI_MG_ADAPTDRIVER::deactivateActiveDialog()
 void SMESHGUI_MG_ADAPTDRIVER::activateThisDialog()
 {
 
-    /* Emit a signal to deactivate the active dialog */
-    // mySMESHGUI->EmitSignalDeactivateDialog();
-    // ConstructorsBox->setEnabled(true);
-    // GroupArguments->setEnabled(true);
-    // GroupButtons->setEnabled(true);
+  /* Emit a signal to deactivate the active dialog */
+  // mySMESHGUI->EmitSignalDeactivateDialog();
+  // ConstructorsBox->setEnabled(true);
+  // GroupArguments->setEnabled(true);
+  // GroupButtons->setEnabled(true);
 
-    // mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+  // mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
-    // onSelectIdSource( myIdSourceCheck->isChecked() );
+  // onSelectIdSource( myIdSourceCheck->isChecked() );
 
-    // SelectionIntoArgument();
+  // SelectionIntoArgument();
 }
 
 //=================================================================================
@@ -720,29 +706,30 @@ void SMESHGUI_MG_ADAPTDRIVER::activateThisDialog()
 //=================================================================================
 void SMESHGUI_MG_ADAPTDRIVER::setFilters()
 {
-    if(myMesh->_is_nil()) {
-        SUIT_MessageBox::critical(this,
-                                  tr("SMESH_ERROR"),
-                                  tr("NO_MESH_SELECTED"));
-        return;
-    }
-    if ( !myFilterDlg )
-        myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
-
-    QList<int> types;
-    if ( myMesh->NbEdges()     ) types << SMESH::EDGE;
-    if ( myMesh->NbFaces()     ) types << SMESH::FACE;
-    if ( myMesh->NbVolumes()   ) types << SMESH::VOLUME;
-    if ( myMesh->NbBalls()     ) types << SMESH::BALL;
-    if ( myMesh->Nb0DElements()) types << SMESH::ELEM0D;
-    if ( types.count() > 1 )     types << SMESH::ALL;
-
-    myFilterDlg->Init( types );
-    myFilterDlg->SetSelection();
-    myFilterDlg->SetMesh( myMesh );
-    myFilterDlg->SetSourceWg( myLineEditElements );
-
-    myFilterDlg->show();
+  if(myMesh->_is_nil())
+  {
+    SUIT_MessageBox::critical(this,
+                                tr("SMESH_ERROR"),
+                                tr("NO_MESH_SELECTED"));
+    return;
+  }
+  if ( !myFilterDlg )
+      myFilterDlg = new SMESHGUI_FilterDlg( mySMESHGUI, SMESH::ALL );
+
+  QList<int> types;
+  if ( myMesh->NbEdges()     ) types << SMESH::EDGE;
+  if ( myMesh->NbFaces()     ) types << SMESH::FACE;
+  if ( myMesh->NbVolumes()   ) types << SMESH::VOLUME;
+  if ( myMesh->NbBalls()     ) types << SMESH::BALL;
+  if ( myMesh->Nb0DElements()) types << SMESH::ELEM0D;
+  if ( types.count() > 1 )     types << SMESH::ALL;
+
+  myFilterDlg->Init( types );
+  myFilterDlg->SetSelection();
+  myFilterDlg->SetMesh( myMesh );
+  myFilterDlg->SetSourceWg( myLineEditElements );
+
+  myFilterDlg->show();
 }
 
 //=================================================================================
@@ -751,13 +738,13 @@ void SMESHGUI_MG_ADAPTDRIVER::setFilters()
 //=================================================================================
 void SMESHGUI_MG_ADAPTDRIVER::onOpenView()
 {
-    if ( mySelector ) {
-        SMESH::SetPointRepresentation(false);
-    }
-    else {
-        mySelector = SMESH::GetViewWindow( mySMESHGUI )->GetSelector();
-        activateThisDialog();
-    }
+  if ( mySelector ) {
+    SMESH::SetPointRepresentation(false);
+  }
+  else {
+    mySelector = SMESH::GetViewWindow( mySMESHGUI )->GetSelector();
+    activateThisDialog();
+  }
 }
 
 //=================================================================================
@@ -766,6 +753,6 @@ void SMESHGUI_MG_ADAPTDRIVER::onOpenView()
 //=================================================================================
 void SMESHGUI_MG_ADAPTDRIVER::onCloseView()
 {
-    deactivateActiveDialog();
-    mySelector = 0;
+  deactivateActiveDialog();
+  mySelector = 0;
 }