Salome HOME
ee6a848dd229ce9173eaf4ee3077f3b6d85a564c
[tools/eficas.git] / Ihm / I_OBJECT.py
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.
8 #
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.
13 #
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.
17 #
18 #
19 # ======================================================================
20 """
21 """
22 import string
23
24 import Noyau
25
26 class OBJECT:
27   from Noyau.N_CO import CO
28   from Noyau.N_ASSD import assd
29
30   def isMCList(self):
31     """ 
32         Retourne 1 si self est une MCList (liste de mots-clés), 
33                  0 sinon (défaut) 
34     """
35     return 0
36
37   def get_regles(self):
38     """ 
39        Retourne les règles de self 
40     """
41     if hasattr(self,'definition'):
42       return self.definition.regles
43     elif hasattr(self,'regles'):
44       return self.regles
45     else :
46       return []
47
48   def init_modif(self):
49     """
50        Met l'état de l'objet à modified et propage au parent
51        qui vaut None s'il n'existe pas
52     """
53     self.state = 'modified'
54     if self.parent:
55       self.parent.init_modif()
56
57   def fin_modif(self):
58       """
59       Méthode appelée après qu'une modification a été faite afin de déclencher
60       d'éventuels traitements post-modification
61       """
62       # pour les objets autres que les commandes, aucun traitement spécifique 
63       # on remonte l'info de fin de modif au parent
64       if self.parent:
65         self.parent.fin_modif()
66
67   def isrepetable(self):
68     """
69          Indique si l'objet est répétable
70     """
71     return 0
72
73   def liste_mc_presents(self):
74     """
75          Retourne la liste des noms des mots clés présents
76     """
77     return []
78
79   def get_docu(self):
80     return self.definition.get_docu()
81
82   def get_liste_mc_inconnus(self):
83      """
84      Retourne la liste des mots-clés inconnus dans self
85      """
86      return []
87
88   def verif_condition_regles(self,liste_presents):
89     """ 
90         Retourne la liste des mots-clés à rajouter pour satisfaire les règles
91         en fonction de la liste des mots-clés présents 
92     """
93     liste=[]
94     for regle in self.definition.regles:
95         liste=regle.verif_condition_regle(liste,liste_presents)
96     return liste
97
98   def verif_condition_bloc(self):
99     """ 
100         Evalue les conditions de tous les blocs fils possibles 
101         (en fonction du catalogue donc de la définition) de self et
102         retourne deux listes :
103         - la première contient les noms des blocs à rajouter
104         - la seconde contient les noms des blocs à supprimer
105     """
106     return [],[]
107
108   def get_genealogie(self):
109     """ 
110         Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC
111         ou ETAPE) de self jusqu'au premier objet etape rencontré
112     """
113     if self.parent:
114        l=self.parent.get_genealogie()
115        l.append(string.strip(self.nom))
116        return l
117     else:
118        return [string.strip(self.nom)]
119
120   def reparent(self,parent):
121      """
122          Cette methode sert a reinitialiser la parente de l'objet
123      """
124      self.parent=parent
125      self.jdc=parent.jdc
126
127