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 # ======================================================================
26 from copy import copy,deepcopy
29 from Editeur import Objecttreeitem
33 __version__="$Name: V1_14 $"
34 __Id__="$Id: componuplet.py,v 1.1.4.2.4.1 2008-10-10 13:47:11 pnoyret Exp $"
38 myrepr.maxstring = 100
41 # Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre
42 # Si Expandable vaut 0 les éléments n'apparaissent pas
45 class NUPLETPanel(panels.OngletPanel):
47 """ Initialise les frame des panneaux contextuels relatifs \340 un NUPLET """
48 self.nb=Pmw.NoteBook(self,raisecommand=self.raisecmd)
49 self.nb.pack(fill = 'both', expand = 1)
50 self.nb.add("Valeurs",tab_text="Saisir valeurs")
51 self.makeValeurPage(self.nb.page('Valeurs'))
54 self.nb.setnaturalsize()
56 def makeValeurPage(self,page):
57 label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT)
59 for obj in self.node.item.object.mc_liste:
60 frame_valeur=Tkinter.Frame(page)
61 frame_valeur.pack(side=Tkinter.LEFT)
62 if hasattr(obj,'definition'):
63 objet_mc=obj.definition
67 if type(valeur) == types.InstanceType :
69 aide=self.gen_aide(obj)
70 if objet_mc.into != None :
71 l_choix=list(objet_mc.into)
72 #obj.set_valeur(l_choix[0],evaluation='non')
73 obj.set_valeur(l_choix[0])
74 option=Pmw.OptionMenu (frame_valeur,
76 menubutton_width = 10,
77 command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj),
79 option.pack(side=Tkinter.LEFT,padx=1)
81 entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10)
82 entry.pack(side=Tkinter.LEFT,padx=1)
83 entry.bind("<Return>",
84 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
85 entry.bind("<KP_Enter>",
86 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
87 if i==0:entry.focus_set()
88 #aide = Tkinter.Label(frame_valeur, text = aide)
89 #aide.place(relx=0.5,rely=0.55,anchor='n')
91 entry.delete(0,Tkinter.END)
92 entry.insert(0,obj.getval())
95 def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
97 Enregistre val comme valeur de self.node.item.object SANS faire de
100 #obj.set_valeur(val,evaluation='non')
102 self.parent.appli.affiche_infos(mess)
103 #self.node.parent.verif()
106 def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
108 Enregistre val comme valeur de self.node.item.object avec
111 valeur=e.widget.get()
112 e.widget.delete(0,Tkinter.END)
114 if anc_val == None:anc_val=''
115 test=obj.set_valeur(valeur)
118 self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
119 e.widget.insert(0,obj.getval())
121 #obj.set_valeur(anc_val,evaluation='non')
122 obj.set_valeur(anc_val)
123 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
124 e.widget.insert(0,anc_val)
126 print "impossible d'\351valuer : %s " %valeur
128 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
129 e.widget.delete(0,Tkinter.END)
130 e.widget.insert(0,anc_val)
132 #self.node.parent.verif()
135 def gen_aide(self,obj):
139 class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
142 def IsExpandable(self):
149 return self.object.isvalid()
151 def GetIconName(self):
152 if self.object.isvalid():
153 return "ast-green-los"
154 elif self.object.isoblig():
159 def GetSubList(self):
160 if not Expandable:return []
162 for obj in self.object.mc_liste:
163 item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)
167 def additem(self,name,pos):
170 def suppitem(self,item) :
174 treeitem=NUPLETTreeItem