# -*- coding: utf-8 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# Copyright (C) 2007-2013 EDF R&D
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-# ======================================================================
import types,traceback
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
from copy import copy
import CONNECTOR
"""
Supprime le mot cle facteur obj de la MCLIST
"""
+ if obj not in self:
+ return 0
+
self.init_modif()
self.remove(obj)
CONNECTOR.Emit(self,"supp",obj)
+ self.update_condition_bloc()
+ obj.supprime()
+ self.etape.modified()
self.fin_modif()
return 1
"""
if type(obj)==types.StringType :
# on est en mode création d'un motcle
- raise "traitement non prevu"
+ raise EficasException(tr("traitement non-prevu"))
if not self.ajout_possible():
- self.jdc.send_message("L'objet %s ne peut pas être ajouté" % obj.nom)
+ self.jdc.appli.affiche_alerte(tr("Erreur"),
+ tr("L'objet %s ne peut pas etre ajoute", obj.nom))
return None
if self.nom != obj.nom:
self.insert(pos,obj)
CONNECTOR.Emit(self,"add",obj)
self.fin_modif()
+ self.update_condition_bloc()
return obj
def liste_mc_presents(self):
"""
Inputs :
- sd=concept detruit
- Fonction : Mettre a jour les fils de l objet suite à la disparition
+ Fonction : Mettre a jour les fils de l objet suite a la disparition
du concept sd
Seuls les mots cles simples MCSIMP font un traitement autre
que de transmettre aux fils
Parcourt l'arborescence des mcobject et realise l'update
des blocs conditionnels par appel de la methode update_condition_bloc
"""
-
#print "deep_update_condition_bloc",self
for mcfact in self.data :
mcfact.deep_update_condition_bloc()
+ def update_condition_bloc(self):
+ """
+ Propage la mise a jour des conditions au parent.
+ Une liste ne fait pas de traitement sur les conditions
+ """
+ if self.parent: self.parent.update_condition_bloc()
+
def verif_condition_bloc(self):
"""
Evalue les conditions de tous les blocs fils possibles
def verif_existence_sd(self):
"""
Vérifie que les structures de données utilisées dans self existent bien dans le contexte
- avant étape, sinon enlève la référence à ces concepts
+ avant étape, sinon enlève la référence à ces concepts
"""
for motcle in self.data :
motcle.verif_existence_sd()
except:
return ''
+ def normalize(self):
+ """
+ Retourne l'objet normalisé. Une liste est déjà normalisée
+ """
+ return self
+
+ def update_mc_global(self):
+ """
+ Met a jour les mots cles globaux enregistrés dans l'étape parente
+ et dans le jdc parent.
+ Une liste ne peut pas etre globale. Elle se contente de passer
+ la requete a ses fils.
+ """
+ for motcle in self.data :
+ motcle.update_mc_global()
+
+ def delete_mc_global(self):
+ for motcle in self.data :
+ motcle.delete_mc_global()
+
+ #def __del__(self):
+ # print "__del__",self