]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
pour ecriture scientifique
authorPascale Noyret <pascale.noyret@edf.fr>
Mon, 12 Jan 2009 14:44:28 +0000 (14:44 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Mon, 12 Jan 2009 14:44:28 +0000 (14:44 +0000)
InterfaceQT/monFonctionPanel.py
InterfaceQT/monPlusieursBasePanel.py
InterfaceQT/monSelectVal.py
InterfaceQT/politiquesValidation.py
InterfaceQT/qtSaisie.py

index b69d38191102c237a2531bf2049d29b62eb03fce..2e67b106dad461d6d26fa871d0c644bbed183645 100644 (file)
@@ -52,8 +52,7 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         l_valeurs=[]
         if (len(liste)% self.nbValeurs != 0):
             message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
-            #self.Commentaire.setText(QString(commentaire)) 
-            self.editor.affiche_infos(commentaire)
+            self.editor.affiche_infos(message)
         for i in range(len(liste)/ self.nbValeurs) :
             if (self.nbValeurs==2):
               t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1])
@@ -66,12 +65,23 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         self.LBValeurs.clear()
         listeValeurs=self.node.item.GetListeValeurs()
         for valeur in self.DecoupeListeValeurs(listeValeurs):
-            self.LBValeurs.insertItem(str(valeur))
+            if type(valeur) == types.TupleType:
+               TupleEnTexte="("
+               for val in valeur :
+                      TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+               TupleEnTexte = TupleEnTexte[0:-2] +")"
+               self.LBValeurs.insertItem(TupleEnTexte)
+            else :
+                  self.LBValeurs.insertItem(QString(str(valeur)))
 
   def  Ajout1Valeur(self,liste=[]):
         # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
         if liste == [] :
-           liste,validite=SaisieValeur.TraiteLEValeur(self)
+           liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self)
+           if validite :
+              for val in texteBrut.split(',') :
+                  print val
+                  self.politique.AjoutDsDictReel(val)
         else :
            validite=1
         if validite == 0 : return
@@ -90,12 +100,12 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         index=self.LBValeurs.currentItem() +1
         indexListe=index*self.nbValeurs
         if index == 0 : 
-           index = -1
+           index = len(self.listeValeursCourantes)
            indexListe=len(self.listeValeursCourantes)
         listeVal=[]
         for valeur in self.listeValeursCourantes :
                 listeVal.append(valeur)
-        validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
+        validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal)
         self.Commentaire.setText(comm2)
         if not validite :
                 self.editor.affiche_infos(comm)
@@ -104,7 +114,14 @@ class MonFonctionPanel(MonPlusieursBasePanel):
            l1=self.listeValeursCourantes[:indexListe]
            l3=self.listeValeursCourantes[indexListe:]
            for valeur in self.DecoupeListeValeurs(listeRetour):
-               self.LBValeurs.insertItem(QString(str(valeur)),index)
+               if type(valeur) == types.TupleType:
+                  TupleEnTexte="("
+                  for val in valeur :
+                      TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+                  TupleEnTexte = TupleEnTexte[0:-2] +")"
+                  self.LBValeurs.insertItem(TupleEnTexte,index)
+               else :
+                  self.LBValeurs.insertItem(QString(str(valeur)),index)
                index=index+1
            self.listeValeursCourantes=l1+listeRetour+l3
 
index 50eeb339bf61781edaaa4008479f51aa2b9d7c77..023a1ffd4a01fa828096561bcfbed0b679710770 100644 (file)
@@ -60,7 +60,7 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur):
 
   def BuildLBValeurs(self):
        # redefinit en raison de l heritage par monFonctionPanel
-        SaisieValeur.BuildLBValeurs(self)
+        SaisieValeur.BuildLBValeurs(self,politique=self.politique)
 
   def BOkPourListePressed(self):
         if self.listeValeursCourantes == [] :
@@ -91,9 +91,14 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur):
           
 
   def Ajout1Valeur(self,valeur=None):
-        liste,validite=SaisieValeur.TraiteLEValeur(self,valeur)
+        print "je passe par la"
+        liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self,valeur)
+        print texteBrut
         if validite == 0 : return
         if liste ==[]    : return
+        for val in texteBrut.split(',') :
+             print val
+             self.politique.AjoutDsDictReel(val)
 
         index=self.LBValeurs.currentItem() + 1
         listeVal=[]
index c3c641488b368b0e61f53cb67816c378a1eb8754..16b8c856eaec5a52f2202c9b741a69d2dd01f1b6 100644 (file)
@@ -44,6 +44,7 @@ class MonSelectVal(DSelVal):
         self.initVal()
 
   def readVal(self):
+        if self.file == "" : return
         f = open(self.file, "rb")
         self.texte = f.read()
         f.close()
@@ -62,6 +63,7 @@ class MonSelectVal(DSelVal):
   def BImportSelPressed(self):
         text=str(self.TBtext.selectedText())
         self.textTraite=text
+        if self.textTraite == "" : return
         self.Traitement()
         
   def BImportToutPressed(self):
@@ -75,10 +77,12 @@ class MonSelectVal(DSelVal):
         liste1=self.textTraite.split(self.separateur)
         liste=[]
         for val in liste1 :
-            val=str(val)
-            try :
-              val=eval(val,{})
-            except :
-              pass
-            liste.append(val)
+            if val != '' and val != ' ' and val != self.separateur :
+               val=str(val)
+               try :
+                 val2=eval(val,{})
+                 liste.append(val)
+               except :
+                 pass
         self.FonctPanel.AjoutNValeur(liste) 
+        print liste
index 539f61134439c21f66d96f92bf45509cc53a4660..1de0d4b3e0223d33be88e7bdab0d3daa7231b4c6 100644 (file)
@@ -59,7 +59,7 @@ class Validation  :
   def SetValeurTexte(self,texteValeur) :
          try :
                   if "R" in self.node.item.object.definition.type:
-                     if texteValeur[0] != "'":
+                     if str(texteValeur)[0] != "'":
                         clef=eval(texteValeur)
                         if str(clef) != str(texteValeur) :
                            self.node.item.object.init_modif()
@@ -72,6 +72,23 @@ class Validation  :
          except:
             pass
 
+  def AjoutDsDictReel(self,texteValeur):
+         try :
+         #if 1 :
+                  if "R" in self.node.item.object.definition.type:
+                     if str(texteValeur)[0] != "'":
+                        clef=eval(texteValeur)
+                        if str(clef) != str(texteValeur) :
+                           clefobj=self.node.item.object.GetNomConcept()
+                           if not self.parent.dict_reels.has_key(clefobj):
+                              self.parent.dict_reels[clefobj] = {}
+                           self.parent.dict_reels[clefobj][clef]=texteValeur
+                           self.parent.dict_reels[clefobj]
+         except:
+         #else:
+            #print "pb ds try de AjoutDsDictReel"
+            pass
+
   def GetValeurTexte(self,valeur) :
          valeurTexte=valeur
          if "R" in self.node.item.object.definition.type:
@@ -106,9 +123,9 @@ class PolitiqueUnique(Validation) :
          return validite, commentaire 
 
  
-#------------------------
-class PolitiquePlusieurs:
-#------------------------
+#-------------------------------------
+class PolitiquePlusieurs (Validation):
+#-------------------------------------
   """
   classe servant pour les entrees ne demandant qu un mot clef
   """
@@ -118,6 +135,7 @@ class PolitiquePlusieurs:
 
 
   def AjoutValeurs(self,listevaleur,index,listecourante):
+         print "debut politique pour ", listevaleur
          listeRetour=[]
          commentaire="Nouvelle valeur acceptée"
          commentaire2=""
@@ -127,11 +145,10 @@ class PolitiquePlusieurs:
          if not( type(listevaleur)  in (types.ListType,types.TupleType)) :
             listevaleur=tuple(listevaleur)
          for valeur in listevaleur :
+             valeurScientifique=valeur
              # On teste le type de la valeur
              valide=self.node.item.valide_item(valeur)
              if not valide :
-                #print self.__class__
-                #if not testtype :
                 try :
                    valeur,valide=self.node.item.eval_valeur(valeur)
                    valide,commentaire = self.node.item.object.verif_type(valeur)
@@ -145,6 +162,7 @@ class PolitiquePlusieurs:
 
              # On valide la liste obtenue
              encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
+             print "listecourante", listecourante
              if not encorevalide :
                 commentaire2=self.node.item.info_erreur_liste()
                 # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
@@ -153,8 +171,15 @@ class PolitiquePlusieurs:
                    commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
                    return valide,commentaire,commentaire2,listeRetour
                 if len(listecourante) + 1 > min :
+                   commentaire=""
                    return valide,commentaire,commentaire2,listeRetour
              # On ajoute la valeur testee a la liste courante et a la liste acceptee
+             print "dans politique"
+             print valeurScientifique
+             self.AjoutDsDictReel(valeurScientifique)
+             print valeur
+             print self.GetValeurTexte(valeur)
+             print self.parent.dict_reels
              listecourante.insert(index,valeur)
              index=index+1
              listeRetour.append(valeur)
index 03fee3ee4cde18202193f158bf4665b744e6d022..938ff0772857f5d34a8ab773f3d4108c9806e21c 100644 (file)
@@ -45,11 +45,14 @@ class SaisieValeur:
                self.listBoxASSD.setCurrentItem(0)
 
 
-  def BuildLBValeurs(self):
+  def BuildLBValeurs(self,politique=None):
         self.LBValeurs.clear()
         listeValeurs=self.node.item.GetListeValeurs()
         for valeur in listeValeurs:
-            self.LBValeurs.insertItem(str(valeur))
+            if politique :
+              self.LBValeurs.insertItem(str(self.politique.GetValeurTexte(valeur)))
+            else :
+              self.LBValeurs.insertItem(str(valeur))
         if listeValeurs != None and listeValeurs != [] :
             self.LBValeurs.setCurrentItem(len(listeValeurs) - 1)
        
@@ -116,7 +119,7 @@ class SaisieValeur:
            valeurBrute=str(self.LEValeur.text())
         else :
            valeurBrute=valeurTraitee
-        if valeurBrute == str("") : return  listeValeurs,1
+        if valeurBrute == str("") : return  listeValeurs,1,valeurBrute
         try :
            valeur=eval(valeurBrute,{})        
         except :
@@ -134,7 +137,7 @@ class SaisieValeur:
                     except :
                        commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python"
                        self.editor.affiche_infos(commentaire)
-                       return listeValeurs,0
+                       return listeValeurs,0,valeurBrute
                        
 
                  else :     # ce n'est pas un tuple à la mode aster
@@ -150,7 +153,7 @@ class SaisieValeur:
         else:
           listeValeurs.append(valeur)
 
-        return listeValeurs,1
+        return listeValeurs,1,valeurBrute
 
 
 class SaisieSDCO :