1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 Ce module contient la classe ETAPE_NIVEAU qui sert a
22 concretiser les niveaux au sein d'un JDC
24 from __future__ import absolute_import
27 from Noyau import N_OBJECT
29 class ETAPE_NIVEAU(N_OBJECT.OBJECT):
31 def __init__(self,niveau,parent):
33 self.jdc = self.parent.get_jdc_root()
35 self.definition = niveau
37 self.etapes_niveaux = []
40 self.state="undetermined"
43 def build_niveaux(self):
44 for niveau in self.definition.l_niveaux:
45 etape_niveau = ETAPE_NIVEAU(niveau,self)
46 self.etapes_niveaux.append(etape_niveau)
47 self.dict_niveaux[niveau.nom]=etape_niveau
49 def register(self,etape):
51 Enregistre la commande etape :
52 - si editmode = 0 : on est en mode relecture d'un fichier de commandes
53 auquel cas on ajoute etape a la fin de la liste self.etapes
54 - si editmode = 1 : on est en mode ajout d'etape depuis eficas auquel cas
55 cette methode ne fait rien, c'est addentite qui enregistre etape
56 a la bonne place dans self.etapes
58 if self.editmode : return
59 self.etapes.append(etape)
61 def unregister(self,etape):
63 Desenregistre l'etape du niveau
65 self.etapes.remove(etape)
68 return self.definition.label
71 #print 'Niveau : ',self.definition.nom
72 #print '\tactif =',self.definition.actif
73 if self.definition.actif == 1 :
76 # self.actif est une condition a evaluer dans un certain contexte ...
77 d = self.cree_dict_valeurs()
79 t=eval(self.definition.actif,d)
85 def cree_dict_valeurs(self):
87 Retourne le dictionnaire des freres aines de self compose des couples :
91 for niveau in self.parent.etapes_niveaux:
92 if niveau is self : break
93 d[niveau.definition.nom]=niveau.isvalid()
97 """ Methode booleenne qui retourne 0 si le niveau est invalide, 1 sinon """
98 if self.etapes_niveaux == []:
99 if len(self.etapes) == 0:
100 return self.definition.valide_vide
102 for etape in self.etapes :
103 if not etape.isvalid() : return 0
106 for etape_niveau in self.etapes_niveaux :
107 if not etape_niveau.isvalid() : return 0
110 def accept(self,visitor):
111 visitor.visitETAPE_NIVEAU(self)
113 def addentite(self,name,pos_rel):
116 pos_abs=self.jdc.get_nb_etapes_avant(self)+pos_rel
117 cmd = self.jdc.addentite(name,pos_abs)
118 self.etapes.insert(pos_rel,cmd)
122 traceback.print_exc()
126 def suppentite(self,etape) :
127 """ Classe ETAPE_NIVEAU
130 self.jdc.suppentite(etape)
135 Retourne le texte d'aide dans la langue choisie
138 return getattr(self.definition,self.jdc.lang)