]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN BR_PN_VAL origin/BR_PN_VAL
authoreficas <>
Thu, 16 Oct 2003 14:14:32 +0000 (14:14 +0000)
committereficas <>
Thu, 16 Oct 2003 14:14:32 +0000 (14:14 +0000)
Editeur/composimp.py
Ihm/I_VALIDATOR.py

index 1fe2c13c7ae707518b7a4061434d76c49bcb667c..ecca51286bee6f111fd0a909e072f363a94ee718 100644 (file)
@@ -108,7 +108,7 @@ class newSIMPPanel(panels.OngletPanel):
          else :
            validite=self.node.item.valide_item(valeur)
             commentaire=self.node.item.info_erreur_item()
-
       if validite :
           self.node.item.set_valeur(valeur)
           self.parent.appli.affiche_infos(mess)
@@ -265,8 +265,8 @@ class PLUSIEURS_Panel(newSIMPPanel):
 
       self.parent.appli.affiche_infos("Valeur acceptée")
       self.record_valeur(valeur)
-      if self.node.item.isvalid():
-          self.node.parent.select()
+      #if self.node.item.isvalid():
+      #    self.node.parent.select()
       # fermeture de la fenêtre de sélection
       if self.ajout_valeurs:
           self.ajout_valeurs.quit()
@@ -294,6 +294,7 @@ class PLUSIEURS_Panel(newSIMPPanel):
       commentaire="Valeur incorrecte : ajout à la liste refusé"
       testvalide=1
 
+      # Lecture de la zone de saisie et evaluation si nécessaire
       if name != None :
          valeur = name
       else:
@@ -303,6 +304,7 @@ class PLUSIEURS_Panel(newSIMPPanel):
          if (not testvalide) :
             commentaire = "impossible d'évaluer : %s " %`valeurentree`
 
+      # Pas de traitement des valeurs nulles ( a priori clic involontaire
       if (valeur == None or valeur =="") :
           commentaire = "Pas de saisie des valeurs nulles"
           encorevalide = -2 
@@ -317,6 +319,10 @@ class PLUSIEURS_Panel(newSIMPPanel):
          commentaire=self.node.item.info_erreur_item()
       if (encorevalide == -1) :
          commentaire=self.node.item.info_erreur_liste()
+        # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
+         min,max = self.node.item.GetMinMax()
+         if len(self.Liste_valeurs.get_liste()) >= max : 
+            commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
 
       if testvalide and (encorevalide == 1):
          min,max = self.node.item.GetMinMax()
@@ -334,9 +340,6 @@ class PLUSIEURS_Panel(newSIMPPanel):
             commentaire ="Type de la valeur incorrecte"
 
       #self.erase_valeur()
-      print "AVANT PB"
-      print encorevalide
-      print commentaire
       self.parent.appli.affiche_infos(commentaire)
 
   def sup_valeur_sans_into(self,name=None):
@@ -595,7 +598,6 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel):
          listecourante=self.Liste_valeurs.get_liste()
          encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
          if not encorevalide : encorevalide = -1
-      print "ICI ", encorevalide
       self.add_valeur_sans_into(valeur,encorevalide)
     
   def select_in_file(self):
@@ -1516,13 +1518,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       """
       valide=1
       if self.definition.validators :
-         valide=self.definition.validators.verif_item(item)
-
-      #   if not self.definition.validators.is_list():
-      #      try :
-      #          valide=self.definition.validators.verif(item)
-      #      except :
-      #          valide=0
+         try :
+            valide=self.definition.validators.verif_item(item)
+         except :
+           valide = 0
       return valide
      
   def valide_liste_partielle(self,item,listecourante):
@@ -1538,7 +1537,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
          validite=self.definition.validators.valide_liste_partielle(valeur)
       if validite==0:
          min,max=self.GetMinMax()
-       
          if len(valeur) < min :
            validite=1
       retour=self.object.set_valeur(valeuravant)
index bb0f32ffed1e588565c0bbc9965ee887c6495d13..c241e857c6e1c39148fe123746bdfcb648d3da84 100644 (file)
@@ -157,6 +157,29 @@ class OrVal(Valid):
               return 1
        return 0
 
+   def info_erreur_item(self):
+       chaine=""
+       a=1
+       for v in self.validators:
+          if v.info_erreur_item() != "" :
+              if a==1:
+                 chaine=v.info_erreur_item()
+                 a=0
+             else:
+                 chaine=chaine+" \n ou "+ v.info_erreur_item()
+       return chaine
+
+   def info_erreur_liste(self):
+       chaine=""
+       a=1
+       for v in self.validators:
+          if v.info_erreur_liste() != "" :
+              if a==1:
+                 chaine=v.info_erreur_liste()
+                 a=0
+             else:
+                 chaine=chaine+" \n ou "+v.info_erreur_liste()
+
    def is_list(self):
        """
           Si plusieurs validateurs sont reliés par un OU
@@ -199,11 +222,35 @@ class OrVal(Valid):
               return v_into
            validator_into.extend(v_into)
        return validator_into
+    
 
 class AndVal(Valid):
    def info(self):
        return "\n et ".join([v.info() for v in self.validators])
 
+   def info_erreur_item(self):
+       chaine=""
+       a=1
+       for v in self.validators:
+          if v.info_erreur_item() != "" :
+              if a==1:
+                 chaine=v.info_erreur_item()
+                 a=0
+             else:
+                 chaine=chaine+" \n et "+v.info_erreur_item()
+       return chaine
+
+   def info_erreur_liste(self):
+       a=1
+       for v in self.validators:
+          if v.info_erreur_liste() != "" :
+              if a==1:
+                 chaine=v.info_erreur_liste()
+                 a=0
+             else:
+                 chaine=chaine+" \n et "+v.info_erreur_liste()
+       return chaine
+
    def verif_item(self,valeur):
        for validator in self.validators:
            v=validator.verif_item(valeur)
@@ -291,6 +338,9 @@ class CardVal(Valid):
        else:
           return []
 
+   def info_erreur_liste(self):
+       return "La cardinalité de la liste doit être comprise entre %s et %s" % (self.min,self.max)
+
 class ListVal(Valid):
    def is_list(self):
        return 1
@@ -327,14 +377,22 @@ class EnumVal(ListVal):
               if e in self.into:
                  liste_choix.append(e)
        return liste_choix
+
+   def info_erreur_item(self):
+       return "La valeur n'est pas dans la liste des choix possibles"
           
 class LongStr(ListVal):
    def info_erreur_item(self):
        return "Longueur de la chaine incorrecte"
 
    def verif_item(self,valeur):
-       if len(valeur) < self.low :return 0
-       if len(valeur) > self.high:return 0
+       low=self.low
+       high=self.high
+       if valeur[0]=="'" and valeur[-1]=="'" :
+          low=low+2
+          high=high+2
+       if len(valeur) < low :return 0
+       if len(valeur) > high:return 0
        return 1
  
 class RangeVal(ListVal):
@@ -343,6 +401,9 @@ class RangeVal(ListVal):
        if valeur > self.high:return 0
        return 1
 
+   def info_erreur_item(self) :
+       return "La valeur doit être comprise entre %s et %s" % (self.low,self.high)
+
 class TypeVal(ListVal):
    def verif_item(self,valeur):
        try:
@@ -436,5 +497,6 @@ class OrdList(ListVal):
               liste_choix.append(e)
           return liste_choix
 
-          
+   def info_erreur_liste(self) :
+       return "La liste doit être en ordre "+self.ord