X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fcompoformule.py;h=302cf665e8589eeb638ccbb97f26d4c7903e08de;hb=1be5081ff07176779c04356cd73c6a9c3b9644a2;hp=c397f3de6fe19eaff643ca3bf3efdb85c4f91b16;hpb=c53678789e5e2b669dc28310e962a7ddcca49924;p=tools%2Feficas.git diff --git a/Editeur/compoformule.py b/Editeur/compoformule.py index c397f3de..302cf665 100644 --- a/Editeur/compoformule.py +++ b/Editeur/compoformule.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -27,9 +28,9 @@ d'EFICAS from Tkinter import * import Pmw import string -import tkMessageBox # import modules EFICAS +import widgets import panels import fontes import compooper @@ -67,19 +68,17 @@ class FORMULEPanel(panels.OngletPanel): # affichage du titre du panneau self.titre = StringVar() self.titre.set("FORMULE "+self.node.item.get_nom()) + + self.entry_nom = Entry(self.frame_valeur) Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n') # création des labels et entries associés aux nom, type retourné, arguments et corps de la FORMULE + Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1) - self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Type retourné : ').place(relx=0.,rely=0.25) - self.option_menu_typ = Pmw.OptionMenu(self.frame_valeur,labelpos='w', - label_text='', - items = self.node.item.get_liste_types_autorises()) - self.option_menu_typ.place(relx=0.33,rely=0.23) Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40) self.entry_arg = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.60) + Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65) self.entry_exp = Entry(self.frame_valeur) + # binding sur les entries self.entry_nom.bind("",self.verif_nom) self.entry_arg.bind("",self.verif_arguments) @@ -87,18 +86,21 @@ class FORMULEPanel(panels.OngletPanel): # affichage des entries self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2) self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4) - Label(self.frame_valeur,text='Entrer les arguments sous la forme').place(relx=0.35,rely=0.45) - Label(self.frame_valeur,text='TYPE : VARIABLE séparés par des virgules (,)').place(relx=0.35,rely=0.49) - Label(self.frame_valeur,text= 'Exemple REEL:INST,ENTIER:COEF').place(relx=0.35,rely=0.53) - self.entry_exp.place(relx=0.35,rely=0.60,relwidth=0.60) - # affichage d'une phrase d'aide - aide = """ - Un retour de chariot dans une zone de saisie vous permet de vérifier si - la valeur que vous avez entrée est valide. - Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles - valeurs seront effectivement prises en compte - """ - Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.7,anchor='n') + + # affichage d'une phrase d'aide pour les arguments + aide = """Entrer les arguments sous la forme +de VARIABLES séparées par des virgules (,) +Exemple X,Y,Z """ + Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n') + + self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60) + # affichage d'une phrase d'aide pour l'expression + aide = """Un retour de chariot dans une zone de saisie vous permet de vérifier si +la valeur que vous avez entrée est valide. +Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles +valeurs seront effectivement prises en compte.""" + Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.75,anchor='n') + # affichage des nom, type retourné, arguments et corps de la FORMULE self.display_valeur() # affichage des boutons @@ -127,9 +129,11 @@ class FORMULEPanel(panels.OngletPanel): if self.parent.modified == 'n' : self.parent.init_modif() # on récupère les nouveaux nom, type retourné, arguments et corps de la FORMULE new_nom = self.entry_nom.get() - new_typ = self.option_menu_typ.getcurselection() + new_typ="REEL" new_arg = self.entry_arg.get() new_exp = self.entry_exp.get() + self.verif_arguments + self.verif_corps # on essaie de les stocker test,erreur = self.node.item.save_formule(new_nom,new_typ,new_arg,new_exp) if test : @@ -139,7 +143,7 @@ class FORMULEPanel(panels.OngletPanel): self.parent.appli.affiche_infos("FORMULE %s modifiée" %self.node.item.get_nom()) else: # la formule est incorrecte : on affiche les erreurs - tkMessageBox.showerror("Formule incorrecte",erreur) + widgets.showerror("Formule incorrecte",erreur) self.parent.appli.affiche_infos("FORMULE %s non modifiée" %self.node.item.get_nom()) def display_valeur(self): @@ -157,9 +161,6 @@ class FORMULEPanel(panels.OngletPanel): nom = self.node.item.get_nom() if nom != '': self.entry_nom.insert(END,nom) - type = self.node.item.get_type() - if type : - self.option_menu_typ.invoke(type) args = self.node.item.get_args() if args: self.entry_arg.insert(END,args) @@ -171,13 +172,13 @@ class FORMULEPanel(panels.OngletPanel): """ Lance la vérification du nom présent dans entry_nom """ - nom = self.entry_nom.get() - if nom == '': - test,erreur = 0,"Aucun nom fourni !" + nom = self.entry_nom.get() + if nom == '': + test,erreur = 0,"Aucun nom fourni !" else: test,erreur = self.node.item.verif_nom(nom) if not test: - tkMessageBox.showerror("Nom invalide",erreur) + widgets.showerror("Nom invalide",erreur) self.entry_nom.focus() self.entry_nom.selection_range(0,END) self.parent.appli.affiche_infos("%s n'est pas un nom valide pour une FORMULE" %nom) @@ -189,13 +190,13 @@ class FORMULEPanel(panels.OngletPanel): """ Lance la vérification des arguments présents dans entry_arg """ - arguments = self.entry_arg.get() - if arguments == '' : - test,erreur = 0,"Aucun argument fourni" + arguments = self.entry_arg.get() + if arguments == '' : + test,erreur = 0,"Aucun argument fourni" else: test,erreur = self.node.item.verif_arguments(arguments) if not test: - tkMessageBox.showerror("Argument(s) invalide(s)",erreur) + widgets.showerror("Argument(s) invalide(s)",erreur) self.entry_arg.focus() self.entry_arg.selection_range(0,END) self.parent.appli.affiche_infos("Argument(s) invalide(s) pour une FORMULE") @@ -208,16 +209,16 @@ class FORMULEPanel(panels.OngletPanel): Lance la vérification du corps de formule présent dans entry_exp """ new_nom = self.entry_nom.get() - new_typ = self.option_menu_typ.getcurselection() + new_typ="REEL" new_arg = self.entry_arg.get() new_exp = self.entry_exp.get() if new_exp == '': test,erreur = 0,"Aucune expression fournie !" else: - test,erreur = self.node.item.verif_formule((new_nom,new_typ,new_arg,new_exp)) + test,erreur = self.node.item.verif_formule_python((new_nom,new_typ,new_arg,new_exp)) if not test: - tkMessageBox.showerror("Corps de FORMULE invalide",erreur) + widgets.showerror("Corps de FORMULE invalide",erreur) self.entry_exp.focus() self.entry_exp.selection_range(0,END) self.parent.appli.affiche_infos("Corps de FORMULE invalide") @@ -253,6 +254,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem): Ce nom dépend de la validité de l'objet """ if self.object.isactif(): + self.object.state="modified" if self.object.isvalid(): return "ast-green-square" else: @@ -293,17 +295,27 @@ class FORMULETreeItem(compooper.EtapeTreeItem): """ Retourne les arguments de la FORMULE """ - args = self.object.arguments + args="" + for mot in self.object.mc_liste: + if mot.nom == 'NOM_PARA': + args=mot.valeur + break if args : - return self.object.arguments[1:-1] #on enlève les parenthèses ouvrante et fermante - else: - return None + if args[0] == "(" and args[-1] ==")": + args=args[1:-1] + return args def get_corps(self): """ Retourne le corps de la FORMULE """ - return self.object.corps + corps="" + for mot in self.object.mc_liste: + if mot.nom == 'VALE': + corps=mot.valeur + break + return corps + def get_liste_types_autorises(self): """ @@ -321,11 +333,11 @@ class FORMULETreeItem(compooper.EtapeTreeItem): - si non, laisse les paramètres anciens de la FORMULE inchangés et retourne 0 """ - test,erreur = self.object.verif_formule(formule=(new_nom,new_typ,new_arg, + test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg, new_exp)) if test : # la formule est bien correcte : on sauve les nouveaux paramètres - self.object.update(formule=(new_nom,new_typ,new_arg,new_exp)) + test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg)) return test,erreur # --------------------------------------------------------------------------- @@ -350,6 +362,13 @@ class FORMULETreeItem(compooper.EtapeTreeItem): """ return self.object.verif_formule(formule=formule) + + def verif_formule_python(self,formule): + """ + Lance la vérification de FORMULE passée en argument + """ + return self.object.verif_formule_python(formule=formule) + import Accas treeitem =FORMULETreeItem objet = Accas.FORM_ETAPE