Salome HOME
Merge from BR_WIN_INDUS_514 04/10/2010
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshInfosDlg.cxx
index 044c55001089590371f22d1aede762d14e18b18a..40def53abb1f591240b196821f62a852bea0eeac 100644 (file)
@@ -1,4 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -19,6 +19,7 @@
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 // SMESH SMESHGUI : GUI for SMESH component
 // File   : SMESHGUI_MeshInfosDlg.cxx
 // Author : Nicolas BARBEROU
@@ -28,6 +29,7 @@
 
 #include "SMESHGUI.h"
 #include "SMESHGUI_Utils.h"
+#include "SMESHGUI_MeshInfosBox.h"
 
 // SALOME GUI includes
 #include <SUIT_Desktop.h>
@@ -124,293 +126,13 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg(SMESHGUI* theModule):
   QFrame* line1 = new QFrame(myMeshWidget);
   line1->setFrameStyle(QFrame::HLine | QFrame::Sunken);
 
-  // --> nodes
-  QLabel* myMeshNbNodesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), myMeshWidget);
-  myMeshNbNodes  = new QLabel(myMeshWidget);
-  myMeshNbNodes->setMinimumWidth(100);
-  QFrame* line12 = new QFrame(myMeshWidget);
-  line12->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> 0D elements
-  QLabel* myMeshNb0DElemsLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_0DELEMS")), myMeshWidget);
-  myMeshNb0DElems = new QLabel(myMeshWidget);
-  myMeshNb0DElems->setMinimumWidth(100);
-
-  // --> header with orders
-  QLabel* myMeshOrder0Lab = new QLabel(tr("SMESH_MESHINFO_ORDER0"), myMeshWidget);
-  QLabel* myMeshOrder1Lab = new QLabel(tr("SMESH_MESHINFO_ORDER1"), myMeshWidget);
-  QLabel* myMeshOrder2Lab = new QLabel(tr("SMESH_MESHINFO_ORDER2"), myMeshWidget);
-  QFont fnti = myMeshOrder0Lab->font(); fnti.setItalic(true);
-  myMeshOrder0Lab->setFont(fnti);
-  myMeshOrder1Lab->setFont(fnti);
-  myMeshOrder2Lab->setFont(fnti);
-
-  // --> edges
-  QLabel* myMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), myMeshWidget);
-  myMeshNbEdges    = new QLabel(myMeshWidget);
-  myMeshNbEdges->setMinimumWidth(100);
-  myMeshNbEdges1   = new QLabel(myMeshWidget);
-  myMeshNbEdges1->setMinimumWidth(100);
-  myMeshNbEdges2   = new QLabel(myMeshWidget);
-  myMeshNbEdges2->setMinimumWidth(100);
-
-  // --> faces
-  myMeshFacesGroup = new QGroupBox(tr("SMESH_MESHINFO_FACES"), myMeshWidget);
-  QGridLayout* myMeshFacesGroupLayout = new QGridLayout(myMeshFacesGroup);
-  myMeshFacesGroupLayout->setSpacing(SPACING);  myMeshFacesGroupLayout->setMargin(MARGIN);
-
-  // --> faces --> total
-  QLabel* myMeshNbFacesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), myMeshFacesGroup);
-  myMeshNbFacesLab->setFont(fnt);
-  myMeshNbFaces    = new QLabel(myMeshFacesGroup);
-  myMeshNbFaces->setMinimumWidth(100);
-  myMeshNbFaces->setFont(fnt);
-  myMeshNbFaces1   = new QLabel(myMeshFacesGroup);
-  myMeshNbFaces1->setMinimumWidth(100);
-  myMeshNbFaces1->setFont(fnt);
-  myMeshNbFaces2   = new QLabel(myMeshFacesGroup);
-  myMeshNbFaces2->setMinimumWidth(100);
-  myMeshNbFaces2->setFont(fnt);
-
-  // --> faces --> triangles
-  QLabel* myMeshNbTrianglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TRIANGLES")), myMeshFacesGroup);
-  myMeshNbTriangles    = new QLabel(myMeshFacesGroup);
-  myMeshNbTriangles->setMinimumWidth(100);
-  myMeshNbTriangles1   = new QLabel(myMeshFacesGroup);
-  myMeshNbTriangles1->setMinimumWidth(100);
-  myMeshNbTriangles2   = new QLabel(myMeshFacesGroup);
-  myMeshNbTriangles2->setMinimumWidth(100);
-
-  // --> faces --> quadrangles
-  QLabel* myMeshNbQuadranglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_QUADRANGLES")), myMeshFacesGroup);
-  myMeshNbQuadrangles    = new QLabel(myMeshFacesGroup);
-  myMeshNbQuadrangles->setMinimumWidth(100);
-  myMeshNbQuadrangles1   = new QLabel(myMeshFacesGroup);
-  myMeshNbQuadrangles1->setMinimumWidth(100);
-  myMeshNbQuadrangles2   = new QLabel(myMeshFacesGroup);
-  myMeshNbQuadrangles2->setMinimumWidth(100);
-
-  // --> faces --> polygons
-  QLabel* myMeshNbPolygonesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYGONES" ) ), myMeshFacesGroup );
-  myMeshNbPolygones      = new QLabel( myMeshFacesGroup );
-  myMeshNbPolygones->setMinimumWidth( 100 );
-
-  myMeshFacesGroupLayout->addWidget(myMeshNbFacesLab,       0, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbFaces,          0, 1);
-  myMeshFacesGroupLayout->addWidget(myMeshNbFaces1,         0, 2);
-  myMeshFacesGroupLayout->addWidget(myMeshNbFaces2,         0, 3);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTrianglesLab,   1, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles,      1, 1);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles1,     1, 2);
-  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles2,     1, 3);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadranglesLab, 2, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles,    2, 1);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles1,   2, 2);
-  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles2,   2, 3);
-  myMeshFacesGroupLayout->addWidget(myMeshNbPolygonesLab,   3, 0);
-  myMeshFacesGroupLayout->addWidget(myMeshNbPolygones,      3, 1);
-  
-  // --> volumes
-  myMeshVolumesGroup = new QGroupBox(tr("SMESH_MESHINFO_VOLUMES"), myMeshWidget);
-  QGridLayout* myMeshVolumesGroupLayout = new QGridLayout(myMeshVolumesGroup);
-  myMeshVolumesGroupLayout->setSpacing(SPACING);  myMeshVolumesGroupLayout->setMargin(MARGIN);
-
-  // --> volumes --> total
-  QLabel* myMeshNbVolumesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), myMeshVolumesGroup);
-  myMeshNbVolumesLab->setFont(fnt);
-  myMeshNbVolumes    = new QLabel(myMeshVolumesGroup);
-  myMeshNbVolumes->setMinimumWidth(100);
-  myMeshNbVolumes->setFont(fnt);
-  myMeshNbVolumes1   = new QLabel(myMeshVolumesGroup);
-  myMeshNbVolumes1->setMinimumWidth(100);
-  myMeshNbVolumes1->setFont(fnt);
-  myMeshNbVolumes2   = new QLabel(myMeshVolumesGroup);
-  myMeshNbVolumes2->setMinimumWidth(100);
-  myMeshNbVolumes2->setFont(fnt);
-
-  // --> volumes --> tetrahedrons
-  QLabel* myMeshNbTetraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TETRAS")), myMeshVolumesGroup);
-  myMeshNbTetra    = new QLabel(myMeshVolumesGroup);
-  myMeshNbTetra->setMinimumWidth(100);
-  myMeshNbTetra1   = new QLabel(myMeshVolumesGroup);
-  myMeshNbTetra1->setMinimumWidth(100);
-  myMeshNbTetra2   = new QLabel(myMeshVolumesGroup);
-  myMeshNbTetra2->setMinimumWidth(100);
-
-  // --> volumes --> hexahedrons
-  QLabel* myMeshNbHexaLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAS")), myMeshVolumesGroup);
-  myMeshNbHexa    = new QLabel(myMeshVolumesGroup);
-  myMeshNbHexa->setMinimumWidth(100);
-  myMeshNbHexa1   = new QLabel(myMeshVolumesGroup);
-  myMeshNbHexa1->setMinimumWidth(100);
-  myMeshNbHexa2   = new QLabel(myMeshVolumesGroup);
-  myMeshNbHexa2->setMinimumWidth(100);
-
-  // --> volumes --> prisms
-  QLabel* myMeshNbPrismLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PRISMS")), myMeshVolumesGroup);
-  myMeshNbPrism    = new QLabel(myMeshVolumesGroup);
-  myMeshNbPrism->setMinimumWidth(100);
-  myMeshNbPrism1   = new QLabel(myMeshVolumesGroup);
-  myMeshNbPrism1->setMinimumWidth(100);
-  myMeshNbPrism2   = new QLabel(myMeshVolumesGroup);
-  myMeshNbPrism2->setMinimumWidth(100);
-
-  // --> volumes --> pyramids
-  QLabel* myMeshNbPyraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PYRAS")), myMeshVolumesGroup);
-  myMeshNbPyra    = new QLabel(myMeshVolumesGroup);
-  myMeshNbPyra->setMinimumWidth(100);
-  myMeshNbPyra1   = new QLabel(myMeshVolumesGroup);
-  myMeshNbPyra1->setMinimumWidth(100);
-  myMeshNbPyra2   = new QLabel(myMeshVolumesGroup);
-  myMeshNbPyra2->setMinimumWidth(100);
-
-  // --> volumes --> polyherones
-  QLabel* myMeshNbPolyhedronesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYEDRES" ) ), myMeshVolumesGroup );
-  myMeshNbPolyhedrones = new QLabel( myMeshVolumesGroup );
-  myMeshNbPolyhedrones->setMinimumWidth( 100 );
-
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumesLab,      0, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes,         0, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes1,        0, 2);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes2,        0, 3);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetraLab,        1, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra,           1, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra1,          1, 2);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra2,          1, 3);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexaLab,         2, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa,            2, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa1,           2, 2);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa2,           2, 3);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrismLab,        3, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism,           3, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism1,          3, 2);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism2,          3, 3);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyraLab,         4, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra,            4, 1);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra1,           4, 2);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra2,           4, 3);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPolyhedronesLab, 5, 0);
-  myMeshVolumesGroupLayout->addWidget(myMeshNbPolyhedrones,    5, 1);
+  myMeshInfoBox = new SMESHGUI_MeshInfosBox(true, myMeshWidget);
 
   aMeshLayout->addWidget(myMeshNameLab,      0, 0);
   aMeshLayout->addWidget(myMeshName,         0, 1);
   aMeshLayout->addWidget(line1,              1, 0, 1, 2);
-  aMeshLayout->addWidget(myMeshNbNodesLab,   2, 0);
-  aMeshLayout->addWidget(myMeshNbNodes,      2, 1);
-  aMeshLayout->addWidget(line12,             3, 0, 1, 2);
-  aMeshLayout->addWidget(myMeshNb0DElemsLab, 4, 0);
-  aMeshLayout->addWidget(myMeshNb0DElems,    4, 1);
-  aMeshLayout->addWidget(myMeshOrder0Lab,    5, 1);
-  aMeshLayout->addWidget(myMeshOrder1Lab,    5, 2);
-  aMeshLayout->addWidget(myMeshOrder2Lab,    5, 3);
-  aMeshLayout->addWidget(myMeshNbEdgesLab,   6, 0);
-  aMeshLayout->addWidget(myMeshNbEdges,      6, 1);
-  aMeshLayout->addWidget(myMeshNbEdges1,     6, 2);
-  aMeshLayout->addWidget(myMeshNbEdges2,     6, 3);
-  aMeshLayout->addWidget(myMeshFacesGroup,   7, 0, 1, 4);
-  aMeshLayout->addWidget(myMeshVolumesGroup, 8, 0, 1, 4);
-  aMeshLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 9, 0);
-
-  // submesh
-  mySubMeshWidget = new QWidget(myWGStack);
-  QGridLayout* aSubMeshLayout = new QGridLayout(mySubMeshWidget);
-  aSubMeshLayout->setSpacing(SPACING);  aSubMeshLayout->setMargin(0);
-  myWGStack->addWidget(mySubMeshWidget);
-
-  // --> name
-  QLabel* mySubMeshNameLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NAME")), mySubMeshWidget);
-  mySubMeshName    = new QLabel(mySubMeshWidget);
-  mySubMeshName->setMinimumWidth(100);
-  QFrame* line2 = new QFrame(mySubMeshWidget);
-  line2->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> nodes
-  QLabel* mySubMeshNbNodesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), mySubMeshWidget);
-  mySubMeshNbNodes    = new QLabel(mySubMeshWidget);
-  mySubMeshNbNodes->setMinimumWidth(100);
-
-  // --> elements
-  mySubMeshElementsGroup = new QGroupBox(tr("SMESH_MESHINFO_ELEMENTS"), mySubMeshWidget);
-  QGridLayout* mySubMeshElementsGroupLayout = new QGridLayout(mySubMeshElementsGroup);
-  mySubMeshElementsGroupLayout->setSpacing(SPACING);  mySubMeshElementsGroupLayout->setMargin(MARGIN);
-
-  // --> elements --> total
-  QLabel* mySubMeshNbElementsLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TOTAL")), mySubMeshElementsGroup);
-  mySubMeshNbElementsLab->setFont(fnt);
-  mySubMeshNbElements    = new QLabel(mySubMeshElementsGroup);
-  mySubMeshNbElements->setMinimumWidth(100);
-  mySubMeshNbElements->setFont(fnt);
-
-  // --> 0D elements
-  QLabel* mySubMeshNb0DElemsLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_0DELEMS")), mySubMeshElementsGroup);
-  mySubMeshNb0DElems = new QLabel(mySubMeshElementsGroup);
-  mySubMeshNb0DElems->setMinimumWidth(100);
-
-  // --> elements --> edges
-  QLabel* mySubMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), mySubMeshElementsGroup);
-  mySubMeshNbEdges    = new QLabel(mySubMeshElementsGroup);
-  mySubMeshNbEdges->setMinimumWidth(100);
-
-  // --> elements --> faces
-  QLabel* mySubMeshNbFacesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_FACES")), mySubMeshElementsGroup);
-  mySubMeshNbFaces    = new QLabel(mySubMeshElementsGroup);
-  mySubMeshNbFaces->setMinimumWidth(100);
-
-  // --> elements --> volumes
-  QLabel* mySubMeshNbVolumesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_VOLUMES")), mySubMeshElementsGroup);
-  mySubMeshNbVolumes    = new QLabel(mySubMeshElementsGroup);
-  mySubMeshNbVolumes->setMinimumWidth(100);
-
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbElementsLab, 0, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbElements,    0, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNb0DElemsLab,  1, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNb0DElems,     1, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbEdgesLab,    2, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbEdges,       2, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbFacesLab,    3, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbFaces,       3, 1);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbVolumesLab,  4, 0);
-  mySubMeshElementsGroupLayout->addWidget(mySubMeshNbVolumes,     4, 1);
-
-  aSubMeshLayout->addWidget(mySubMeshNameLab,       0, 0);
-  aSubMeshLayout->addWidget(mySubMeshName,          0, 1);
-  aSubMeshLayout->addWidget(line2,                  1, 0, 1, 2);
-  aSubMeshLayout->addWidget(mySubMeshNbNodesLab,    2, 0);
-  aSubMeshLayout->addWidget(mySubMeshNbNodes,       2, 1);
-  aSubMeshLayout->addWidget(mySubMeshElementsGroup, 3, 0, 1, 2);
-  aSubMeshLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 4, 0);
-
-  // group
-  myGroupWidget = new QWidget(myWGStack);
-  QGridLayout* myGroupWidgetLayout = new QGridLayout(myGroupWidget);
-  myGroupWidgetLayout->setSpacing(SPACING);  myGroupWidgetLayout->setMargin(0);
-  myWGStack->addWidget(myGroupWidget);
-
-  // --> name
-  QLabel* myGroupNameLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_NAME")), myGroupWidget);
-  myGroupName = new QLabel(myGroupWidget);
-  myGroupName->setMinimumWidth(100);
-  QFrame* line3 = new QFrame(myGroupWidget);
-  line3->setFrameStyle(QFrame::HLine | QFrame::Sunken);
-
-  // --> type
-  QLabel* myGroupTypeLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TYPE")), myGroupWidget);
-  myGroupType = new QLabel(myGroupWidget);
-  myGroupType->setMinimumWidth(100);
-
-  // --> number of entities
-  QLabel* myGroupNbLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_ENTITIES")), myGroupWidget);
-  myGroupNb = new QLabel(myGroupWidget);
-  myGroupNb->setMinimumWidth(100);
-
-  myGroupWidgetLayout->addWidget(myGroupNameLab, 0, 0);
-  myGroupWidgetLayout->addWidget(myGroupName,    0, 1);
-  myGroupWidgetLayout->addWidget(line3,          1, 0, 1, 2);
-  myGroupWidgetLayout->addWidget(myGroupTypeLab, 2, 0);
-  myGroupWidgetLayout->addWidget(myGroupType,    2, 1);
-  myGroupWidgetLayout->addWidget(myGroupNbLab,   3, 0);
-  myGroupWidgetLayout->addWidget(myGroupNb,      3, 1);
-  myGroupWidgetLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 4, 0);
+  aMeshLayout->addWidget(myMeshInfoBox,      2, 0, 1, 2);
+  aMeshLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 3, 0);
 
   // buttons
   myButtonsGroup = new QGroupBox(this);
@@ -419,7 +141,9 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg(SMESHGUI* theModule):
 
   // buttons --> OK and Help buttons
   myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup);
-  myOkBtn->setAutoDefault(true); myOkBtn->setDefault(true);
+  myOkBtn->setAutoDefault(true);
+  myOkBtn->setDefault(true);
+  myOkBtn->setFocus();
   myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup);
   myHelpBtn->setAutoDefault(true);
 
@@ -477,80 +201,17 @@ void SMESHGUI_MeshInfosDlg::DumpMeshInfos()
       //CORBA::Object_var anObject = aSO->GetObject();
       CORBA::Object_var anObject = SMESH::SObjectToObject(aSO);
       if (!CORBA::is_nil(anObject)) {
-       SMESH::SMESH_IDSource_var anIDSource = SMESH::SMESH_IDSource::_narrow(anObject);
-       if (!anIDSource->_is_nil()) {
-         myWGStack->setCurrentWidget(myMeshWidget);
-         setWindowTitle(tr("SMESH_MESHINFO_TITLE") + " [" + tr("SMESH_OBJECT_MESH") + "]");
-         myMeshName->setText(aSO->GetName().c_str());
-
-         SMESH::long_array_var aMeshInfo = anIDSource->GetMeshInfo();
-
-         myMeshNbNodes->setNum((int)aMeshInfo[SMESH::Entity_Node]);
-          myMeshNb0DElems->setNum((int)aMeshInfo[SMESH::Entity_0D]);
-         myMeshNbEdges->setNum((int)aMeshInfo[SMESH::Entity_Edge] + (int)aMeshInfo[SMESH::Entity_Quad_Edge]);
-         myMeshNbEdges1->setNum((int)aMeshInfo[SMESH::Entity_Edge]);
-         myMeshNbEdges2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Edge]);
-         myMeshNbFaces->setNum((int)aMeshInfo[SMESH::Entity_Triangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quad_Triangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quadrangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quad_Quadrangle] +
-                                (int)aMeshInfo[SMESH::Entity_Polygon] +
-                                (int)aMeshInfo[SMESH::Entity_Quad_Polygon]);
-         myMeshNbFaces1->setNum((int)aMeshInfo[SMESH::Entity_Triangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quadrangle] +
-                                (int)aMeshInfo[SMESH::Entity_Polygon]);
-         myMeshNbFaces2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Triangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quad_Quadrangle] +
-                                (int)aMeshInfo[SMESH::Entity_Quad_Polygon]);
-
-         myMeshNbTriangles->setNum((int)aMeshInfo[SMESH::Entity_Triangle] + 
-                                   (int)aMeshInfo[SMESH::Entity_Quad_Triangle]);
-         myMeshNbTriangles1->setNum((int)aMeshInfo[SMESH::Entity_Triangle]);
-         myMeshNbTriangles2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Triangle]);
-         myMeshNbQuadrangles->setNum((int)aMeshInfo[SMESH::Entity_Quadrangle] +
-                                     (int)aMeshInfo[SMESH::Entity_Quad_Quadrangle]);
-         myMeshNbQuadrangles1->setNum((int)(int)aMeshInfo[SMESH::Entity_Quadrangle]);
-         myMeshNbQuadrangles2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Quadrangle]);
-         myMeshNbPolygones->setNum((int)aMeshInfo[SMESH::Entity_Polygon]);
-         myMeshNbVolumes->setNum((int)aMeshInfo[SMESH::Entity_Tetra] +
-                                 (int)aMeshInfo[SMESH::Entity_Quad_Tetra] +
-                                 (int)aMeshInfo[SMESH::Entity_Pyramid] +
-                                 (int)aMeshInfo[SMESH::Entity_Quad_Pyramid] +
-                                 (int)aMeshInfo[SMESH::Entity_Hexa] +
-                                 (int)aMeshInfo[SMESH::Entity_Quad_Hexa] +
-                                 (int)aMeshInfo[SMESH::Entity_Penta] +
-                                 (int)aMeshInfo[SMESH::Entity_Quad_Penta] +
-                                 (int)aMeshInfo[SMESH::Entity_Polyhedra] +
-                                 (int)aMeshInfo[SMESH::Entity_Quad_Polyhedra]);
-         myMeshNbVolumes1->setNum((int)aMeshInfo[SMESH::Entity_Tetra] +
-                                  (int)aMeshInfo[SMESH::Entity_Pyramid] +
-                                  (int)aMeshInfo[SMESH::Entity_Hexa] +
-                                  (int)aMeshInfo[SMESH::Entity_Penta] +
-                                  (int)aMeshInfo[SMESH::Entity_Polyhedra]);
-         myMeshNbVolumes2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Tetra] +
-                                  (int)aMeshInfo[SMESH::Entity_Quad_Pyramid] +
-                                  (int)aMeshInfo[SMESH::Entity_Quad_Hexa] +
-                                  (int)aMeshInfo[SMESH::Entity_Quad_Penta] +
-                                  (int)aMeshInfo[SMESH::Entity_Quad_Polyhedra]);
-         myMeshNbTetra->setNum((int)aMeshInfo[SMESH::Entity_Tetra] +
-                               (int)aMeshInfo[SMESH::Entity_Quad_Tetra]);
-         myMeshNbTetra1->setNum((int)aMeshInfo[SMESH::Entity_Tetra]);
-         myMeshNbTetra2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Tetra]);
-         myMeshNbHexa->setNum((int)aMeshInfo[SMESH::Entity_Hexa] +
-                              (int)aMeshInfo[SMESH::Entity_Quad_Hexa]);
-         myMeshNbHexa1->setNum((int)aMeshInfo[SMESH::Entity_Hexa]);
-         myMeshNbHexa2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Hexa]);
-         myMeshNbPrism->setNum((int)aMeshInfo[SMESH::Entity_Penta] +
-                               (int)aMeshInfo[SMESH::Entity_Quad_Penta]);
-         myMeshNbPrism1->setNum((int)aMeshInfo[SMESH::Entity_Penta]);
-         myMeshNbPrism2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Penta]);
-         myMeshNbPyra->setNum((int)aMeshInfo[SMESH::Entity_Pyramid] +
-                               (int)aMeshInfo[SMESH::Entity_Quad_Pyramid]);
-         myMeshNbPyra1->setNum((int)aMeshInfo[SMESH::Entity_Pyramid]);
-         myMeshNbPyra2->setNum((int)aMeshInfo[SMESH::Entity_Quad_Pyramid]);
-         myMeshNbPolyhedrones->setNum((int)aMeshInfo[SMESH::Entity_Polyhedra]);
-         return;
-       }
+        SMESH::SMESH_IDSource_var anIDSource = SMESH::SMESH_IDSource::_narrow(anObject);
+        if (!anIDSource->_is_nil()) {
+          myWGStack->setCurrentWidget(myMeshWidget);
+          setWindowTitle(tr("SMESH_MESHINFO_TITLE") + " [" + tr("SMESH_OBJECT_MESH") + "]");
+          myMeshName->setText(aSO->GetName().c_str());
+
+          SMESH::long_array_var aMeshInfo = anIDSource->GetMeshInfo();
+          myMeshInfoBox->SetMeshInfo( aMeshInfo );
+
+          return;
+        }
       }
     }
   }
@@ -639,10 +300,10 @@ void SMESHGUI_MeshInfosDlg::onHelp()
     platform = "application";
 #endif
     SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
-                            tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
-                            arg(app->resourceMgr()->stringValue("ExternalBrowser", 
-                                                                platform)).
-                            arg(myHelpFileName));
+                             tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                             arg(app->resourceMgr()->stringValue("ExternalBrowser", 
+                                                                 platform)).
+                             arg(myHelpFileName));
   }
 }