]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN version intermédiaire intégrant les validateurs
authoreficas <>
Thu, 9 Oct 2003 14:59:06 +0000 (14:59 +0000)
committereficas <>
Thu, 9 Oct 2003 14:59:06 +0000 (14:59 +0000)
Editeur/composimp.py

index 71a6dd4203456203273c960796d7e4feeef1d58d..e5b30f267dafab28d03d4bf03894f7ce838cffba 100644 (file)
@@ -64,39 +64,13 @@ class newSIMPPanel(panels.OngletPanel):
 #    au mot-clé courant
 # ----------------------------------------------------------------------------------------
 
-#  def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
-#      if self.parent.modified == 'n' : self.parent.init_modif()
-#      if name != None:
-#          valeur =name
-#      else :
-          #XXX Pourquoi proceder ainsi ? Il n'est pas possible de mettre
-          # None comme valeur du mot cle. 
-          # Probablement que ce debranchement permet de mettre record_valeur
-          # en call back, il faut donc aller chercher la valeur dans l'entry
-#          valeur= self.entry.get()
-#          self.entry.delete(0,END)
-          #XXX Pour permettre la mise a None du mot cle, on remet None si valeur == ''
-#          if valeur == '':valeur=None
-#      self.node.item.set_valeur(valeur,evaluation='non')
-#      self.parent.appli.affiche_infos(mess)
-#      if self.node.item.get_position()=='global':
-#          self.node.etape.verif_all()
-#      elif self.node.item.get_position()=='global_jdc':
-#          self.node.racine.verif_all()
-#      else :
-#          self.node.parent.verif()
-#      self.node.update()
-#      if self.node.item.isvalid():
-#          self.node.parent.select()
-
-  def record_valeur_deja_evaluee(self,name=None,mess='Valeur du mot-clé enregistrée'):
+  def reset_old_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
       """
           Enregistre  val comme valeur de self.node.item.object SANS 
           faire de test de validité ni ré-évaluer l'ancienne valeur
           permet de rester avec des valeurs non entrees et de ne pas 
           ré-évaluer des entiers par exemple
       """
-      print "debut reset"
       if self.parent.modified == 'n' : self.parent.init_modif()
       self.node.item.set_valeur(name)
       self.parent.appli.affiche_infos(mess)
@@ -107,29 +81,32 @@ class newSIMPPanel(panels.OngletPanel):
       else :
            self.node.parent.verif()
       self.node.update()
-      if self.node.item.isvalid():
-              self.node.parent.select()
 
   def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
       """
           Enregistre  val comme valeur de self.node.item.object  
          en evaluant l item et en le validant 
       """
-      print "ici"
       if self.parent.modified == 'n' : self.parent.init_modif()
       if name != None:
           valeur = name
+          validite = 1
       else :
-          valeur= self.entry.get()
+          valeurentree= self.entry.get()
           self.entry.delete(0,END)
-          if valeur == '': valeur=None
-          valeur,validite=self.node.item.eval_valeur(valeur)
-
-      if self.node.item.is_list() :
-          verification=self.node.item.valide_liste_complete(valeur)
-      else :
-         verification=self.node.item.valide_item(valeur)
-      if verification :
+          if valeurentree == '': valeurentree=None
+          valeur,validite=self.node.item.eval_valeur(valeurentree)
+          if not validite :
+               valeur= self.entry.get()
+                commentaire = "impossible d'évaluer : %s " %`valeurentree`
+               self.parent.appli.affiche_infos(commentaire)
+               
+      if validite : 
+         if self.node.item.is_list() :
+            validite=self.node.item.valide_liste_complete(valeur)
+         else :
+           validite=self.node.item.valide_item(valeur)
+      if validite :
           self.node.item.set_valeur(valeur)
           self.parent.appli.affiche_infos(mess)
           if self.node.item.get_position()=='global':
@@ -268,15 +245,10 @@ class PLUSIEURS_Panel(newSIMPPanel):
       et l'affecte au mot-clé courant.
       """
       l1_valeurs = self.Liste_valeurs.get_liste()
-      # PN : remplacement des paramétres par leur nom (cf get_liste)
       l_valeurs=[]
       for  val in l1_valeurs :
         if val != '' and val != None :
-           if val.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
-               v=val.nom
-           else:
-                v=val
-           l_valeurs.append(v)
+           l_valeurs.append(val)
     
       longueur = len(l_valeurs)
       if longueur < min or longueur > max :
@@ -288,6 +260,7 @@ class PLUSIEURS_Panel(newSIMPPanel):
          valeur = l_valeurs[0]
       else:
          valeur = None
+
       self.parent.appli.affiche_infos("Valeur acceptée")
       self.record_valeur(valeur)
       if self.node.item.isvalid():
@@ -336,47 +309,42 @@ class PLUSIEURS_Panel(newSIMPPanel):
                        -1 si le validateur trouve la liste incorrecte
       """
 
-      #test1=0
-      test2=0
       commentaire="Valeur incorrecte : ajout à la liste refusé"
+      testvalide=1
 
       if name != None :
          valeur = name
       else:
-         valeur = self.get_valeur()
+         valeurentree = self.get_valeur()
+         if valeur == '': valeur=None
+         valeurentree,testvalide=self.node.item.eval_valeur(valeur)
 
       if (valeur == None or valeur =="") :
           encorevalide = -2 
           commentaire = "Pas de saisie des valeurs nulles"
          
-      if (encorevalide ==0) :
-          commentaire=self.node.item.info_erreur_item()
-      if (encorevalide == -1) :
-          commentaire=self.node.item.info_erreur_liste()
-      min,max = self.node.item.GetMinMax()
-
-      #if (encorevalide == 1) :
-      #   if self.node.item.wait_reel():
-      #       valeur = self.traite_reel(valeur)
-      #   if self.node.item.wait_geom():
-      #       val,test1 = valeur,1
-      #   else:
-      #       val,test1 = self.node.item.eval_valeur(valeur)
+      if testvalide :
+         if (encorevalide ==0) :
+             commentaire=self.node.item.info_erreur_item()
+         if (encorevalide == -1) :
+             commentaire=self.node.item.info_erreur_liste()
+         min,max = self.node.item.GetMinMax()
 
-      #if test1 :
-      test2 = self.node.item.object.verif_type(valeur)
+         testtype = self.node.item.object.verif_type(valeur)
 
-      if test2 :
-         liste_valeurs = self.Liste_valeurs.get_liste()
-         if len(liste_valeurs) >= max :
+         if testtype :
+            liste_valeurs = self.Liste_valeurs.get_liste()
+            if len(liste_valeurs) >= max :
                 commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
+            else :
+               liste_valeurs.append(valeur)
+               self.Liste_valeurs.put_liste(liste_valeurs)
+               self.erase_valeur()
+               commentaire="Nouvelle valeur acceptée"
          else :
-            liste_valeurs.append(valeur)
-            self.Liste_valeurs.put_liste(liste_valeurs)
-            self.erase_valeur()
-            commentaire="Nouvelle valeur acceptée"
-      else :
             commentaire ="Type de la valeur incorrecte"
+      else :
+         commentaire = "impossible d'évaluer : %s " %`valeurentree`
 
       self.erase_valeur()
       self.parent.appli.affiche_infos(commentaire)
@@ -392,7 +360,6 @@ class PLUSIEURS_Panel(newSIMPPanel):
           # la valeur sélectionnée n'est pas dans la liste
           return
       self.Liste_valeurs.put_liste(liste_valeurs)
-      #self.display_valeur('')
       self.display_valeur(self.selected_valeur)
       self.selected_valeur = None      
 
@@ -431,7 +398,6 @@ class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel):
       #l_choix=list(objet_mc.into)
       l_valeurs = self.node.item.GetListeValeurs()
       l_choix= self.node.item.get_liste_possible(l_valeurs)
-      l_choix.sort()
       # reinitialisation de l_valeurs
       l_valeurs = self.node.item.GetListeValeurs()
 
@@ -625,12 +591,17 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel):
 
   def add_valeur_plusieurs_base(self,name=None):
       if name != None :
-         valentree = name
+         valeur = name
       else:
-         valentree = self.get_valeur()
-      valeur,validite=self.node.item.eval_valeur(valentree)
+         valeurentree = self.get_valeur()
+         if valeurentree == '': valeur=None
+         valeur,validite=self.node.item.eval_valeur(valeurentree)
+         if not validite :
+            commentaire = "impossible d'évaluer : %s " %`valeur`
+            self.parent.appli.affiche_infos(commentaire)
+            return
+
       encorevalide=self.node.item.valide_item(valeur)
-      print encorevalide
       if encorevalide :
          listecourante=self.Liste_valeurs.get_liste()
          encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
@@ -876,24 +847,21 @@ class UNIQUE_Panel(newSIMPPanel):
       - si non, restaure l'ancienne valeur
       """
       if self.parent.modified == 'n' : self.parent.init_modif()
+      anc_val = self.node.item.get_valeur()
       valeurentree = self.get_valeur()
       self.erase_valeur()
-      anc_val = self.node.item.get_valeur()
-      valeur,test=self.node.item.eval_valeur(valeurentree)
+      valeur,validite=self.node.item.eval_valeur(valeurentree)
+      if not validite :
+             commentaire = "impossible d'évaluer : %s " %`valeur`
+             self.parent.appli.affiche_infos(commentaire)
+             return
    
-      print "VALID_VALEUR"
-      if test :
-         test = self.node.item.set_valeur(valeur)
+      test = self.node.item.set_valeur(valeur)
        
-      print "apres set valeur" 
-      print valeur
-      print test
       if not test :
-          print "LLLLLA"
           mess = "impossible d'évaluer : %s " %`valeur`
-          self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
+          self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée : "+mess)
       elif self.node.item.isvalid() :
-          print "LLLLLLLLLL"
           self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
          if self.node.item.get_position()=='global':
               self.node.etape.verif_all()
@@ -904,10 +872,9 @@ class UNIQUE_Panel(newSIMPPanel):
          self.node.update()
           self.node.parent.select()
       else :
-          print " PASSE LA"
           cr = self.node.item.get_cr()
           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
-          self.record_valeur_deja_evaluee(anc_val,mess=mess)
+          self.reset_old_valeur(anc_val,mess=mess)
 
 class UNIQUE_INTO_Panel(UNIQUE_Panel):
   """
@@ -985,7 +952,7 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
       else :
           cr = self.node.item.get_cr()
           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
-          self.record_valeur_deja_evaluee(anc_val,mess=mess)
+          self.reset_old_valeur(anc_val,mess=mess)
 
   def makeValeurPage(self,page):
       """
@@ -1166,7 +1133,7 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel):
       else :
           cr = self.node.item.get_cr()
           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
-          self.record_valeur_deja_evaluee(anc_val,mess=mess)
+          self.reset_old_valeur(anc_val,mess=mess)
           return
       if self.node.item.get_position()=='global':
           self.node.etape.verif_all()
@@ -1195,7 +1162,7 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel):
       else :
           cr = self.node.item.get_cr()
           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
-          self.record_valeur_deja_evaluee(anc_val,mess=mess)
+          self.reset_old_valeur(anc_val,mess=mess)
           return
       if self.node.item.get_position()=='global':
           self.node.etape.verif_all()
@@ -1526,9 +1493,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       valide=1
       if self.definition.validators :
          valide=self.definition.validators.verif(item)
-      print "RRRRRRRRRRR"
-      print item
-      print valide
       return valide
      
   def valide_liste_partielle(self,item,listecourante):
@@ -1539,14 +1503,11 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
          valeur = tuple(valeur)
       else :
         valeur=valeur[0]
-      print valeur
-      retour=self.object.set_valeur(valeur,"non")
-      if self.definition.validators :
-         print self.definition.validators
+      retour=self.object.set_valeur(valeur)
       validite=0
       if self.object.isvalid():
          validite=1
-      retour=self.object.set_valeur(valeuravant,"non")
+      retour=self.object.set_valeur(valeuravant)
       return validite 
 
   def valide_liste_complete (self,valeur):
@@ -1697,9 +1658,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       pass
 
   def isvalid(self):
-    print "ISVALID"
     valide=self.object.isvalid()
-    print valide
     return self.object.isvalid()
 
   def eval_valeur(self,valeur):
@@ -1722,8 +1681,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
          valeurretour,validite= self.eval_valeur_item(valeur)
       if validite == 0 :
         valeurretour = None
-      print "UUUUUUU"
-      print valeurretour,validite
       return valeurretour,validite
 
   def eval_valeur_item(self,valeur):
@@ -1740,8 +1697,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
         if type(valeur) == types.StringType and self.object.wait_TXM():
             essai_valeur="'" + valeur + "'"
             valeurretour,validite= self.object.eval_valeur(essai_valeur)
-      if valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
-           valeurretour=val.nom
+      if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
             validite=1
       if self.wait_co():
          try:
@@ -1757,12 +1713,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
                   valeurretour=str(valeur)
                   validite=1
 
-      print "XXXXXXXX"
-      print valeur
-      print type(valeur)
-      print valeurretour
-      print type(valeurretour)
-      print validite
       return valeurretour,validite