1 # CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
25 from copy import copy,deepcopy
32 __version__="$Name: $"
33 __Id__="$Id: componuplet.py,v 1.3.2.1 2003/10/09 14:57:58 eficas Exp $"
37 myrepr.maxstring = 100
40 # Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre
41 # Si Expandable vaut 0 les éléments n'apparaissent pas
44 class NUPLETPanel(panels.OngletPanel):
46 """ Initialise les frame des panneaux contextuels relatifs \340 un NUPLET """
47 self.nb=Pmw.NoteBook(self,raisecommand=self.raisecmd)
48 self.nb.pack(fill = 'both', expand = 1)
49 self.nb.add("Valeurs",tab_text="Saisir valeurs")
50 self.makeValeurPage(self.nb.page('Valeurs'))
51 self.nb.setnaturalsize()
53 def makeValeurPage(self,page):
54 label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT)
56 for obj in self.node.item.object.mc_liste:
57 frame_valeur=Tkinter.Frame(page)
58 frame_valeur.pack(side=Tkinter.LEFT)
59 if hasattr(obj,'definition'):
60 objet_mc=obj.definition
64 if type(valeur) == types.InstanceType :
66 aide=self.gen_aide(obj)
67 if objet_mc.into != None :
68 l_choix=list(objet_mc.into)
69 #obj.set_valeur(l_choix[0],evaluation='non')
70 obj.set_valeur(l_choix[0])
71 option=Pmw.OptionMenu (frame_valeur,
73 menubutton_width = 10,
74 command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj),
76 option.pack(side=Tkinter.LEFT,padx=1)
78 entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10)
79 entry.pack(side=Tkinter.LEFT,padx=1)
80 entry.bind("<Return>",
81 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
82 if i==0:entry.focus_set()
83 #aide = Tkinter.Label(frame_valeur, text = aide)
84 #aide.place(relx=0.5,rely=0.55,anchor='n')
86 entry.delete(0,Tkinter.END)
87 entry.insert(0,obj.getval())
90 def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
92 Enregistre val comme valeur de self.node.item.object SANS faire de
95 #obj.set_valeur(val,evaluation='non')
97 self.parent.appli.affiche_infos(mess)
98 self.node.parent.verif()
101 def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
103 Enregistre val comme valeur de self.node.item.object avec
106 valeur=e.widget.get()
107 e.widget.delete(0,Tkinter.END)
109 if anc_val == None:anc_val=''
110 test=obj.set_valeur(valeur)
113 self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
114 e.widget.insert(0,obj.getval())
116 #obj.set_valeur(anc_val,evaluation='non')
117 obj.set_valeur(anc_val)
118 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
119 e.widget.insert(0,anc_val)
121 print "impossible d'\351valuer : %s " %valeur
123 self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
124 e.widget.delete(0,Tkinter.END)
125 e.widget.insert(0,anc_val)
127 self.node.parent.verif()
130 def gen_aide(self,obj):
134 class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
137 def IsExpandable(self):
144 return self.object.isvalid()
146 def GetIconName(self):
147 if self.object.isvalid():
148 return "ast-green-los"
149 elif self.object.isoblig():
154 def GetSubList(self):
155 if not Expandable:return []
157 for obj in self.object.mc_liste:
158 item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)
162 def additem(self,name,pos):
165 def suppitem(self,item) :
168 def verif_condition_bloc(self):
169 return self.object.verif_condition_bloc()
172 treeitem=NUPLETTreeItem