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
33 __version__="$Name: $"
34 __Id__="$Id: componuplet.py,v 1.7 2005/08/09 09:54:04 eficas 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'))
52 self.nb.setnaturalsize()
54 def makeValeurPage(self,page):
55 label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT)
57 for obj in self.node.item.object.mc_liste:
58 frame_valeur=Tkinter.Frame(page)
59 frame_valeur.pack(side=Tkinter.LEFT)
60 if hasattr(obj,'definition'):
61 objet_mc=obj.definition
65 if type(valeur) == types.InstanceType :
67 aide=self.gen_aide(obj)
68 if objet_mc.into != None :
69 l_choix=list(objet_mc.into)
70 #obj.set_valeur(l_choix[0],evaluation='non')
71 obj.set_valeur(l_choix[0])
72 option=Pmw.OptionMenu (frame_valeur,
74 menubutton_width = 10,
75 command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj),
77 option.pack(side=Tkinter.LEFT,padx=1)
79 entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10)
80 entry.pack(side=Tkinter.LEFT,padx=1)
81 entry.bind("<Return>",
82 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
83 entry.bind("<KP_Enter>",
84 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
85 if i==0:entry.focus_set()
86 #aide = Tkinter.Label(frame_valeur, text = aide)
87 #aide.place(relx=0.5,rely=0.55,anchor='n')
89 entry.delete(0,Tkinter.END)
90 entry.insert(0,obj.getval())
93 def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
95 Enregistre val comme valeur de self.node.item.object SANS faire de
98 #obj.set_valeur(val,evaluation='non')
100 self.parent.appli.affiche_infos(mess)
101 #self.node.parent.verif()
104 def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
106 Enregistre val comme valeur de self.node.item.object avec
109 valeur=e.widget.get()
110 e.widget.delete(0,Tkinter.END)
112 if anc_val == None:anc_val=''
113 test=obj.set_valeur(valeur)
116 self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
117 e.widget.insert(0,obj.getval())
119 #obj.set_valeur(anc_val,evaluation='non')
120 obj.set_valeur(anc_val)
121 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
122 e.widget.insert(0,anc_val)
124 print "impossible d'\351valuer : %s " %valeur
126 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
127 e.widget.delete(0,Tkinter.END)
128 e.widget.insert(0,anc_val)
130 #self.node.parent.verif()
133 def gen_aide(self,obj):
137 class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
140 def IsExpandable(self):
147 return self.object.isvalid()
149 def GetIconName(self):
150 if self.object.isvalid():
151 return "ast-green-los"
152 elif self.object.isoblig():
157 def GetSubList(self):
158 if not Expandable:return []
160 for obj in self.object.mc_liste:
161 item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)
165 def additem(self,name,pos):
168 def suppitem(self,item) :
172 treeitem=NUPLETTreeItem