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 widgets import showerror
27 from Editeur import Objecttreeitem
31 Fonte_Commentaire = fontes.standard_italique
33 class COMMANDE_COMMPanel(panels.OngletPanel):
35 Classe servant à définir le panel associé à une commande commentarisée
39 Initialise les frame des panneaux contextuels relatifs à une commande commentarisée
42 panneau.pack(expand=1,fill='both')
44 self.makeCOMMPage(panneau)
47 def makeCOMMPage(self,page):
49 Crée la page qui permet d'afficher et d'éditer le texte de la commande commentarisée
51 self.frame_valeur = Frame(page)
52 self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
53 self.widget_text = Pmw.ScrolledText(self.frame_valeur,
56 label_text = 'Texte de la commande\n ')
57 self.widget_text.pack(side='top',expand=1,fill='both')
58 self.widget_text.configure(hscrollmode='dynamic',
59 vscrollmode='dynamic')
62 def make_buttons(self):
64 Crée les boutons du panneau
66 #self.bouton_sup.place_forget()
67 #self.bouton_doc.place_forget()
68 #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
69 #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
70 #self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment,width=14)
72 #self.bouton_val.place(relx=0.1,rely=0.5,relheight=1,relwidth=0.20,anchor='center')
73 #self.bouton_ann.place(relx=0.30,rely=0.5,relheight=1,relwidth=0.20,anchor='center')
74 #self.bouton_sup.place(relx=0.50,rely=0.5,relheight=1,relwidth=0.20,anchor='center')
75 #self.bouton_unc.place(relx=0.75,rely=0.5,relheight=1,relwidth=0.25,anchor='center')
77 self.bouton_sup.pack_forget()
78 self.bouton_doc.pack_forget()
79 self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur)
80 self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur)
81 self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment)
82 self.bouton_val.pack(side='left',padx=5, pady=5)
83 self.bouton_ann.pack(side='left',padx=5, pady=5)
84 self.bouton_sup.pack(side='left',padx=5, pady=5)
85 self.bouton_unc.pack(side='right',padx=5, pady=5)
87 def change_valeur(self):
89 Stocke la nouvelle valeur donnée par l'utilisateur comme valeur de la commande commentarisée
91 if self.parent.modified == 'n' : self.parent.init_modif()
92 new_valeur = self.widget_text.get()
93 self.node.item.set_valeur(new_valeur)
96 def display_valeur(self):
98 Affiche dans self.widget_text la valeur de la commande commentarisée
99 (annule d'éventuelles modifications faite par l'utilisateur)
101 self.widget_text.settext(self.node.item.get_valeur())
105 Réalise la décommentarisation de self
108 pos=self.node.parent.children.index(self.node)
109 commande,nom = self.node.item.uncomment()
110 self.node.parent.children[pos].select()
112 showerror("Erreur !",str(e))
114 #self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande,nom)
116 class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem):
117 panel = COMMANDE_COMMPanel
120 self.setfunction = self.set_valeur
122 def GetIconName(self):
124 Retourne le nom de l'icône associée au noeud qui porte self,
125 dépendant de la validité de l'objet
126 NB : une commande commentarisée est toujours valide ...
129 return "ast-green-percent"
131 return "ast-red-percent"
133 def GetLabelText(self):
134 """ Retourne 3 valeurs :
135 - le texte à afficher dans le noeud représentant l'item
136 - la fonte dans laquelle afficher ce texte
137 - la couleur du texte
139 return 'commande commentarisée',Fonte_Commentaire,None
141 def get_valeur(self):
143 Retourne la valeur de la commande commentarisée cad son texte
145 return self.object.get_valeur() or ''
148 texte = self.object.valeur
149 texte = string.split(texte,'\n')[0]
155 def set_valeur(self,valeur):
157 Afefcte valeur à l'objet commande commentarisée
159 self.object.set_valeur(valeur)
161 def GetSubList(self):
163 Retourne la liste des fils de self
169 Demande à l'objet commande commentarisée de se décommentariser.
170 Si l'opération s'effectue correctement, retourne l'objet commande
171 et éventuellement le nom de la sd produite, sinon lève une exception
174 commande,nom = self.object.uncomment()
176 traceback.print_exc()
181 treeitem =COMMANDE_COMMTreeItem
182 objet = Accas.COMMANDE_COMM