+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
from Tkinter import *
import Pmw
import string
-import tkMessageBox
# import modules EFICAS
+import widgets
import panels
import fontes
import compooper
# 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("<Return>",self.verif_nom)
self.entry_arg.bind("<Return>",self.verif_arguments)
# 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 TYPE : VARIABLE séparés par des ,').place(relx=0.35,rely=0.45)
- Label(self.frame_valeur,text= 'Exemple REEL:INST,ENTIER:COEF').place(relx=0.35,rely=0.49)
- 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
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 :
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):
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)
+ texte_args=""
+ for i in args :
+ if texte_args != "" :
+ texte_args = texte_args +","
+ texte_args=texte_args + i
+ self.entry_arg.insert(END,texte_args)
corps = self.node.item.get_corps()
if corps :
self.entry_exp.insert(END,self.node.item.get_corps())
"""
Lance la vérification du nom présent dans entry_nom
"""
- nom = self.entry_nom.get()\r
- if nom == '':\r
- test,erreur = 0,"Aucun nom fourni !"\r
+ 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)
"""
Lance la vérification des arguments présents dans entry_arg
"""
- arguments = self.entry_arg.get()\r
- if arguments == '' :\r
- test,erreur = 0,"Aucun argument fourni"\r
+ 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")
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")
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:
"""
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]
+ # transforme en tuple si ce n est pas déjà le casa
+ try :
+ args=string.split(args,',')
+ except :
+ pass
+ 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):
"""
- 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
# ---------------------------------------------------------------------------
"""
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