]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
CCAR: adaptation validation liste partielle a nouveau mecanisme de validation
authorChristian Caremoli <>
Wed, 24 May 2006 17:00:15 +0000 (17:00 +0000)
committerChristian Caremoli <>
Wed, 24 May 2006 17:00:15 +0000 (17:00 +0000)
Editeur/composimp.py
Editeur/newsimppanel.py
Editeur/plusieurspanel.py

index b257fb93613512d4626e0779c919573278e1a30b..ea4b99090d51fe729ac5216f54358a267c9c899d 100644 (file)
@@ -259,33 +259,26 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
     
   def get_liste_possible(self,listeActuelle=[]):
       if hasattr(self.definition.validators,'into'):
-         self.get_definition().into=self.definition.validators.into 
-      valeurspossibles = self.get_definition().into
-      # CCAR : Ne serait-il pas preferable d'appeler get_into ?
-      #valeurspossibles=self.get_into(listeActuelle)
+         valeurspossibles = self.definition.validators.into 
+      else:
+         valeurspossibles = self.get_definition().into
 
+      #On ne garde que les items valides
       listevalideitem=[]
       for item in valeurspossibles:
           encorevalide=self.valide_item(item)
           if encorevalide :
              listevalideitem.append(item)
-      # on ne verifie pas la liste des choix si max = 1 
-      # (sinon cela enleve tous les choix possibles)
-      min,max=self.GetMinMax()
-      if max != 1 : 
-         listevalideliste=[]
-         for item in listevalideitem:
-             listetravail=[]
-             for item2 in listeActuelle : listetravail.append(item2)
-             encorevalide=self.valide_liste_partielle(item,listetravail)
-             if encorevalide :
-                listevalideliste.append(item)
-      else :
-         listevalideliste=listevalideitem
+
+      #on ne garde que les choix possibles qui passent le test de valide_liste_partielle
+      listevalideliste=[]
+      for item in listevalideitem:
+          encorevalide=self.valide_liste_partielle(item,listeActuelle)
+          if encorevalide :
+              listevalideliste.append(item)
       return listevalideliste
 
   def get_liste_param_possible(self):
-  # 
       liste_param=[]
       for param in self.object.jdc.params:
           encorevalide=self.valide_item(param.valeur)
@@ -327,14 +320,17 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       return valide
      
   def valide_liste_partielle(self,item,listecourante):
-      valeur=listecourante
+      #On protege la liste en entree en la copiant
+      valeur=listecourante[:]
       valeur.append(item)
-      valeur = tuple(valeur)
       return self.object.valid_valeur_partielle(valeur)
 
   def valide_liste_complete (self,valeur):
       return self.object.valid_valeur(valeur)
 
+  def valide_val (self,valeur):
+      return self.object.valid_val(valeur)
+
   def info_erreur_item(self) :
       commentaire=""
       if self.definition.validators :
index 8164f92642e47f09747b0540eb074e8d0b741a85..ea414a03c6087593f85c0187ec31c98525428854 100644 (file)
@@ -74,13 +74,6 @@ class newSIMPPanel(panels.OngletPanel):
       if self.parent.modified == 'n' : self.parent.init_modif()
       self.node.item.set_valeur(name)
       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()
 
   def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
       """
@@ -103,25 +96,11 @@ class newSIMPPanel(panels.OngletPanel):
                   self.parent.appli.affiche_infos(commentaire)
                 
       if validite : 
-         if self.node.item.is_list() :
-            validite=self.node.item.valide_liste_complete(valeur)
-            commentaire=self.node.item.info_erreur_liste()
-         else :
-            validite=self.node.item.valide_item(valeur)
-            commentaire=self.node.item.info_erreur_item()
+          validite,commentaire=self.node.item.valide_val(valeur)
  
       if validite :
           self.node.item.set_valeur(valeur)
           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()
       else :
           self.parent.appli.affiche_infos(commentaire)
 
index 19bc5be88a06793644deabb336201b738e7bc4dc..a8c7bad1af982764fc9a9d92e6fbf34359124fd0 100644 (file)
@@ -55,6 +55,8 @@ class PLUSIEURS_Panel(newSIMPPanel):
          l1_valeurs = self.Liste_valeurs.get_liste()
       else:
          l1_valeurs = liste
+
+      #nettoyage de la liste
       l_valeurs=[]
       for  val in l1_valeurs :
         if val != '' and val != None :
@@ -96,7 +98,6 @@ class PLUSIEURS_Panel(newSIMPPanel):
                         0 si le validateur trouve la valeur de l item incorrecte
                        -1 si le validateur trouve la liste incorrecte
       """
-
       commentaire="Valeur incorrecte : ajout à la liste refusé"
       testvalide=1
 
@@ -118,9 +119,6 @@ class PLUSIEURS_Panel(newSIMPPanel):
       else :
           testtype = self.node.item.object.verif_type(valeur)
           if not testtype :
-            if valeur.__class__.__name__ in ( 'PARAMETRE', 'ITEM_PARAMETRE') :
-               testtype = 1
-            else :
                commentaire ="Type de la valeur incorrecte"
                encorevalide=-2