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.5 2004/09/10 15:51:49 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 if i==0:entry.focus_set()
84 #aide = Tkinter.Label(frame_valeur, text = aide)
85 #aide.place(relx=0.5,rely=0.55,anchor='n')
87 entry.delete(0,Tkinter.END)
88 entry.insert(0,obj.getval())
91 def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
93 Enregistre val comme valeur de self.node.item.object SANS faire de
96 #obj.set_valeur(val,evaluation='non')
98 self.parent.appli.affiche_infos(mess)
99 #self.node.parent.verif()
102 def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
104 Enregistre val comme valeur de self.node.item.object avec
107 valeur=e.widget.get()
108 e.widget.delete(0,Tkinter.END)
110 if anc_val == None:anc_val=''
111 test=obj.set_valeur(valeur)
114 self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
115 e.widget.insert(0,obj.getval())
117 #obj.set_valeur(anc_val,evaluation='non')
118 obj.set_valeur(anc_val)
119 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
120 e.widget.insert(0,anc_val)
122 print "impossible d'\351valuer : %s " %valeur
124 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
125 e.widget.delete(0,Tkinter.END)
126 e.widget.insert(0,anc_val)
128 #self.node.parent.verif()
131 def gen_aide(self,obj):
135 class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
138 def IsExpandable(self):
145 return self.object.isvalid()
147 def GetIconName(self):
148 if self.object.isvalid():
149 return "ast-green-los"
150 elif self.object.isoblig():
155 def GetSubList(self):
156 if not Expandable:return []
158 for obj in self.object.mc_liste:
159 item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)
163 def additem(self,name,pos):
166 def suppitem(self,item) :
169 def verif_condition_bloc(self):
171 return self.object.verif_condition_bloc()
174 treeitem=NUPLETTreeItem