Salome HOME
IMP: Verima / New Plugin: Added a plugin for meshers quality testing (work done at...
[modules/smesh.git] / src / Tools / Verima / Base / tableMaillages.py
diff --git a/src/Tools/Verima/Base/tableMaillages.py b/src/Tools/Verima/Base/tableMaillages.py
new file mode 100644 (file)
index 0000000..28e9bbb
--- /dev/null
@@ -0,0 +1,84 @@
+from PyQt4 import QtSql, QtCore
+from tableDeBase import TableDeBase
+
+class TableMaillages (TableDeBase):
+       def __init__(self):
+            TableDeBase.__init__(self,"Maillages")
+            self.setField(("id","nomMaillage","Script","fichier","idMailleur","Dimension","Seuil CPU","Seuil Ratio","Seuil Taille","Seuil Nb Maille","Commentaire"))
+            self.cols="(nomMaillage,nomScript,medResultat,idMailleur,dimension,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille,commentaire)"
+            self.setTypeField(('int','str','str','str','int','int','int','int','int','int','str'),('id'))
+
+        def createSqlTable(self):
+            query=QtSql.QSqlQuery()
+            texteQuery ="create table Maillages(id integer primary key autoincrement, nomMaillage varchar(10), "
+            texteQuery+="nomScript varchar(40), medResultat varchar(15), idMailleur int, dimension int,"
+            texteQuery+="seuilCPU int, seuilRatio int, seuilTaille int, seuilNbMaille int, commentaire varchar(60), "
+            texteQuery+="foreign key (idMailleur) references Mailleur(id));"
+            print "creation de TableMaillages : " , query.exec_(texteQuery)
+
+        def getVal(self,idMaillage, nomChamp):
+            query=QtSql.QSqlQuery()
+            valeur=None
+            texteQuery ='select '+ nomChamp + ' from Maillages  where id=' + str(idMaillage) + ";"
+            query.exec_(texteQuery)
+            while (query.next()) :
+              valeur=query.value(0).toInt()[0]
+            while (query.next()) :
+              print "plusieurs enregistrements dans Maillages pour ",str(idMaillage)
+              exit()
+            return valeur
+
+        def dejaRemplie(self):
+            texteQuery="select * from  Maillages where medResultat='/tmp/tetra.med';"
+            maQuery=QtSql.QSqlQuery()
+            maQuery.exec_(texteQuery)
+            nb=0
+            while(maQuery.next()): nb=nb+1
+            return nb
+
+        def remplit(self):
+            if self.dejaRemplie():
+               print "table Maillage deja initialisee"
+               return
+            self.insereLigneAutoId(('tetra', 'Scripts/script1.py', '/tmp/tetra.med', 2,3,5,5,5,5, 'essaiPN'))
+            self.insereLigneAutoId(('MASSIF_M', 'Scripts/excavation.py', '/tmp/MASSIF.new.med', 1,3,5,5,5,5, 'essaiGN'))
+
+        def construitListeMaillages(self):
+            maQuery=QtSql.QSqlQuery()
+            texteQuery="select id, nomScript,medResultat from Maillages;"
+            maQuery.exec_(texteQuery)
+            listeMaillages=[]
+            while(maQuery.next()):
+                listeMaillages.append((maQuery.value(0).toInt()[0], maQuery.value(1).toString(), maQuery.value(2).toString()))
+            return listeMaillages
+           
+        def verifieListeMaillages(self,listeMaillage):
+            newListeMaillages=[]
+            maQuery=QtSql.QSqlQuery()
+            for idM in listeMaillage:
+                texteQuery="select id, nomScript,medResultat from Maillages where id = " + str(idM) +';'
+                maQuery.exec_(texteQuery)
+                maSize=0
+                while(maQuery.next()):
+                    maSize+=1
+                    newListeMaillages.append((maQuery.value(0).toInt()[0], maQuery.value(1).toString(), maQuery.value(2).toString()))
+                if maSize != 1 :
+                   print "impossible de traiter le maillage : ", idM
+            return  newListeMaillages
+
+        def getTousPourMaillage(self,idMailleur):
+            l1=[]; l2=[]; l3=[]
+            l4=[]; l5=[]; l6=[]
+            texteQuery="select id,nomMaillage,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille from  Maillages where idMailleur= "+ str(idMailleur) +"  ;"
+            maQuery=QtSql.QSqlQuery()
+            #print texteQuery
+            maQuery.exec_(texteQuery)
+            while(maQuery.next()): 
+                 l1.append( maQuery.value(0).toInt()[0])
+                 l2.append( maQuery.value(1).toString())
+                 l3.append( maQuery.value(2).toInt()[0])
+                 l4.append( maQuery.value(3).toInt()[0])
+                 l5.append( maQuery.value(4).toInt()[0])
+                 l6.append( maQuery.value(5).toInt()[0])
+            return l1,l2,l3,l4,l5,l6
+