]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN report du patch V1_6p2
authoreficas <>
Fri, 10 Sep 2004 16:15:18 +0000 (16:15 +0000)
committereficas <>
Fri, 10 Sep 2004 16:15:18 +0000 (16:15 +0000)
Editeur/fonctionpanel.py
Editeur/plusieursassdpanel.py
Editeur/widgets.py

index 07a6b60e440e16eb19f843452dc5b4fcb664e4d9..3a9fdd2a13061c948f41b6093d4cc15b575caf3c 100644 (file)
@@ -32,6 +32,8 @@ import panels
 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
@@ -138,6 +140,9 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel):
       #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])
@@ -259,3 +264,25 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel):
       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)
+
index 4032fa60b39ee4030af34bc741b67707baee130a..e4695827e55fa236c8be5d2799e72339de40e050 100644 (file)
@@ -111,9 +111,9 @@ class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel):
         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):
index 17c5faf943e0efb1990868787739247ca2d48cef..003d759cd00243307f04b9d36e735e52bc8d803c 100644 (file)
@@ -185,8 +185,9 @@ class FenetreDeSelection(Fenetre):
     """ 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
@@ -248,6 +249,24 @@ class FenetreDeSelection(Fenetre):
         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")