]> SALOME platform Git repositories - tools/eficas.git/blob - Editeur/componuplet.py
Salome HOME
Version initiale de EFICAS 1.2
[tools/eficas.git] / Editeur / componuplet.py
1 #@ MODIF componuplet 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 # Modules Python
9 import types
10 import Tkinter
11 import Pmw
12 from repr import Repr
13 from copy import copy,deepcopy
14
15 # Modules Eficas
16 import Objecttreeitem
17 import panels
18
19 #
20 __version__="$Name: V1_1p1 $"
21 __Id__="$Id: componuplet.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
22 #
23
24 myrepr = Repr()
25 myrepr.maxstring = 100
26 myrepr.maxother = 100
27
28 # Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre
29 # Si Expandable vaut 0 les éléments n'apparaissent pas
30 Expandable=1
31
32 class NUPLETPanel(panels.OngletPanel):
33   def init(self):
34       """ Initialise les frame des panneaux contextuels relatifs \340 un NUPLET """
35       self.nb=Pmw.NoteBook(self,raisecommand=self.raisecmd)
36       self.nb.pack(fill = 'both', expand = 1)
37       self.nb.add("Valeurs",tab_text="Saisir valeurs")
38       self.makeValeurPage(self.nb.page('Valeurs'))
39       self.nb.setnaturalsize()
40     
41   def makeValeurPage(self,page):
42     label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT)
43     i=0
44     for obj in self.node.item.object.mc_liste:
45       frame_valeur=Tkinter.Frame(page)
46       frame_valeur.pack(side=Tkinter.LEFT)
47       if hasattr(obj,'definition'):
48          objet_mc=obj.definition
49       else:  
50          objet_mc=None
51       valeur=obj.valeur
52       if type(valeur) == types.InstanceType :
53         valeur=obj.getval()
54       aide=self.gen_aide(obj)
55       if objet_mc.into != None :
56         l_choix=list(objet_mc.into)
57         obj.set_valeur(l_choix[0],evaluation='non')
58         option=Pmw.OptionMenu (frame_valeur,
59                 items = l_choix,
60                 menubutton_width = 10,
61                 command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj),
62         )
63         option.pack(side=Tkinter.LEFT,padx=1)
64       else :
65         entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10)
66         entry.pack(side=Tkinter.LEFT,padx=1)
67         entry.bind("<Return>",
68                 lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj))
69         if i==0:entry.focus_set()
70         #aide = Tkinter.Label(frame_valeur, text = aide)
71         #aide.place(relx=0.5,rely=0.55,anchor='n')
72         if valeur != None :
73           entry.delete(0,Tkinter.END)
74           entry.insert(0,obj.getval())
75       i=i+1
76
77   def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
78     """ 
79       Enregistre  val comme valeur de self.node.item.object SANS faire de 
80        test de validit\351 
81     """
82     obj.set_valeur(val,evaluation='non')
83     self.parent.appli.affiche_infos(mess)
84     self.node.parent.verif()
85     self.node.update()
86
87   def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'):
88     """ 
89       Enregistre  val comme valeur de self.node.item.object avec
90        test de validit\351 
91     """
92     valeur=e.widget.get()
93     e.widget.delete(0,Tkinter.END)
94     anc_val=obj.getval()
95     if anc_val == None:anc_val=''
96     test=obj.set_valeur(valeur)
97     if test:
98       if obj.isvalid():
99           self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e')
100           e.widget.insert(0,obj.getval())
101       else:
102           obj.set_valeur(anc_val,evaluation='non')
103           self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
104           e.widget.insert(0,anc_val)
105     else:
106       print "impossible d'\351valuer : %s " %valeur
107       print "test =",test
108       self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e")
109       e.widget.delete(0,Tkinter.END)
110       e.widget.insert(0,anc_val)
111           
112     self.node.parent.verif()
113     self.node.update()
114
115   def gen_aide(self,obj):
116     return ""
117     
118
119 class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem):
120   panel=NUPLETPanel
121
122   def IsExpandable(self):
123     return Expandable
124
125   def GetText(self):
126       return  ''
127
128   def isvalid(self):
129     return self.object.isvalid()
130
131   def GetIconName(self):
132     if self.object.isvalid():
133       return "ast-green-los"
134     elif self.object.isoblig():
135       return "ast-red-los"
136     else:
137       return "ast-yel-los"
138
139   def GetSubList(self):
140     if not Expandable:return []
141     sublist=[]
142     for obj in self.object.mc_liste:
143       item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None)    
144       sublist.append(item)
145     return sublist
146
147   def additem(self,name,pos):
148     raise "NUPLET"
149
150   def suppitem(self,item) :
151     raise "NUPLET"
152
153   def verif_condition_bloc(self):
154     return self.object.verif_condition_bloc()
155
156 import Accas
157 treeitem=NUPLETTreeItem
158 objet=Accas.MCNUPLET