1 #@ MODIF compoparam Editeur DATE 02/07/2001 AUTEUR D6BHHJP J.P.LEFEBVRE
2 # CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
5 # SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
6 # REDISTRIBUTION OF THIS FILE.
7 # ======================================================================
9 Ce module contient les classes permettant de définir les objets graphiques
10 représentant un objet de type PARAMETRE, cad le panneau et l'item de l'arbre
14 # import modules Python
19 # import modules EFICAS
25 Fonte_PARAMETRE = fontes.standard_italique
26 Fonte_TITRE = fontes.standard_gras_souligne
29 class PARAMPanel(panels.OngletPanel):
31 Classe servant à construire le panneau associé à un paramètre.
32 C'est au moyen de ce panneau que l'utilisateur peut accéder
33 aux nom et valeur du paramètre en vue éventuellement de les
39 Initialise les frame des panneaux contextuels relatifs à un PARAMETRE
41 nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
42 nb.pack(fill = 'both', expand = 1)
44 nb.add('Parametre', tab_text='Valeur Paramètre')
45 nb.add('Commande', tab_text='Nouvelle Commande')
46 nb.add('Commentaire',tab_text='Paramètre/Commentaire')
47 self.makeParametrePage(nb.page("Parametre"))
48 self.makeCommandePage(nb.page("Commande"))
49 self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
50 nb.tab('Parametre').focus_set()
54 def makeParametrePage(self,page):
56 Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE
58 self.frame_valeur = Frame(page)
59 self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
60 # affichage du titre du panneau
61 self.titre = StringVar()
62 self.titre.set("PARAMETRE "+self.node.item.get_nom())
63 Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n')
64 # création des labels et entries associés aux nom et valeur du paramètre
65 Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3)
66 self.entry_nom = Entry(self.frame_valeur)
67 Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5)
68 self.entry_val = Entry(self.frame_valeur)
69 # binding sur entry_nom
70 self.entry_nom.bind("<Return>",lambda e,s=self : s.entry_val.focus())
71 self.entry_val.bind("<Return>",lambda e,s=self : s.change_valeur())
72 # affichage des entries
73 self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3)
74 self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5)
75 # affichage d'une phrase d'aide
77 Un retour de chariot dans une zone de saisie vous permet de vérifier si
78 la valeur que vous avez entrée est valide.
79 Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles
80 valeurs seront effectivement prises en compte
82 Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.65,anchor='n')
83 # affichage des nom et valeur du paramètre
85 self.entry_nom.focus()
87 def make_buttons(self):
89 Crée les boutons du panneau
91 self.bouton_sup.place_forget()
92 self.bouton_doc.place_forget()
93 self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
94 self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
96 self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center')
97 self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center')
98 self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center')
100 def change_valeur(self):
102 Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du PARAMETRE
104 if self.parent.modified == 'n' : self.parent.init_modif()
105 new_nom = self.entry_nom.get()
106 new_val = self.entry_val.get()
107 self.node.item.set_nom(new_nom)
108 self.node.item.set_valeur(new_val)
110 self.display_valeur()
112 def display_valeur(self):
114 Affiche dans self.widget_text la valeur de l'objet PARAMETRE
115 (annule d'éventuelles modifications faite par l'utilisateur)
117 self.entry_nom.delete(0,END)
118 self.entry_val.delete(0,END)
119 self.titre.set('PARAMETRE '+self.node.item.get_nom())
120 self.entry_nom.insert(END,self.node.item.get_nom())
121 self.entry_val.insert(END,self.node.item.get_valeur())
123 class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
125 Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS
126 qui représente le PARAMETRE
131 self.setfunction = self.set_valeur
133 # ---------------------------------------------------------------------------
134 # API du PARAMETRE pour l'arbre
135 # ---------------------------------------------------------------------------
137 def GetIconName(self):
139 Retourne le nom de l'icône associée au noeud qui porte self,
140 dépendant de la validité de l'objet
141 NB : un PARAMETRE est toujours valide ...
145 return "ast-green-square"
147 return "ast-red-square"
149 return "ast-white-square"
151 def GetLabelText(self):
152 """ Retourne 3 valeurs :
153 - le texte à afficher dans le noeud représentant l'item
154 - la fonte dans laquelle afficher ce texte
155 - la couleur du texte
157 return 'Paramètre',Fonte_PARAMETRE,None
161 Retourne le texte à afficher après le nom de la commande (ici après 'paramètre')
162 Ce texte est tronqué à 25 caractères
164 texte = repr(self.object)
165 texte = string.split(texte,'\n')[0]
169 return texte[0:24]+'...'
171 def GetSubList(self):
173 Retourne la liste des fils de self
177 # ---------------------------------------------------------------------------
178 # Méthodes permettant la modification et la lecture des attributs
179 # du paramètre = API graphique du PARAMETRE pour Panel et EFICAS
180 # ---------------------------------------------------------------------------
182 def get_valeur(self):
184 Retourne la valeur de l'objet PARAMETRE cad son texte
186 return self.object.valeur or ''
190 Retourne le nom du paramètre
192 return self.object.nom
194 def set_valeur(self,new_valeur):
196 Affecte valeur à l'objet PARAMETRE
198 self.object.set_valeur(new_valeur)
200 def set_nom(self,new_nom):
204 self.object.set_attribut('nom',new_nom)
208 Retourne le fr associé au paramètre, cad la bulle d'aide pour EFICAS
210 return "Définition d'un paramètre"
212 import Extensions.parametre
213 treeitem =PARAMTreeItem
214 objet = Extensions.parametre.PARAMETRE