+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
from widgets import askopenfilename
from widgets import ListeChoix
from widgets import FenetreDeSelection
+from widgets import FenetreDeParametre
from Noyau.N_CR import justify_text
from utils import substract_list
self.frame_boutons_fleches = Frame(self.frame_right)
self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5)
self.frame_choix = Frame(self.frame_right)
- self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.5)
+ self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.8)
self.frame_aide = Frame(self.frame_right)
- self.frame_aide.place(relx=0.1,rely=0.7,relwidth=0.8,relheight=0.3)
+ self.frame_aide.place(relx=0.1,rely=0.8,relwidth=0.8,relheight=0.2)
self.frame_boutons = Frame(self.frame2)
self.frame_boutons.place(relx=0.35,rely=0.,relwidth=0.3,relheight=1.)
for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs,
titre="Valeur(s) actuelle(s)")
# 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.label = Label(self.frame_choix,text="Valeur :")
self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base)
- self.label.place(relx=0.05,rely=0.5)
+ self.label.place(relx=0.05,rely=0.3)
- # Création d'un bouton "Importer ..." sur le panel.
+ # Création d'un bouton "Importer ..." et d'un bouton "Paramatres" sur le panel.
bouton_valeurs_fichier = Button(self.frame_choix,
- text="Importer ...",
+ text="Importer",
command=self.select_in_file)
- bouton_valeurs_fichier.place(relx=0.28,rely=0.7,relwidth=0.6)
+ bouton_valeurs_fichier.place(relx=0.28,rely=0.4,relwidth=0.6)
+ bouton_parametres = Button(self.frame_choix, text="Parametres", command=self.affiche_parametre)
+ bouton_parametres.place(relx=0.28,rely=0.6,relwidth=0.6)
self.ajout_valeurs = None
# boutons Ajouter et Supprimer
wraplength=int(self.frame_aide.winfo_width()*0.8))
self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1)
self.Liste_valeurs.affiche_liste()
+ if len(l_valeurs) > 0 :
+ liste_marque=l_valeurs[-1]
+ self.Liste_valeurs.surligne(liste_marque)
# boutons Accepter et Annuler
bouton_accepter = Button(self.frame_boutons,
text='Valider',
for but in (bouton_accepter,bouton_annuler):
but.pack(side='left',padx=5)
+ def affiche_parametre(self) :
+ if self.node.item.get_liste_param_possible() != [ ]:
+ txtparam=""
+ for param in self.node.item.get_liste_param_possible():
+ txtparam=txtparam+repr(param)+"\n"
+ if txtparam=="":
+ showerror("Aucun parametre ","Pas de parametre de ce type")
+ else :
+ try :
+ self.self.fenetreparam.destroy()
+ except:
+ pass
+ self.fenetreparam=FenetreDeParametre( self, self.node.item, self.parent.appli, txtparam)
+
+ def valid_valeur(self):
+ self.add_valeur_plusieurs_base()
+
def add_valeur_plusieurs_base(self,name=None):
if name != None :
valeur = name
self.parent.appli.affiche_infos(commentaire)
return
- encorevalide=self.node.item.valide_item(valeur)
- if encorevalide :
- listecourante=self.Liste_valeurs.get_liste()
- encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
- if not encorevalide : encorevalide = -1
- self.add_valeur_sans_into(valeur,encorevalide)
+ atraiter=[]
+ try :
+ for v in valeur:
+ atraiter.append(v)
+ except :
+ atraiter.append(valeur)
+
+ for valeur in atraiter :
+ encorevalide=self.node.item.valide_item(valeur)
+ if encorevalide :
+ listecourante=self.Liste_valeurs.get_liste()
+ encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
+ if not encorevalide : encorevalide = -1
+ self.add_valeur_sans_into(valeur,encorevalide)
def select_in_file(self):
""" Permet d'ouvrir un fichier choisi par l'utilisateur. """
self.entry1.focus()
else:
self.entry = Entry(frame,relief='sunken')
- self.entry.place(relx=0.28,rely=0.5,relwidth=0.6)
+ self.entry.place(relx=0.28,rely=0.2,relwidth=0.6)
self.entry.bind("<Return>",lambda e,c=command:c())
self.entry.focus()
if hasattr(self,'entry'):
# Traitement d'une entree unique
valeurentree = self.entry.get()
- valeur,validite=self.node.item.eval_valeur(valeurentree)
+ if (valeurentree == None or valeurentree ==""):
+ return None,0,""
+ if (valeurentree[0] != "(") and (valeurentree.find(',') < len(valeurentree)):
+ valeurs=[]
+ for v in valeurentree.split(','):
+ vsimple,validite=self.node.item.eval_valeur(v)
+ if validite :
+ valeurs.append(vsimple)
+ else:
+ commentaire = "impossible d'évaluer : %s " %`valeurentree`
+ break
+ valeur=valeurs
+ else:
+ valeur,validite=self.node.item.eval_valeur(valeurentree)
if not validite :
commentaire = "impossible d'évaluer : %s " %`valeurentree`
else: