X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Ihm%2FI_MCFACT.py;h=fc7d4a9f87f281c2af89c1e31e7e6a8f3b7315d7;hb=5ecef0dc64055f54a1f864b979e58cc05f1c9f4a;hp=2707a7b3aa92cd658f16dc23010bfd485f9b351b;hpb=860a50d7df32b5c86f9ab536178d030ea882cae5;p=tools%2Feficas.git diff --git a/Ihm/I_MCFACT.py b/Ihm/I_MCFACT.py index 2707a7b3..fc7d4a9f 100644 --- a/Ihm/I_MCFACT.py +++ b/Ihm/I_MCFACT.py @@ -1,29 +1,33 @@ # -*- 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 # -# ====================================================================== -import I_MCCOMPO +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +from __future__ import absolute_import +from Extensions.i18n import tr +from . import CONNECTOR +from . import I_MCCOMPO +import Noyau + class MCFACT(I_MCCOMPO.MCCOMPO): def isrepetable(self): """ - Indique si l'objet est répétable. - Retourne 1 si le mot-clé facteur self peut être répété + Indique si l'objet est repetable. + Retourne 1 si le mot-cle facteur self peut etre repete Retourne 0 dans le cas contraire """ if self.definition.max > 1: @@ -33,5 +37,74 @@ class MCFACT(I_MCCOMPO.MCCOMPO): return 0 def isoblig(self): - return self.definition.statut=='o' + if self.definition.statut != 'o' : return 0 + objet = self.parent.get_child(self.nom) + if len(objet) > 1 : return 0 + else : return 1 + + def getlabeltext(self): + """ + Retourne le label de self suivant qu'il s'agit d'un MCFACT + isole ou d'un MCFACT appartenant a une MCList : + utilisee pour l'affichage dans l'arbre + """ + objet = self.parent.get_child(self.nom) + # objet peut-etre self ou une MCList qui contient self ... + if objet is None or objet is self: + return tr("Erreur - mclist inexistante : %s", self.nom) + + try: + if len(objet) > 1 : + index = objet.get_index(self)+1 # + 1 a cause de la numerotation qui commence a 0 + return self.nom +'_'+repr(index)+':' + else: + return self.nom + except: + return tr("Erreur - mot cle facteur de nom : %s", self.nom) + + def get_genealogie_precise(self): + nom=self.getlabeltext() + if nom[-1]==':' : nom=nom[0:-1] + if self.parent: + l=self.parent.get_genealogie_precise() + l.append(nom.strip()) + return l + else: + return [nom.strip()] + + + def init_modif(self): + """ + Met l'etat de l'objet a modified et propage au parent + qui vaut None s'il n'existe pas + """ + self.state = 'modified' + parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent + if parent: + parent.init_modif() + + def fin_modif(self): + """ + Methode appelee apres qu'une modification a ete faite afin de declencher + d'eventuels traitements post-modification + """ + #print "fin_modif",self + # pour les objets autres que les commandes, aucun traitement specifique + # on remonte l'info de fin de modif au parent + CONNECTOR.Emit(self,"valid") + parent= hasattr(self,"alt_parent") and self.alt_parent or self.parent + if parent: + parent.fin_modif() + + def normalize(self): + """ Retourne le MCFACT normalise. Pour un MCFACT isole, l'objet normalise + est une MCLIST de longueur 1 qui contient ce MCFACT + """ + new_obj = self.definition.list_instance() + new_obj.init(nom=self.nom,parent=None) + new_obj.append(self) + return new_obj + def supprime(self): + self.alt_parent=None + Noyau.N_MCFACT.MCFACT.supprime(self)