Salome HOME
CCAR: Correction du probleme de consommation memoire excessive
[tools/eficas.git] / Editeur / compoproc.py
1 #@ MODIF compoproc 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 from Tkinter import *
9 import Pmw
10
11 import Objecttreeitem
12 import panels
13 import fontes
14 import compooper
15
16 class PROCPanel(panels.OngletPanel):
17   def init(self):
18     nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
19     nb.pack(fill = 'both', expand = 1)
20     self.nb=nb
21     nb.add('Mocles', tab_text='Ajouter mots-clés')
22     nb.add('Commande', tab_text='Insérer Commande')
23     nb.add('Commentaire',tab_text='Paramètre/Commentaire')
24     panneau=Pmw.PanedWidget(nb.page("Mocles"),
25                             orient='horizontal')
26     panneau.add('left',min=0.4,max=0.6,size=0.5)
27     panneau.add('right',min=0.4,max=0.6,size=0.5)
28     panneau.pack(expand=1,fill='both')
29     self.makeCommandePage(nb.page("Commande"))
30     self.makeMoclesPage(panneau.pane('left'))
31     self.makeReglesPage(panneau.pane('right'))
32     self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
33     nb.setnaturalsize()
34     self.affiche()
35
36 class ProcEtapeTreeItem(compooper.EtapeTreeItem):
37   panel = PROCPanel
38   
39   def IsExpandable(self):
40     return 1
41
42   def GetIconName(self):
43       """
44       Retourne le nom de l'icône à afficher dans l'arbre
45       Ce nom dépend de la validité de l'objet
46       """
47       if self.object.isactif():
48         if self.object.isvalid():
49           return "ast-green-square"
50         else:
51           return "ast-red-square"
52       else:
53         return "ast-white-square"
54
55   def GetLabelText(self):
56       """ Retourne 3 valeurs :
57       - le texte à afficher dans le noeud représentant l'item
58       - la fonte dans laquelle afficher ce texte
59       - la couleur du texte
60       """
61       if self.object.isactif():
62         # None --> fonte et couleur par défaut
63         return self.labeltext,None,None
64       else:
65         return self.labeltext,fontes.standard_italique,None
66       
67   def get_objet(self,name) :
68       for v in self.object.mc_liste:
69           if v.nom == name : return v
70       return None
71       
72   def additem(self,name,pos):
73       if isinstance(name,Objecttreeitem.ObjectTreeItem) :
74           mcent = self.object.addentite(name.object,pos)
75       else :
76           mcent = self.object.addentite(name,pos)
77       self.expandable=1
78       if mcent == 0 :
79           # on ne peut ajouter l'élément de nom name
80           return 0
81       def setfunction(value, object=mcent):
82           object.setval(value)
83       item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
84       return item
85
86   def suppitem(self,item) :
87     # item : item du MOCLE de l'ETAPE à supprimer
88     # item.object = MCSIMP, MCFACT, MCBLOC ou MCList 
89     if item.object.isoblig() :
90         self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
91         return 0
92     else :
93         self.object.suppentite(item.object)
94         message = "Mot-clé " + item.object.nom + " supprimé"
95         self.appli.affiche_infos(message)
96         return 1
97
98   def GetText(self):
99       try:
100           #return  myrepr.repr(self.object.get_sdname())
101           return self.object.get_sdname()
102       except:
103           return ''
104
105   def keys(self):
106     keys=self.object.mc_dict.keys()
107     return keys
108
109   def GetSubList(self):
110     sublist=[]
111     for obj in self.object.mc_liste:
112       def setfunction(value, object=obj):
113         object.setval(value)
114       item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
115       sublist.append(item)
116     return sublist
117
118   def isvalid(self):
119     return self.object.isvalid()
120
121   def iscopiable(self):
122     return 1
123
124   def isCommande(self):
125       """
126       Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
127       """
128       return 1
129   
130   def verif_condition_bloc(self):
131     return self.object.verif_condition_bloc()
132
133   def get_noms_sd_oper_reentrant(self):
134       return self.object.get_noms_sd_oper_reentrant()        
135
136 import Accas
137 treeitem = ProcEtapeTreeItem
138 objet = Accas.PROC_ETAPE    
139