1 # -*- coding: utf-8 -*-
2 # CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20 # ======================================================================
25 from Editeur import Objecttreeitem
29 Fonte_Commentaire = fontes.standard_italique
31 class COMMPanel(panels.OngletPanel):
35 Initialise les frame des panneaux contextuels relatifs à un COMMENTAIRE
37 nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
38 nb.pack(fill = 'both', expand = 1)
40 nb.add('TexteComm', tab_text='Texte Commentaire')
41 nb.add('Commande', tab_text='Nouvelle Commande')
42 nb.add('Commentaire',tab_text='Paramètre/Commentaire')
43 self.makeCOMMPage(nb.page("TexteComm"))
44 self.makeCommandePage(nb.page("Commande"))
45 self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
46 nb.tab('TexteComm').focus_set()
51 def makeCOMMPage(self,page):
53 Crée la page qui permet d'afficher et d'éditer le texte du commentaire
55 self.frame_valeur = Frame(page)
56 self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
57 self.widget_text = Pmw.ScrolledText(self.frame_valeur,
60 label_text = 'Texte du commentaire\n ')
61 self.widget_text.pack(side='top',expand=1,fill='both')
62 self.widget_text.configure(hscrollmode='dynamic',
63 vscrollmode='dynamic')
64 self.widget_text.component('text').configure(background = 'white')
68 def make_buttons(self):
70 Crée les boutons du panneau
72 #self.bouton_sup.place_forget()
73 #self.bouton_doc.place_forget()
74 #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
75 #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
77 #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center')
78 #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center')
79 #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center')
81 self.bouton_sup.pack_forget()
82 self.bouton_doc.pack_forget()
83 self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur)
84 self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur)
86 self.bouton_val.pack(side='left',padx=5, pady=5)
87 self.bouton_ann.pack(side='left',padx=5, pady=5)
88 self.bouton_sup.pack(side='right',padx=5, pady=5)
90 def change_valeur(self):
92 Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du commentaire
94 if self.parent.modified == 'n' : self.parent.init_modif()
95 new_valeur = self.widget_text.get()
96 self.node.item.set_valeur(new_valeur)
99 def display_valeur(self):
101 Affiche dans self.widget_text la valeur de l'objet commentaire
102 (annule d'éventuelles modifications faite par l'utilisateur)
104 t=self.node.item.get_valeur()
106 self.widget_text.settext(unicode(t))
108 # Si probleme avec unicode
109 self.widget_text.settext(t)
111 class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
115 self.setfunction = self.set_valeur
117 def GetIconName(self):
119 Retourne le nom de l'icône associée au noeud qui porte self,
120 dépendant de la validité de l'objet
121 NB : un commentaire est toujours valide ...
123 return "ast-white-percent"
125 def GetLabelText(self):
126 """ Retourne 3 valeurs :
127 - le texte à afficher dans le noeud représentant l'item
128 - la fonte dans laquelle afficher ce texte
129 - la couleur du texte
131 return 'commentaire',Fonte_Commentaire,None
133 def get_valeur(self):
135 Retourne la valeur de l'objet Commentaire cad son texte
137 return self.object.get_valeur() or ''
140 texte = self.object.valeur
141 texte = string.split(texte,'\n')[0]
147 def set_valeur(self,valeur):
149 Afefcte valeur à l'objet COMMENTAIRE
151 self.object.set_valeur(valeur)
153 def GetSubList(self):
155 Retourne la liste des fils de self
160 def get_objet_commentarise(self):
162 La méthode get_objet_commentarise() de la classe compocomm.COMMTreeItem
163 surcharge la méthode get_objet_commentarise de la classe Objecttreeitem.ObjectTreeItem
164 elle a pour but d'empecher l'utilisateur final de commentariser un commentaire.
166 raise Exception( 'Citoyen : tu peux "commentariser" une commande MAIS PAS UN COMMENTAIRE' )
169 treeitem =COMMTreeItem
170 objet = Extensions.commentaire.COMMENTAIRE