Salome HOME
PN pour notation scientifique
[tools/eficas.git] / Noyau / N_MCCOMPO.py
index bb77a945d3be8fd6bebcb94fe5327d1ed3b75400..a587e0d7deaec6483032713e791a314a95389b0c 100644 (file)
@@ -1,4 +1,5 @@
-#@ MODIF N_MCCOMPO Noyau  DATE 28/10/2003   AUTEUR DURAND C.DURAND 
+#@ MODIF N_MCCOMPO Noyau  DATE 20/10/2004   AUTEUR DURAND C.DURAND 
+# -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -18,6 +19,8 @@
 #                                                                       
 #                                                                       
 # ======================================================================
+
+
 """ 
     Ce module contient la classe MCCOMPO qui sert à factoriser les comportements 
     des OBJECT composites
@@ -203,8 +206,11 @@ class MCCOMPO(N_OBJECT.OBJECT):
       etape = self.get_etape()
       if etape :
         dict_mc_globaux_fac = self.recherche_mc_globaux_facultatifs()
-        dict_mc_globaux_fac.update(etape.mc_globaux)
-        if self.jdc : dict_mc_globaux_fac.update(self.jdc.mc_globaux)
+        for k,v in etape.mc_globaux.items():
+           dict_mc_globaux_fac[k]=v.get_valeur()
+        if self.jdc : 
+           for k,v in self.jdc.mc_globaux.items():
+              dict_mc_globaux_fac[k]=v.get_valeur()
         return dict_mc_globaux_fac
       else :
         return {}
@@ -222,7 +228,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
          if v.position != 'global' : continue
          if v.statut == 'o':continue
          obj = v(val=None,nom=k,parent=etape)
-         dico[k]=obj
+         dico[k]=obj.get_valeur()
       return dico
 
    def supprime(self):
@@ -355,3 +361,20 @@ class MCCOMPO(N_OBJECT.OBJECT):
     for child in self.mc_liste:
       l.extend(child.get_sd_utilisees())
     return l
+
+   def get_sd_mcs_utilisees(self):
+    """ 
+          Retourne la ou les SD utilisée par self sous forme d'un dictionnaire :
+          . Si aucune sd n'est utilisée, le dictionnaire est vide.
+          . Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on
+            trouve des sd ; la valeur est la liste des sd attenante.
+            Exemple : { 'VALE_F': [ <Cata.cata.para_sensi instance at 0x9419854>,
+                                    <Cata.cata.para_sensi instance at 0x941a204> ],
+                        'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
+    """
+    dico = {}
+    for child in self.mc_liste:
+      daux = child.get_sd_mcs_utilisees()
+      for cle in daux.keys():
+        dico[cle] = daux[cle]
+    return dico