]> SALOME platform Git repositories - tools/eficas.git/blob - Extensions/commentaire.py
Salome HOME
update version
[tools/eficas.git] / Extensions / commentaire.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2021   EDF R&D
3 #
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.
8 #
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.
13 #
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
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 """
21    Ce module contient la classe COMMENTAIRE qui sert dans EFICAS
22    pour gerer les commentaires dans un JDC
23 """
24
25 from __future__ import absolute_import
26 from Noyau.N_CR import CR
27 from Noyau import N_OBJECT
28 from Ihm import I_OBJECT
29 from Extensions.i18n import tr
30
31 class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
32     """
33         Cette classe permet de creer des objets de type COMMENTAIRE
34     """
35     nature = 'COMMENTAIRE'
36     idracine = '_comm'
37
38     def __init__(self,valeur,parent=None):
39         # parent est un objet de type OBJECT (ETAPE ou MC ou JDC...)
40         self.valeur=valeur
41         if not parent :
42             self.jdc = self.parent = CONTEXT.getCurrentStep()
43         else:
44             self.jdc = self.parent = parent
45         # La classe COMMENTAIRE n'a pas de definition. On utilise self
46         # pour completude
47         self.definition=self
48         self.nom=''
49         self.niveau = self.parent.niveau
50         self.actif=1
51         self.state="unchanged"
52         self.register()
53         self.fenetreIhm=None
54
55     def register(self):
56         """
57             Enregistre le commentaire dans la liste des etapes de son parent
58             lorsque celui-ci est un JDC
59         """
60         if self.parent.nature == 'JDC':
61             # le commentaire est entre deux commandes:
62             # il faut l'enregistrer dans la liste des etapes
63             self.parent.register(self)
64
65     def copy(self):
66         c=COMMENTAIRE(valeur=self.valeur,parent=self.jdc)
67         return c
68
69     def isValid(self):
70         """
71         Retourne 1 si self est valide, 0 sinon
72         Retourne toujours 1 car un commentaire est toujours valide
73         """
74         return 1
75
76     def isOblig(self):
77         """ Indique si self est obligatoire ou non : retourne toujours 0 """
78         return 0
79
80     def isRepetable(self):
81         """ Indique si self est repetable ou non : retourne toujours 1 """
82         return 1
83
84     def active(self):
85         """
86         Rend l'etape courante active
87         """
88         self.actif = 1
89
90     def inactive(self):
91         """
92         Rend l'etape courante inactive
93         NB : un commentaire est toujours actif !
94         """
95         self.actif = 1
96
97     def isActif(self):
98         """
99         Booleenne qui retourne 1 si self est valide, 0 sinon
100         """
101         return self.actif
102
103     def supprime(self):
104         """
105         Methode qui supprime toutes les boucles de references afin que
106         l'objet puisse etre correctement detruit par le garbage collector
107         """
108         self.parent=None
109         self.jdc=None
110         self.definition = None
111         self.niveau = None
112
113     def listeMcPresents(self):
114         return []
115
116     def getValeur(self) :
117         """ Retourne la valeur de self, cad le contenu du commentaire """
118         try :
119             return self.valeur
120         except:
121             return None
122
123     def setValeur(self,new_valeur):
124         """
125             Remplace la valeur de self(si elle existe) par new_valeur
126         """
127         self.valeur = new_valeur
128         self.initModif()
129
130     def initModif(self):
131         self.state = 'modified'
132         if self.parent:
133             self.parent.initModif()
134
135     def supprimeSdProds(self):
136         pass
137
138     def updateContext(self,d):
139         """
140             Update le dictionnaire d avec les concepts ou objets produits par self
141             --> ne fait rien pour un commentaire
142         """
143         pass
144
145     def report(self):
146         """ Genere l'objet rapport (classe CR) """
147         self.cr=CR()
148         if not self.isValid(): self.cr.warn(tr("Objet commentaire non valorise"))
149         return self.cr
150
151     def ident(self):
152         """ Retourne le nom interne associe a self
153             Ce nom n'est jamais vu par l'utilisateur dans EFICAS
154         """
155         return self.nom
156
157     def deleteConcept(self,sd):
158         pass
159
160     def replaceConcept (self,old_sd,sd):
161         pass
162
163     def verifConditionBloc(self):
164         """
165             Evalue les conditions de tous les blocs fils possibles
166             (en fonction du catalogue donc de la definition) de self et
167             retourne deux listes :
168               - la premiere contient les noms des blocs a rajouter
169               - la seconde contient les noms des blocs a supprimer
170         """
171         return [],[]
172
173     def verifConditionRegles(self,liste_presents):
174         """
175             Retourne la liste des mots-cles a rajouter pour satisfaire les regles
176             en fonction de la liste des mots-cles presents
177         """
178         return []
179
180     def getSdprods(self,nom_sd):
181         """
182             Retourne les concepts produits par la commande
183         """
184         return None
185
186     def verifExistenceSd(self):
187         pass
188
189     def getFr(self):
190         """
191         Retourne le commentaire lui meme tronque a la 1ere ligne
192         """
193         return self.valeur.split('\n',1)[0]
194
195     def controlSdprods(self,d):
196         """sans objet """
197         pass
198
199     def close(self):
200         pass
201
202     def resetContext(self):
203         pass