Salome HOME
put MED processes in engine, and use corba between GUI and Engine
[modules/filter.git] / src / FILTERGUI / SelectField.cxx
index a3368a5ff1617f2a1c5d1c5ab02822880aca141b..942d79d7bdf194534ce8b816ec2b88e60eb878ef 100644 (file)
@@ -33,20 +33,21 @@ SelectField::SelectField(FilterGUI* theModule,const QString& file,
   : QDialog(FILTER::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
     myFilterGUI( theModule ),
     _file(file),
-    _mesh(0),
-    _field(0),
+    _mesh(NULL),
+    _field(NULL),
     _ts(0),
     _dimMesh(-1)
 {
   QListViewItem *element;
 
   SCRUTE(_file);
-  _med = new ::MED(MED_DRIVER,_file);
-  deque<string> meshesNames = _med->getMeshNames();
-  int numberOfMeshes = meshesNames.size();
-  
-  deque<string> fieldsNames = _med->getFieldNames();
-  int numberOfFields = fieldsNames.size();
+  _filter = myFilterGUI->InitFilterGen();
+  _filter->loadMED(_file);
+  SALOME_FILTER::StrSeq* meshesNames = _filter->getMeshNames();
+  int numberOfMeshes = (*meshesNames).length();
+
+  SALOME_FILTER::StrSeq* fieldsNames = _filter->getFieldNames();
+  int numberOfFields = (*fieldsNames).length();
 
   QGridLayout* _lay = new QGridLayout( this, 1, 1 );
 
@@ -83,18 +84,18 @@ SelectField::SelectField(FilterGUI* theModule,const QString& file,
   _myList->addColumn(tr("FILTER_DIM"));
 
   for(int i=0;i<numberOfMeshes;i++){
-    _dimMesh = _med->getMesh(meshesNames[i])->getMeshDimension();
+    _dimMesh = _filter->getMeshDimension((*meshesNames)[i]);
     char strd[4];
     sprintf(strd,"%dD\0",_dimMesh);
-    element = new QListViewItem( _myList, meshesNames[i], tr("FILTER_MESH") ,strd);
+    element = new QListViewItem( _myList, QString((*meshesNames)[i]), tr("FILTER_MESH") ,strd);
     element->setExpandable(true);
     _myList->setOpen(element,true);
 
     for (int j=0; j<numberOfFields; j++){
-      deque<DT_IT_> myIteration = _med->getFieldIteration (fieldsNames[j]);
-      string meshName = _med->getField(fieldsNames[j],myIteration[0].dt,myIteration[0].it)->getSupport()->getMesh()->getName();
-      if( strcmp(meshName.c_str(),meshesNames[i].c_str()) == 0){
-       QListViewItem *elem = new QListViewItem( element, fieldsNames[j], tr("FILTER_FIELD") );
+      SALOME_FILTER::DTITSeq *myIteration = _filter->getFieldIteration((*fieldsNames)[j]);
+      string meshName = _filter->getMeshName((*fieldsNames)[j],(*myIteration)[0].dt,(*myIteration)[0].it);
+      if( strcmp(meshName.c_str(),(*meshesNames)[i]) == 0){
+       QListViewItem *elem = new QListViewItem( element, QString((*fieldsNames)[j]), tr("FILTER_FIELD") );
        if(_dimMesh != 3)
          elem->setSelectable(false);
       }
@@ -159,7 +160,7 @@ SelectField::~SelectField()
 {
   // no need to delete child widgets, Qt does it all for us
   cout << "SelectField: destructor called" << endl;
-  delete _med;
+  _filter->unloadMED();
 }
 
 void SelectField::fieldSelected(QListViewItem *lvi)
@@ -168,11 +169,12 @@ void SelectField::fieldSelected(QListViewItem *lvi)
     if( (strcmp(lvi->text(1),"Field") == 0) && (_dimMesh == 3) ){
       _field = lvi->text(0);
       _mesh = lvi->parent()->text(0);
-      deque<DT_IT_> myIteration = _med->getFieldIteration (lvi->text(0));
-      int numberOfIteration = myIteration.size();
+//       deque<DT_IT_> myIteration = _filterMED->getFieldIteration(lvi->text(0));
+      SALOME_FILTER::DTITSeq *myIteration = _filter->getFieldIteration(lvi->text(0));
+      int numberOfIteration = (*myIteration).length();
       if( numberOfIteration > 1 ){
-       _mySlider->setRange(myIteration[0].dt,
-                           myIteration[numberOfIteration-1].dt);
+       _mySlider->setRange((*myIteration)[0].dt,
+                           (*myIteration)[numberOfIteration-1].dt);
        _myLab->show();
        _mySlider->show();
       }