listevalideliste=listevalideitem
return listevalideliste
+ def get_liste_param_possible(self):
+ #
+ liste_param=[]
+ for param in self.object.jdc.params:
+ encorevalide=self.valide_item(param.valeur)
+ if encorevalide:
+ type_param=param.valeur.__class__.__name__
+ for typ in self.definition.type:
+ if typ=='R' and type_param=='float':
+ liste_param.append(param)
+ if typ=='I' and type_param=='int':
+ liste_param.append(param)
+ if typ=='TXM' and type_param=='str':
+ liste_param.append(repr(param))
+ return liste_param
#--------------------------------------------------
#
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
command = self.annule_modifs_valeur)
for but in (bouton_accepter,bouton_annuler):
but.pack(side='left',padx=5)
+ # traitement de la fenetre des parametres
+ if self.node.item.get_liste_param_possible() != [ ]:
+ txtparam=""
+ for param in self.node.item.get_liste_param_possible():
+ txtparam=txtparam+repr(param)+"\n"
+ self.fenetreparam=FenetreDeParametre( self,
+ self.node.item,
+ self.parent.appli,
+ txtparam)
+
def add_valeur_plusieurs_base(self,name=None):
if name != None :
# Modules Python
import string,types,os
from Tkinter import *
+from Tkinter import Widget
import Pmw
from copy import copy,deepcopy
import traceback
import prefs
import panels
import images
-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.entry = Entry(self.frame_valeur,relief='sunken')
self.entry.place(relx=0.28,rely=0.5,relwidth=0.6)
self.entry.bind("<Return>",lambda e,c=self.valid_valeur:c())
- self.entry.focus()
# aide associée au panneau
self.frame_valeur.update()
self.aide = Label(self.frame_valeur,
self.aide.place(relx=0.5,rely=0.7,anchor='n')
# affichage de la valeur du MCS
self.display_valeur()
+ # traitement de la fenetre des parametres
+ if self.node.item.get_liste_param_possible() != [ ]:
+ txtparam=""
+ for param in self.node.item.get_liste_param_possible():
+ txtparam=txtparam+repr(param)+"\n"
+ self.fenetreparam=FenetreDeParametre( self,
+ self.node.item,
+ self.parent.appli,
+ txtparam)
+
+ def destroy(self):
+ try :
+ self.fenetreparam.destroy()
+ except :
+ pass
+ Widget.destroy(self)
def get_aide(self):
"""
else:
showinfo("Sauvegarde effectuée","Sauvegarde effectuée dans le fichier %s" %file)
+ def destroy(self):
+ try :
+ self.fenetre.destroy()
+ except :
+ pass
+
class FenetreYesNo(Fenetre):
def __init__(self,appli,titre="",texte="",yes="Yes",no="No"):
self.appli=appli
self.but_save.place_forget()
self.but_save.place(relx=0.6,rely=0.5,anchor='center')
self.but_quit.place(relx=0.8,rely=0.5,anchor='center')
+
def get_separateurs_autorises(self):
"""
liste.extend(liste_valeurs)
self.panel.Liste_valeurs.put_liste(liste)
+class FenetreDeParametre(Fenetre) :
+ def __init__(self,parent,item,appli,texte):
+ self.parent=parent
+ self.appli=appli
+ self.fenetre = Toplevel()
+ self.fenetre.configure(width = 250,height=100)
+ self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
+ self.fenetre.title("Parametres")
+ self.titre = "Parametres"
+ self.texte = string.replace(texte,'\r\n','\n')
+ fonte=fontes.standardcourier10
+
+ # définition des frames
+ self.frame_texte = Frame(self.fenetre)
+ self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.9)
+ # définition de la zone texte et du scrollbar
+ self.zone_texte = Text(self.frame_texte,font=fonte)
+ self.zone_texte.bind("<Key-Prior>", self.page_up)
+ self.zone_texte.bind("<Key-Next>", self.page_down)
+ self.zone_texte.bind("<Key-Up>", self.unit_up)
+ self.zone_texte.bind("<Key-Down>", self.unit_down)
+ self.zone_texte.bind("<Double-Button-3>", self.OnButton3doubleclick)
+ self.scroll_v = Scrollbar (self.frame_texte,command = self.zone_texte.yview)
+ self.scroll_v.pack(side='right',fill ='y')
+ self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10)
+ self.zone_texte.configure(yscrollcommand=self.scroll_v.set)
+ # affichage du texte
+ self.affiche_texte(self.texte)
+ self.zone_texte.config(state="disabled")
+
+ def OnButton3doubleclick(self,event):
+ try:
+ selection=self.zone_texte.selection_get()
+ except:
+ showerror("Pas de donnée sélectionnée",
+ "Selectionner un parametre")
+ l_param = ""
+ for param in selection.splitlines():
+ nomparam=param[0:param.find("=")-1]
+ if nomparam != '' :
+ l_param=l_param+nomparam+','
+ self.parent.entry.delete(0,Tkinter.END)
+ self.parent.entry.insert(0,l_param[0:-1])
+ self.parent.valid_valeur()
+ self.quit()
+
class Formulaire:
"""
Cette classe permet de créer une boîte Dialog dans laquelle