1 # CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
21 import string,types,os
24 from copy import copy,deepcopy
32 from widgets import ListeChoix
33 from widgets import FenetreDeSelection
35 from Noyau.N_CR import justify_text
36 from utils import substract_list
39 from newsimppanel import newSIMPPanel
42 class PLUSIEURS_Panel(newSIMPPanel):
44 Classe virtuelle servant de classe mère à toutes celles définissant
45 un panneau pour un mot-clé simple qui attend une liste de valeurs
47 def accepte_modifs_valeur(self,min,max,liste=None):
49 Méthode qui récupère la liste des valeurs donnée par l'utilisateur
50 et l'affecte au mot-clé courant.
51 le parametre None n'est pas rempli sauf par l appel a partir de fonctionpanel
54 l1_valeurs = self.Liste_valeurs.get_liste()
58 for val in l1_valeurs :
59 if val != '' and val != None :
62 longueur = len(l_valeurs)
63 if longueur < min or longueur > max :
64 self.parent.appli.affiche_infos("Valeur refusée : nombre d'éléments incorrect dans la liste")
67 valeur = tuple(l_valeurs)
73 self.parent.appli.affiche_infos("Valeur acceptée")
74 self.record_valeur(valeur)
75 # fermeture de la fenêtre de sélection
76 if self.ajout_valeurs:
77 self.ajout_valeurs.quit()
79 def annule_modifs_valeur(self):
81 RAZ de la liste des valeurs (annule toutes les valeurs saisies par l'utilisateur)
84 # fermeture de la fenêtre de sélection
85 if self.ajout_valeurs:
86 self.ajout_valeurs.quit()
88 def add_valeur_sans_into(self,name=None,encorevalide=1):
90 Lit ce que l'utilisateur a saisi dans self.entry et cherche à
92 - si la valeur est acceptable, elle est ajoutée dans la liste des valeurs
93 - sinon elle est refusée
94 encorevalide vaut 1 si le validateur trouve l item et la liste correctes
95 0 si le validateur trouve la valeur de l item incorrecte
96 -1 si le validateur trouve la liste incorrecte
99 commentaire="Valeur incorrecte : ajout à la liste refusé"
102 # Lecture de la zone de saisie et evaluation si nécessaire
106 valeurentree = self.get_valeur()
107 if valeurentree == '': valeur=None
108 valeurentree,testvalide=self.node.item.eval_valeur(valeur)
109 if (not testvalide) :
110 commentaire = "impossible d'évaluer : %s " %`valeurentree`
112 # Pas de traitement des valeurs nulles ( a priori clic involontaire
113 if (valeur == None or valeur =="") :
114 commentaire = "Pas de saisie des valeurs nulles"
118 testtype = self.node.item.object.verif_type(valeur)
120 commentaire ="Type de la valeur incorrecte"
123 if (encorevalide ==0) :
124 commentaire=self.node.item.info_erreur_item()
125 if (encorevalide == -1) :
126 commentaire=self.node.item.info_erreur_liste()
127 # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
128 min,max = self.node.item.GetMinMax()
129 if len(self.Liste_valeurs.get_liste()) >= max :
130 commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
132 if testvalide and (encorevalide == 1):
133 min,max = self.node.item.GetMinMax()
136 liste_valeurs = self.Liste_valeurs.get_liste()
137 if len(liste_valeurs) >= max :
138 commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
140 liste_valeurs.append(valeur)
141 self.Liste_valeurs.put_liste(liste_valeurs)
143 commentaire="Nouvelle valeur acceptée"
145 commentaire ="Type de la valeur incorrecte"
148 self.parent.appli.affiche_infos(commentaire)
150 def sup_valeur_sans_into(self,name=None):
152 Méthode qui sert à retirer de la liste des valeurs la valeur sélectionnée
155 self.Liste_valeurs.remove_selected_item()
156 self.display_valeur(self.selected_valeur)
157 self.selected_valeur = None
159 # la valeur sélectionnée n'est pas dans la liste
162 def display_valeur(self,val=None):
164 Affiche la valeur passée en argument dans l'entry de saisie.
165 Par défaut affiche la valeur du mot-clé simple
168 #valeur = self.node.item.getval()
169 valeur = self.node.item.object.getval()
172 self.entry.delete(0,END)
173 if not valeur : return
174 self.entry.insert(0,str(valeur))