From c0bd2049cd5523d717c2d1578d0054eba41e91fb Mon Sep 17 00:00:00 2001 From: eficas <> Date: Fri, 10 Oct 2003 16:17:25 +0000 Subject: [PATCH] PN: version intermediaire permettant la saisie du .com de reference (sans faire trop d erreur) --- Editeur/composimp.py | 68 +++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/Editeur/composimp.py b/Editeur/composimp.py index e5b30f26..617d02d9 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -278,26 +278,6 @@ class PLUSIEURS_Panel(newSIMPPanel): if self.ajout_valeurs: self.ajout_valeurs.quit() - def traite_reel(self,valeur): - """ - Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel - ou de détecter si on fait référence à un concept produit par DEFI_VALEUR - ou un EVAL ... - """ - valeur = string.strip(valeur) - liste_reels = self.node.item.get_sd_avant_du_bon_type() - if valeur in liste_reels: - return valeur - if len(valeur) >= 3 : - if valeur[0:4] == 'EVAL' : - # on a trouvé un EVAL --> on retourne directement la valeur - return valeur - if string.find(valeur,'.') == -1 : - # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin - return valeur+'.' - else: - return valeur - def add_valeur_sans_into(self,name=None,encorevalide=1): """ Lit ce que l'utilisateur a saisi dans self.entry et cherche à @@ -312,11 +292,13 @@ class PLUSIEURS_Panel(newSIMPPanel): commentaire="Valeur incorrecte : ajout à la liste refusé" testvalide=1 + print name + print name.__class__.__name__ if name != None : valeur = name else: valeurentree = self.get_valeur() - if valeur == '': valeur=None + if valeurentree == '': valeur=None valeurentree,testvalide=self.node.item.eval_valeur(valeur) if (valeur == None or valeur =="") : @@ -547,7 +529,6 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): # Création de l'entry ou de la liste des SD self.label = Label(self.frame_choix,text="Valeur :") # PN : pour ajouter les validators - #self.make_entry(frame = self.frame_choix,command = self.add_valeur_sans_into) self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base) self.label.place(relx=0.05,rely=0.5) @@ -559,9 +540,6 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): self.ajout_valeurs = None # boutons Ajouter et Supprimer - #bouton_add = Button(self.frame_boutons_fleches, - # image = images.get_image('arrow_left'), - # command = self.add_valeur_sans_into) bouton_add = Button(self.frame_boutons_fleches, image = images.get_image('arrow_left'), command = self.add_valeur_plusieurs_base) @@ -732,7 +710,8 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): ("",self.sup_valeur_sans_into)) liste_commandes_choix = (("",self.selectChoix), ("",self.deselectChoix), - ("",self.add_valeur_sans_into)) + # ("",self.add_valeur_sans_into)) + ("",self.add_eval_valeur_sans_into)) self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs, titre="Valeur(s) actuelle(s)") self.Liste_choix = ListeChoix(self,self.frame_choix,l_choix,liste_commandes = liste_commandes_choix, @@ -740,7 +719,8 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): bouton_add = Button(self.frame_boutons_fleches, #text="<--", image = images.get_image('arrow_left'), - command = self.add_valeur_sans_into) + # command = self.add_valeur_sans_into) + command = self.add_eval_valeur_sans_into) bouton_sup = Button(self.frame_boutons_fleches, #text="-->", image = images.get_image('arrow_right'), @@ -760,6 +740,14 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): for fram in (self.frame_valeurs,self.frame_boutons_fleches,self.frame_choix,self.frame_boutons): fram.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) fram.bind("",self.parent.appli.efface_aide) + + def add_eval_valeur_sans_into(self,valeurentree=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 + self.add_valeur_sans_into(valeur) def get_bulle_aide(self): """ @@ -1428,6 +1416,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): else: # on attend un entier, un réel ou une string self.panel = UNIQUE_BASE_Panel + print "affect_panel : ",self.panel def is_list(self): """ @@ -1647,6 +1636,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): Retourne la liste des noms des SD présentes avant l'étape qui contient le MCS pointé par self et du type requis par ce MCS """ + a=self.object.etape.parent.get_sd_avant_du_bon_type(self.object.etape,self.object.definition.type) return self.object.etape.parent.get_sd_avant_du_bon_type(self.object.etape, self.object.definition.type) @@ -1688,7 +1678,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return None,0 validite=1 if self.wait_reel(): - valeurretour = self.traite_reel(valeur) + valeurinter = self.traite_reel(valeur) + valeurretour,validite= self.object.eval_valeur(valeurinter) elif self.wait_geom(): valeurretour,validite = valeur,1 else : @@ -1768,7 +1759,26 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): listevalideliste=listevalideitem return listevalideliste - + def traite_reel(self,valeur): + """ + Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel + ou de détecter si on fait référence à un concept produit par DEFI_VALEUR + ou un EVAL ... + """ + valeur = string.strip(valeur) + liste_reels = self.get_sd_avant_du_bon_type() + if valeur in liste_reels: + return valeur + if len(valeur) >= 3 : + if valeur[0:4] == 'EVAL' : + # on a trouvé un EVAL --> on retourne directement la valeur + return valeur + if string.find(valeur,'.') == -1 : + # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin + return valeur+'.' + else: + return valeur + import Accas treeitem = SIMPTreeItem -- 2.39.2