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 # ======================================================================
22 Ce module contient la classe ETAPE_NIVEAU qui sert à
23 concrétiser les niveaux au sein d'un JDC
27 from Noyau import N_OBJECT
30 class ETAPE_NIVEAU(N_OBJECT.OBJECT):
32 def __init__(self,niveau,parent):
34 self.jdc = self.parent.get_jdc_root()
36 self.definition = niveau
38 self.etapes_niveaux = []
41 self.state="undetermined"
44 def build_niveaux(self):
45 for niveau in self.definition.l_niveaux:
46 etape_niveau = ETAPE_NIVEAU(niveau,self)
47 self.etapes_niveaux.append(etape_niveau)
48 self.dict_niveaux[niveau.nom]=etape_niveau
50 def register(self,etape):
52 Enregistre la commande étape :
53 - si editmode = 0 : on est en mode relecture d'un fichier de commandes
54 auquel cas on ajoute etape à la fin de la liste self.etapes
55 - si editmode = 1 : on est en mode ajout d'étape depuis eficas auquel cas
56 cette méthode ne fait rien, c'est addentité qui enregistre etape
57 à la bonne place dans self.etapes
59 if self.editmode : return
60 self.etapes.append(etape)
62 def unregister(self,etape):
64 Desenregistre l'etape du niveau
66 self.etapes.remove(etape)
69 return self.definition.label
72 #print 'Niveau : ',self.definition.nom
73 #print '\tactif =',self.definition.actif
74 if self.definition.actif == 1 :
77 # self.actif est une condition à évaluer dans un certain contexte ...
78 d = self.cree_dict_valeurs()
80 t=eval(self.definition.actif,d)
86 def cree_dict_valeurs(self):
88 Retourne le dictionnaire des frères aînés de self composé des couples :
92 for niveau in self.parent.etapes_niveaux:
93 if niveau is self : break
94 d[niveau.definition.nom]=niveau.isvalid()
98 """ Méthode booléenne qui retourne 0 si le niveau est invalide, 1 sinon """
99 if self.etapes_niveaux == []:
100 if len(self.etapes) == 0:
101 return self.definition.valide_vide
103 for etape in self.etapes :
104 if not etape.isvalid() : return 0
107 for etape_niveau in self.etapes_niveaux :
108 if not etape_niveau.isvalid() : return 0
111 def accept(self,visitor):
112 visitor.visitETAPE_NIVEAU(self)
114 def addentite(self,name,pos_rel):
117 pos_abs=self.jdc.get_nb_etapes_avant(self)+pos_rel
118 cmd = self.jdc.addentite(name,pos_abs)
119 self.etapes.insert(pos_rel,cmd)
123 traceback.print_exc()
127 def suppentite(self,etape) :
128 """ Classe ETAPE_NIVEAU
131 self.jdc.suppentite(etape)
136 Retourne le texte d'aide dans la langue choisie
139 return getattr(self.definition,prefs.lang)