Salome HOME
Version initiale de EFICAS 1.2
[tools/eficas.git] / Editeur / compocomm.py
1 #@ MODIF compocomm 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 # ======================================================================
8 from Tkinter import *
9 import Pmw
10 import string
11
12 import Objecttreeitem
13 import panels
14 import fontes
15
16 Fonte_Commentaire = fontes.standard_italique
17
18 class COMMPanel(panels.OngletPanel):
19   
20   def init(self):
21     """
22     Initialise les frame des panneaux contextuels relatifs à un COMMENTAIRE
23     """
24     nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
25     nb.pack(fill = 'both', expand = 1)
26     self.nb=nb
27     nb.add('TexteComm', tab_text='Texte Commentaire')
28     nb.add('Commande', tab_text='Nouvelle Commande')
29     nb.add('Commentaire',tab_text='Paramètre/Commentaire')
30     self.makeCOMMPage(nb.page("TexteComm"))
31     self.makeCommandePage(nb.page("Commande"))
32     self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
33     nb.tab('TexteComm').focus_set()
34     nb.setnaturalsize()
35     
36   def makeCOMMPage(self,page):
37     """
38     Crée la page qui permet d'afficher et d'éditer le texte du commentaire
39     """
40     self.frame_valeur = Frame(page)
41     self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw')
42     self.widget_text = Pmw.ScrolledText(self.frame_valeur,
43                                         borderframe=1,
44                                         labelpos='n',
45                                         label_text = 'Texte du commentaire\n ')
46     self.widget_text.pack(side='top',expand=1,fill='both')
47     self.widget_text.configure(hscrollmode='dynamic',
48                                vscrollmode='dynamic')\r
49     self.make_buttons()
50     self.display_valeur()
51
52   def make_buttons(self):
53     """
54     Crée les boutons du panneau
55     """
56     self.bouton_sup.place_forget()
57     self.bouton_doc.place_forget()
58     self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14)
59     self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14)
60
61     self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center')
62     self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center')
63     self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center')
64
65
66   def change_valeur(self):
67     """
68     Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du commentaire
69     """
70     if self.parent.modified == 'n' : self.parent.init_modif()
71     new_valeur = self.widget_text.get()
72     self.node.item.set_valeur(new_valeur)
73     self.node.update()
74
75   def display_valeur(self):
76     """
77     Affiche dans self.widget_text la valeur de l'objet commentaire
78     (annule d'éventuelles modifications faite par l'utilisateur)
79     """
80     self.widget_text.settext(self.node.item.get_valeur())
81     
82 class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
83     panel = COMMPanel
84
85     def init(self):
86       self.setfunction = self.set_valeur
87
88     def GetIconName(self):
89       """
90       Retourne le nom de l'icône associée au noeud qui porte self,
91       dépendant de la validité de l'objet
92       NB : un commentaire est toujours valide ...
93       """
94       return "ast-white-percent"
95
96     def GetLabelText(self):
97         """ Retourne 3 valeurs :
98         - le texte à afficher dans le noeud représentant l'item
99         - la fonte dans laquelle afficher ce texte
100         - la couleur du texte
101         """
102         return 'commentaire',Fonte_Commentaire,None
103
104     def get_valeur(self):
105       """
106       Retourne la valeur de l'objet Commentaire cad son texte
107       """
108       return self.object.get_valeur() or ''
109     
110     def GetText(self):
111         texte = self.object.valeur
112         texte = string.split(texte,'\n')[0]
113         if len(texte) < 25 :
114             return texte
115         else :
116             return texte[0:24]
117
118     def set_valeur(self,valeur):
119       """
120       Afefcte valeur à l'objet COMMENTAIRE
121       """
122       self.object.set_valeur(valeur)
123       
124     def GetSubList(self):
125       """
126       Retourne la liste des fils de self
127       """
128       return []
129   
130 import Extensions
131 treeitem =COMMTreeItem
132 objet = Extensions.commentaire.COMMENTAIRE