Salome HOME
PN: imports and connects
[modules/hydrosolver.git] / src / salome_hydro / interpolz_gui.py
index b521c0423203db7a855d3908b420a6e9ff5fe283..a3a5842978a7f3ddcc217b7fad286e404c9a92a8 100644 (file)
@@ -1,8 +1,9 @@
 
 import sys, os
-#sys.path.append(os.path.join(os.environ['MED3HOME'], 'lib/python2.7/site-packages/med'))
+#sys.path.append(os.path.join(os.environ['MEDFILE_ROOT_DIR'], 'lib/python2.7/site-packages/med'))
+sys.path.append(os.path.join(os.environ['MEDFICHIER_INSTALL_DIR'], 'lib/python2.7/site-packages/med'))
 hydro_solver_root = os.path.join(os.environ['HYDROSOLVER_ROOT_DIR'], 'lib', 'python2.7', 'site-packages', 'salome', 'salome', 'hydro')
-#sys.path.append(hydro_solver_root)
+sys.path.append(hydro_solver_root)
 
 import salome
 salome.salome_init()
@@ -10,9 +11,7 @@ salome.salome_init()
 import MEDLoader
 import HYDROPy
 
-from PyQt5.QtCore import *
-from PyQt5.QtGui import *
-from PyQt5.QtWidgets import *
+from PyQt5.QtWidgets import QDialog, QFileDialog, QTableWidgetItem, QComboBox, QMessageBox
 from PyQt5 import uic
 
 import SalomePyQt
@@ -22,7 +21,7 @@ salome_gui = libSALOME_Swig.SALOMEGUI_Swig()
 from generate_interpolz import generate
 
 def get_med_groups( file_path ):
-    print "get_med_groups", file_path
+    #print "get_med_groups", file_path
     try:
         meshes = MEDLoader.GetMeshNames(file_path)
     except:
@@ -34,7 +33,7 @@ def get_med_groups( file_path ):
     mesh1 = meshes[0]
     print 'Found mesh:', mesh1
     try:
-        groups = list(MEDLoader.MEDLoader_GetMeshGroupsNames(file_path, mesh1))
+        groups = list(MEDLoader.GetMeshGroupsNames(file_path, mesh1))
         print 'Found groups:', groups
     except:
         print 'No groups found'
@@ -51,12 +50,12 @@ def get_hydro_regions( calc_case_name ):
       for r in regions:
         rname = r.GetName()
         regions_names.append( str(rname) )
-
-      #shape_groups = case.GetGeometryGroups()
-      #for sg in shape_groups:
-          #sgname = sg.GetName()
-          #regions_names.append( sgname )
-
+      
+      shape_groups = case.GetGeometryGroups()
+      for sg in shape_groups:
+          sgname = sg.GetName()
+          regions_names.append( sgname )
+      
       return regions_names
     else:
       return []
@@ -72,7 +71,7 @@ def get_selected_calc_case():
             if isinstance(case, HYDROPy.HYDROData_CalculationCase):
                 return name
     return None
-
+    
 class InterpolzDlg( QDialog ):
     def __init__(self, parent = None):
         QDialog.__init__( self, parent )
@@ -91,30 +90,30 @@ class InterpolzDlg( QDialog ):
         self.Apply.clicked.connect(self.onApply)
         self.Close.clicked.connect(self.onClose)
         self.Help.clicked.connect(self.onHelp)
-
+         
     def onSelectionChanged( self ):
         calc_case_name = get_selected_calc_case()
         if calc_case_name is not None:
           self.CalcCase.setText( calc_case_name )
-
+          
     def onOutputFile( self ):
       caption = "Python file"
       mask = "*.py"
       fname, filt = QFileDialog.getSaveFileName( self, caption, ".", mask )
       if fname!=None and fname!="":
         self.OutputPath.setText( fname )
-
+      
     def onMEDFile( self ):
       caption = "MED file"
       mask = "*.med"
       fname, filt = QFileDialog.getOpenFileName( self, caption, ".", mask )
       if fname!=None and fname!="":
         self.MEDFile.setText( fname )
-
+        
     def onCalcCaseChanged( self ):
       self.regions = get_hydro_regions( str(self.CalcCase.text()) )
       self.onMEDChanged()
-
+        
     def onMEDChanged( self ):
       self.med_groups = get_med_groups( str(self.MEDFile.text()) )
       print self.med_groups
@@ -125,9 +124,8 @@ class InterpolzDlg( QDialog ):
           self.Groups.setItem( i, 0, QTableWidgetItem() )
           self.Groups.setItem( i, 1, QTableWidgetItem() )
         self.Groups.item( i, 0 ).setText( self.med_groups[i] )
-
+        
         cb = QComboBox( self.Groups )
-        cb.addItem( 'None' )
         for r in self.regions:
           cb.addItem( r )
         self.Groups.setCellWidget( i, 1, cb )
@@ -135,7 +133,7 @@ class InterpolzDlg( QDialog ):
     def onApplyClose( self ):
         if self.onApply():
             self.onClose()
-
+        
     def onApply( self ):
         path = str(self.OutputPath.text())
         calc_case = str(self.CalcCase.text())
@@ -144,11 +142,11 @@ class InterpolzDlg( QDialog ):
         for i in range( 0, self.Groups.rowCount() ):
             med_group = str( self.Groups.item( i, 0 ).text() )
             hydro_reg = str( self.Groups.cellWidget( i, 1 ).currentText() )
-            if len(med_group)>0 and len(hydro_reg)>0 and hydro_reg != 'None':
+            if len(med_group)>0 and len(hydro_reg)>0:
                 med_groups_regions[med_group] = hydro_reg
         z_undef = self.UndefZ.value()
         interp = str(self.InterpMethod.currentText())
-
+        
         msg = ""
         if len(path)==0:
             msg = "Please input the output path"
@@ -160,21 +158,18 @@ class InterpolzDlg( QDialog ):
             msg = "Please fill groups table"
         elif len(interp)==0:
             msg = "Please choose interpolation method"
-
+        
         result = False
         if len(msg)==0:
-            iinterp = 0
-            if "Linear" in interp:
-              iinterp =1
-            generate( path, calc_case, med_file, med_groups_regions, z_undef, iinterp )
+            generate( path, calc_case, med_file, med_groups_regions, z_undef, interp )
             msg = "InterpolZ script is successfully generated"
             result = True
-
+            
         QMessageBox.information( self, "", msg )
         return result
-
+        
     def onClose( self ):
-        self.close()
+        self.close()     
 
     """Shows help page"""
     def onHelp( self ):