From: Pascale Noyret Date: Thu, 12 Feb 2009 09:58:30 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: V0_a1_SEPQT4~26 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f7c5800b87fe73754f9346cb72fc86436ee686ca;p=modules%2Feficas.git *** empty log message *** --- diff --git a/Accas/__init__.py b/Accas/__init__.py index 2241fee1..e3b2deea 100644 --- a/Accas/__init__.py +++ b/Accas/__init__.py @@ -83,6 +83,7 @@ from A_VALIDATOR import OrVal,AndVal from A_VALIDATOR import OrdList,NoRepeat,LongStr,Compulsory from A_VALIDATOR import RangeVal, EnumVal, TypeVal, PairVal from A_VALIDATOR import CardVal, InstanceVal +from A_VALIDATOR import VerifTypeTuple # On remplace la factory des validateurs initialement dans Noyau par celle # de A_VALIDATOR diff --git a/Cuve2dg/Cuve2dg_Cata_VPN.py b/Cuve2dg/Cuve2dg_Cata_VPN.py index 1cd34a01..852c6efd 100644 --- a/Cuve2dg/Cuve2dg_Cata_VPN.py +++ b/Cuve2dg/Cuve2dg_Cata_VPN.py @@ -99,10 +99,11 @@ OPTIONS = PROC ( nom = "OPTIONS", typ = Tuple(2), max = "**", fr = "Liste des instants ", + validators=VerifTypeTuple(('R','R')), ), ListeInstants2 = SIMP ( statut = "o", - typ = Tuple(3), + typ = Tuple(2), max = "**", fr = "Liste des instants ", ), diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index f742185a..5922297e 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -341,16 +341,6 @@ class JDCNode(QTreeWidgetItem): for child in self.children: if child.isHidden() == false : child.update_texte() -# def update_valid(self) : -# """Cette methode a pour but de mettre a jour la validite du noeud -# et de propager la demande de mise a jour a son Parent -# """ -# #print "NODE update_valid", self.item.GetLabelText() -# self.update_node_valid() -# try : -# self.treeParent.update_valid() -# except: -# pass def doPasteCommande(self,objet_a_copier): """ diff --git a/InterfaceQT4/monFonctionPanel.py b/InterfaceQT4/monFonctionPanel.py index 999587cb..0909093f 100644 --- a/InterfaceQT4/monFonctionPanel.py +++ b/InterfaceQT4/monFonctionPanel.py @@ -121,6 +121,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): for valeur in self.listeValeursCourantes : listeVal.append(valeur) if self.node.item.wait_tuple()== 1 : + indexListe = index validite,comm,comm2,listeRetour=self.politique.AjoutTuple(liste,index,listeVal) else : validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) @@ -137,7 +138,6 @@ class MonFonctionPanel(MonPlusieursBasePanel): listeATraiter=self.DecoupeListeValeurs(listeRetour) for valeur in listeATraiter : str_valeur=str(valeur) - print str_valeur self.LBValeurs.insertItem(index,str_valeur) item=self.LBValeurs.item(index) item.setSelected(1) diff --git a/InterfaceQT4/politiquesValidation.py b/InterfaceQT4/politiquesValidation.py index 47a8b5e9..062f9a87 100644 --- a/InterfaceQT4/politiquesValidation.py +++ b/InterfaceQT4/politiquesValidation.py @@ -168,12 +168,12 @@ class PolitiquePlusieurs: valide=self.node.item.valide_item(valeurTuple) if not valide : try : - valeur,valide=self.node.item.eval_valeur(valeur) - valide,commentaire = self.node.item.object.verif_type(valeur) + valeur,valide=self.node.item.eval_valeur(valeurTuple) + valide = self.node.item.valide_item(valeur) except : pass if not valide: - commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé" + commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout à la liste refusé" commentaire2=self.node.item.info_erreur_item() return valide,commentaire,commentaire2,listeRetour @@ -186,7 +186,5 @@ class PolitiquePlusieurs: if len(listecourante) + 1 >= max : commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" return valide,commentaire,commentaire2,listeRetour - listecourante.insert(index,valeurTuple) - index=index+1 listeRetour.append(valeurTuple) return valide,commentaire,commentaire2,listeRetour diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index 61a79a4c..21fa1f26 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -1213,3 +1213,59 @@ class InstanceVal(ListVal): if not isinstance(valeur,self.aClass): return 0 return 1 +class VerifTypeTuple(Valid,ListVal) : + def __init__(self,typeDesTuples): + self.typeDesTuples=typeDesTuples + Valid.__init__(self) + self.cata_info="" + + def info(self): + return ": verifie les types dans un tuple" + + def info_erreur_liste(self): + return "Les types entres ne sont pas permis" + + def default(self,valeur): + #if valeur in self.liste : raise ValError("%s est un doublon" % valeur) + return valeur + + def is_list(self) : + return 1 + + def convert_item(self,valeur): + if len(valeur) != len(self.typeDesTuples): + raise ValError("%s devrait etre de type %s " %(valeur,self.typeDesTuples)) + for i in range(len(valeur)) : + ok=self.verifType(valeur[i],self.typeDesTuples[i]) + if ok!=1 : + raise ValError("%s devrait etre de type %s " %(valeur,self.typeDesTuples)) + return valeur + + def verif_item(self,valeur): + try : + if len(valeur) != len(self.typeDesTuples): return 0 + for i in range(len(valeur)) : + ok=self.verifType(valeur[i],self.typeDesTuples[i]) + if ok!=1 : return 0 + except : + return 0 + return 1 + + def verifType(self,valeur,type_permis): + if type_permis == 'R': + if type(valeur) in (types.IntType,types.FloatType,types.LongType):return 1 + elif type_permis == 'I': + if type(valeur) in (types.IntType,types.LongType):return 1 + elif type_permis == 'C': + if self.is_complexe(valeur):return 1 + elif type_permis == 'TXM': + if type(valeur)==types.StringType:return 1 + return 0 + + def verif(self,valeur): + if type(valeur) in (types.ListType,types.TupleType): + liste=list(valeur) + for val in liste: + if self.verif_item(val)!=1 : return 0 + return 1 +