]> SALOME platform Git repositories - tools/eficas.git/blobdiff - generator/generator_dicoImbrique.py
Salome HOME
onItem=Deplie
[tools/eficas.git] / generator / generator_dicoImbrique.py
index 010eb18de0445e4950f2dcceaa4a24dd8c974dfe..a9d937eb7ee15369550461d83666ce5ffb9d61d3 100644 (file)
@@ -65,6 +65,7 @@ class DicoImbriqueGenerator(PythonGenerator):
    def initDico(self) :
  
       self.Dico={}
+      self.Entete = ''
 
 
 #----------------------------------------------------------------------------------------
@@ -72,10 +73,9 @@ class DicoImbriqueGenerator(PythonGenerator):
 #----------------------------------------------------------------------------------------
 
    def writeDefault(self,fn) :
-       print "je passe par writeDefault"
        fileDico = fn[:fn.rfind(".")] + '.py'
        f = open( str(fileDico), 'wb')
-       f.write( str(self.Dico) )
+       f.write( self.Entete + "Dico =" + str(self.Dico) )
        f.close()
 
 #----------------------------------------------------------------------------------------
@@ -84,13 +84,32 @@ class DicoImbriqueGenerator(PythonGenerator):
 
    def generMCSIMP(self,obj) :
         """recuperation de l objet MCSIMP"""
+
         s=PythonGenerator.generMCSIMP(self,obj)
         liste=obj.get_genealogie() 
-        dicoCourant=self.Dico
-        for i in liste [0:-1]:
-            if not(dicoCourant.has_key(i)) : dicoCourant[i]={}
-            dicoCourant=dicoCourant[i] 
-        dicoCourant[liste[-1]]=obj.valeur
+        nom=obj.etape.nom
+        if hasattr(obj.etape,'sdnom') and obj.etape.sdnom != None and obj.etape.sdnom != "" : 
+           nom = nom+ obj.etape.sdnom
+        if not(self.Dico.has_key(nom)) : dicoCourant={}
+        else : dicoCourant=self.Dico [nom]
+        if hasattr(obj.valeur,'nom'):dicoCourant[liste[-1]]=obj.valeur.nom
+        else : 
+           if type(obj.valeur)  in (types.ListType,types.TupleType):
+              try :
+#PNPNPN a remplacer par plus propre
+                 if obj.definition.validators.typeDesTuples[0] !='R' :
+                    val=[]
+                    elt=[]
+                    for tupleElt in obj.valeur :
+                        elt=(str(tupleElt[0]),tupleElt[1])
+                        val.append(elt)
+                    dicoCourant[liste[-1]]=val
+                 else :dicoCourant[liste[-1]]=obj.valeur
+              except :
+                 dicoCourant[liste[-1]]=obj.valeurFormatee
+           else :dicoCourant[liste[-1]]=obj.valeurFormatee
+        self.Dico[nom]=dicoCourant
+
         return s