]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
ajout d une sequence si necessaire apres un choix
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 20 Mar 2020 14:52:07 +0000 (15:52 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 20 Mar 2020 14:52:07 +0000 (15:52 +0100)
Efi2Xsd/AccasXsd.py

index c8cd6c8d2400e9f219175b165f0eb664c7024bb9..211c1b580ffab705704066ff91750cbc90303cb6 100755 (executable)
@@ -206,7 +206,7 @@ class X_factCompoAmbigu(X_definition):
 #          #if reste != [] :self.creeTexteComplexe(reste)
 #       
        
-   def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2):
+   def factoriseEtCreeDump(self, laListe, dejaDansUneSequence=False, indent=2, apresChoice=False):
        print ('debut factorise ********', laListe, indent)
        maListeRetour=[]
        aReduire={}
@@ -217,6 +217,12 @@ class X_factCompoAmbigu(X_definition):
        else :
           declencheChoiceAvecSeqVid=False
 
+       doitFermerSequence=False
+       if len(laListe) > 1 and apresChoice : 
+           self.texteComplexe += '\t'*(indent) + debSequenceDsBloc 
+           indent=indent+1
+           doitFermerSequence=True
+
        for ligne in laListe :
           #print (ligne)
           if aReduire.has_key(ligne[0]) : aReduire[ligne[0]].append(ligne[1:])
@@ -237,7 +243,6 @@ class X_factCompoAmbigu(X_definition):
           self.texteComplexe += '\t'*indent + debutChoiceDsBloc
           indent += 1
 
-       print ('creeChoice ', creeChoice, 'creeSequence', creeSequence)
 
        for nomMC in aReduire.keys():
            if creeSequence : self.texteComplexe += '\t'*(indent) + debSequenceDsBloc; indent=indent+1
@@ -245,7 +250,7 @@ class X_factCompoAmbigu(X_definition):
            listeSuivante=aReduire[nomMC]
            if listeSuivante == [[]] : continue # Est-ce toujours vrai ? 
            if len(listeSuivante) == 1 : self.ajouteAuxTextes(listeSuivante[0])
-           else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence))
+           else : self.factoriseEtCreeDump(listeSuivante,creeSequence, indent+int(creeSequence), creeChoice)
            if creeSequence :   indent=indent -1 ; self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
 
        if declencheChoiceAvecSeqVid : 
@@ -253,6 +258,7 @@ class X_factCompoAmbigu(X_definition):
           self.texteComplexe +=  '\t'*indent + finSequenceDsBloc
        if creeChoice                : indent=indent -1 ; self.texteComplexe += '\t'*indent + finChoiceDsBloc
 
+       if doitFermerSequence : indent=indent-1;self.texteComplexe += '\t'*(indent) + finSequenceDsBloc
        print ('________ fin factorise________' , laListe)
        return (maListeRetour)