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