import images
from widgets import ListeChoix
from widgets import FenetreDeSelection
+from widgets import askopenfilename
+from widgets import showinfo
from Noyau.N_CR import justify_text
from utils import substract_list
#decoupe la liste des valeurs en n ( les x puis les y)
nb=self.nb_valeurs
l_valeurs=[]
+ if (len(liste)%nb != 0):
+ message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
+ showinfo("Problème",message)
for i in range(len(liste)/nb) :
if (nb==2):
t=(liste[i*nb], liste[i*nb+1])
except :
self.entry.delete(0,END)
+# Surcharge de select in file pour prendre en compte la saisie de tuple
+ def select_in_file(self):
+ """ Permet d'ouvrir un fichier choisi par l'utilisateur. """
+ nom_fichier = askopenfilename(title="Choix fichier :")
+
+ if not nom_fichier:
+ return
+
+ try:
+ f = open(nom_fichier, "rb")
+ selection_texte = f.read()
+ f.close()
+ self.add_double_valeur_plusieurs_base = FenetreDeSelection(self,
+ self.node.item,
+ self.parent.appli,
+ titre="Sélection de valeurs",
+ texte=selection_texte,
+ cardinal = self.nb_valeurs)
+ except:
+ traceback.print_exc()
+ showinfo("Erreur de fichier","impossible d'ouvir le fichier "+nom_fichier)
+
valeurentree = self.get_valeur()
valeur,validite=self.node.item.eval_valeur(valeurentree)
if not validite :
- commentaire = "impossible d'évaluer : %s " %`valeurentree`
- self.parent.appli.affiche_infos(commentaire)
- return
+ commentaire = "impossible d'évaluer : %s " %`valeurentree`
+ self.parent.appli.affiche_infos(commentaire)
+ return
self.add_valeur_sans_into(valeur)
def get_bulle_aide(self):
""" Classe dérivée de Fenêtre permettant la récupération d'une zone de texte sélectionnée.
Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé.
"""
- def __init__(self,panel,item,appli,titre="",texte=""):
+ def __init__(self,panel,item,appli,titre="",texte="",cardinal=1):
Fenetre.__init__(self,appli,titre=titre,texte=texte)
+ self.cardinal=cardinal
self.fenetre.configure(width = 320,height=400)
centerwindow(self.fenetre)
self.panel = panel
if self.test_probleme(message,"Vérifiez le domaine des valeurs") == 0:
return
# Ajoute les valeurs dans la liste de valeurs du mot-clé
+ if self.cardinal != 1 :
+ nb=self.cardinal
+ l_valeurs=[]
+ # a ameliorer
+ if (len(liste_valeurs)%nb != 0):
+ message="La cardinalité n'est pas correcte"
+ self.test_probleme(message,"On attend des tuples")
+ return
+ for i in range(len(liste_valeurs)/nb) :
+ if (nb==2):
+ t=(liste_valeurs[i*nb], liste_valeurs[i*nb+1])
+ elif (nb ==3):
+ t=(liste_valeurs[i*nb], liste_valeurs[i*nb+1], liste_valeurs[i*nb+2])
+ else :
+ print "probleme : prevenir la maintenance Eficas"
+ return
+ l_valeurs.append(t)
+ liste_valeurs=l_valeurs
self.ajouter_valeurs(liste_valeurs)
self.appli.affiche_infos("Liste de valeurs acceptée")