Salome HOME
PN : pour les clefs documentaires
[tools/eficas.git] / Editeur / uniquepanel.py
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.
8 #
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.
13 #
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.
17 #
18 #
19 # ======================================================================
20 # Modules Python
21 import string,types,os
22 from Tkinter import *
23 import Pmw
24 from copy import copy,deepcopy
25 import traceback
26
27 # Modules Eficas
28 import Objecttreeitem
29 import prefs
30 import panels
31 import images
32 from widgets import ListeChoix
33 from widgets import FenetreDeSelection
34
35 from Noyau.N_CR import justify_text
36 from utils import substract_list
37
38 # Import des panels
39 from newsimppanel import newSIMPPanel
40
41     
42 class UNIQUE_Panel(newSIMPPanel):
43   """
44   Classe virtuelle servant de classe mère à toutes celles définissant un panneau
45   permettant l'affichage et la saisie d'une valeur unique pour le mot-clé simple
46   """
47
48   def erase_valeur(self):
49       """
50       Efface l'entry de saisie
51       """
52       self.entry.delete(0,END)
53
54   def get_valeur(self):
55       """
56       Retourne la valeur donnée par l'utilisateur
57       """
58       return self.entry.get()
59     
60   def valid_valeur(self):
61       """
62       Teste si la valeur fournie par l'utilisateur est une valeur permise :
63       - si oui, l'enregistre
64       - si non, restaure l'ancienne valeur
65       """
66       if self.parent.modified == 'n' : self.parent.init_modif()
67       anc_val = self.node.item.get_valeur()
68       valeurentree = self.get_valeur()
69       self.erase_valeur()
70       valeur,validite=self.node.item.eval_valeur(valeurentree)
71       if not validite :
72              commentaire = "impossible d'évaluer : %s " %`valeurentree`
73              self.parent.appli.affiche_infos(commentaire)
74              return
75    
76       test = self.node.item.set_valeur(valeur)
77        
78       if not test :
79           mess = "impossible d'évaluer : %s " %`valeur`
80           self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée : "+mess)
81       elif self.node.item.isvalid() :
82           self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
83           if self.node.item.get_position()=='global':
84               self.node.etape.verif_all()
85           elif self.node.item.get_position()=='global_jdc':
86               self.node.racine.verif_all()
87           else :
88               self.node.parent.verif()
89           self.node.update()
90           self.node.parent.select()
91       else :
92           cr = self.node.item.get_cr()
93           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
94           self.reset_old_valeur(anc_val,mess=mess)
95