]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
sauvegarde du 1709
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 17 Sep 2018 09:19:27 +0000 (11:19 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 17 Sep 2018 09:19:27 +0000 (11:19 +0200)
29 files changed:
Efi2Xsd/MCAccasXsd.py
Extensions/mcnuplet.py
Ihm/I_ETAPE.py
Ihm/I_FORM_ETAPE.py
Ihm/I_MCCOMPO.py
Ihm/I_MCSIMP.py
Ihm/I_PROC_ETAPE.py
InterfaceQT4/browser.py
InterfaceQT4/compobloc.py
InterfaceQT4/compofact.py
InterfaceQT4/compoformule.py
InterfaceQT4/compooper.py
Noyau/N_BLOC.py
Noyau/N_ENTITE.py
Noyau/N_ETAPE.py
Noyau/N_MACRO_ETAPE.py
Noyau/N_MCBLOC.py
Noyau/N_MCCOMPO.py
Noyau/N_MCFACT.py
Noyau/N_MCLIST.py
Noyau/N_OBJECT.py
Validation/V_ETAPE.py
Validation/V_MACRO_ETAPE.py
Validation/V_MCBLOC.py
Validation/V_MCCOMPO.py
Validation/V_MCFACT.py
VirtualPolymer/VP_Cata_V2.py
VirtualPolymer/prefs_VP.py
convert/convert_TELEMAC.py

index 83a31a744d7d807911e05582ff0b9e42859475d9..21b7f31836b9f6daa76de689f99d2a7dfbfca1e4 100755 (executable)
@@ -8,15 +8,34 @@ import types
 sys.path.insert(0,os.path.abspath(os.path.join(os.getcwd(),'..')))
 
 import pyxb
-#import pyxb.binding
-#import pyxb.binding.saxer
+import pyxb.binding
+import pyxb.binding.basis
 #import pyxb.utils.utility
 #import pyxb.utils.domutils
 
+class X_OBJECT:
+# -------------
 
+  def deletePyxbObject(self):
+      print ('----------- deletePyxbObject', self.nom)  
+      indice = 0
+      trouve = False
+      for i in self.perePyxb.objPyxb.orderedContent(): 
+            if id(self.objPyxb) == id(i._Content__value) : trouve = True ;break
+            indice = indice + 1
+      if not trouve : print ('objet pas trouve')
+      print (self.perePyxb.objPyxb.description)
+      del self.perePyxb.objPyxb.__dict__[self.nom]
+      print (self.perePyxb.objPyxb.__delattr__)
+      #delattr(self.perePyxb.objPyxb,self.nom)
+      # PNPN
+      
+      print ('delattr', self.perePyxb.objPyxb,self.nom)
+      del self.perePyxb.objPyxb.orderedContent()[indice]
 
-class X_MCSIMP:
-# -------------
+
+class X_MCSIMP(X_OBJECT):
+# -----------------------
       
    def buildObjPyxb(self) :
       # self.valeur tient compte de la valeur par defaut
@@ -30,6 +49,8 @@ class X_MCSIMP:
       #if self.objPyxbDeConstruction == None : print (self.nom, ' pas de pyxb')
       if self.objPyxbDeConstruction != None :
         self.objPyxb = self.objPyxbDeConstruction
+        self.maClasseModeleMetier =type(self.objPyxb)
+        #print (self.maClasseModeleMetier)
         self.objPyxbDeConstruction = None
       else :
         self.monNomClasseModeleMetier='T_'+self.nom
@@ -40,44 +61,62 @@ class X_MCSIMP:
         if self.valeur != None : self.objPyxb=self.maClasseModeleMetier(self.valeur)
         elif self.definition.into != None and 'TXM' in self.definition.type  : self.objPyxb = None
         else                   : self.objPyxb=self.maClasseModeleMetier(); 
-      self.filsPyxb=None
+      #self.filsPyxb=None
       #print ('X_MCSIMP', self.nom, self.objPyxb)
       #print ('fin X_MCSIMP', self.objPyxb, self.nom,self)
 
 
    def setValeurObjPyxb(self,newVal):
-       #print ('dans setValeurObjPyxb')
+       print ('dans setValeurObjPyxb MCSIMP')
        if not self.cata.modeleMetier : return
-       try : 
-         print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom)
-       except :
-         print ("je sors du setValeur")
-         return
+       #  print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom, self.perePyxb.objPyxb)
        if newVal != None : nvlObj=self.maClasseModeleMetier(newVal)
        else              : nvlObj=self.maClasseModeleMetier()
        self.val=newVal
-       indexOC=0
-       #print ('avant',self.nom, self.perePyxb.objPyxb.orderedContent())
+       setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
+       print ('setattr', self.perePyxb.objPyxb,self.nom)
+       trouve=False
+       indice=0
        for i in self.perePyxb.objPyxb.orderedContent(): 
-           if id(i._Content__value) == id(self.objPyxb) : break
-           indexOC +=1
-
-       maSequence = getattr(self.perePyxb.objPyxb, self.nom)
-       if isinstance(maSequence, pyxb.binding.basis.simpleTypeDefinition):
-          #maSequence=nvlObj
-          setattr(self.perePyxb.objPyxb, self.nom, nvlObj)
-          self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1]
-          del(self.perePyxb.objPyxb.orderedContent()[-1])
-       else :
-          index=0
-          for i in maSequence: 
-              if id(i) == id(self.objPyxb) : break
-              index=index+1
-          maSequence[index]=nvlObj
-          self.perePyxb.objPyxb.orderedContent()[indexOC]._Content__value=nvlObj
-
+           if isinstance(i._Content__value, self.maClasseModeleMetier) : 
+              self.perePyxb.objPyxb.orderedContent()[indice]=self.perePyxb.objPyxb.orderedContent()[-1]
+              del(self.perePyxb.objPyxb.orderedContent()[-1])
+              trouve=True
+              break
+           indice+=1
+       if not trouve : print ('Attention souci au changement de valeur de ', self.nom)
        self.objPyxb=nvlObj
+       print ('iiiiiiiiiiiiiiiiiiiiiiiiiiiiii', nvlObj, id(nvlObj))
+       #for i in self.perePyxb.objPyxb.orderedContent(): 
+       #    print ('ds le for pour i')
+       #    print (i._Content__value)
+       #    print (id(i._Content__value))
+       #    print (type((i._Content__value)))
+       #    if id(i._Content__value) == id(self.objPyxb) : break
+       #    indexOC +=1
+
+       #maValeur = getattr(self.perePyxb.objPyxb, self.nom)
+       #print ('je change', indexOC)
+       #if isinstance(maValeur, pyxb.binding.basis.simpleTypeDefinition):
+       #if 1 :
+       #   print ('jkjkljkljklj')
+       #   setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
+       #   self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1]
+       #   del(self.perePyxb.objPyxb.orderedContent()[-1])
+       #print ('apres',self.nom, self.perePyxb.objPyxb.orderedContent())
+       #else :
+       #   index=0
+       #   trouve=False
+       #   try :
+       #     for i in maValeur: 
+       #       if id(i) == id(self.objPyxb) :trouve = True ; break
+       #       index=index+1
+       #     maValeur[index]=nvlObj
+       #     self.perePyxb.objPyxb.orderedContent()[indexOC]._Content__value=nvlObj
+       #   except : pass
+       #   if not trouve : print (self.nom , 'pas trouve')
 
+       #print ('arret programme'); exit()
 
        #print ('id objPyxb',id(self.objPyxb))
        #print ('id objPyxb[0]',id(self.objPyxb[0]))
@@ -103,17 +142,55 @@ class X_MCSIMP:
        #print (self.perePyxb.objPyxb.orderedContent())
        #print (monBinding)
         
-   def deletePyxbObject(self):
-      print ('je passe ds deletePyxbObject pour ', self, self.nom)
       
+   def addPyxbObject(self, indiceDsLeContenu):
+      if not self.cata.modeleMetier : return
 
-class X_MCCOMPO:
-# --------------
+      # adherence Accas sur le parent
+      parent=self.parent
+      while (parent.isBLOC() ): parent=parent.parent
+      self.perePyxb=parent
+
+      self.monNomClasseModeleMetier='T_'+self.nom
+      self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+      nvlObj=self.maClasseModeleMetier() 
+      print ('setattr', self.perePyxb.objPyxb,self.nom)
+      setattr(self.perePyxb.objPyxb,self.nom,nvlObj)
+      tampon=self.perePyxb.objPyxb.orderedContent()[-1]
+      self.objPyxb  = nvlObj
+      indexOC=-1
+      longueur=len(self.perePyxb.objPyxb.orderedContent())
+      for i in reversed(range(longueur)):
+          self.perePyxb.objPyxb.orderedContent()[i]=self.perePyxb.objPyxb.orderedContent()[i-1]
+          if i == indiceDsLeContenu + 1 : break
+      self.perePyxb.objPyxb.orderedContent()[indiceDsLeContenu]=tampon
+
+
+      #for i in self.perePyxb.objPyxb.orderedContent() :
+      #    print (i._Content__value, type(i._Content__value))
+      #print ('----------------')
+
+      #print self.perePyxb.objPyxb.orderedContent()
+      #for i in  self.perePyxb.objPyxb.orderedContent():
+      #     print ('valeur de ', i)
+      #     print (i._Content__value)
+      #     print (type(i._Content__value))
+      #     if isinstance(i._Content__value, self.maClasseModeleMetier) : 
+      #        print dir(i._Content__value)
+      #        self.objPyxb = i._Content__value 
+      #        setattr(self.perePyxb.objPyxb, self.nom, nvlObj)
+      #        self.perePyxb.objPyxb.orderedContent()[indexOC]=self.perePyxb.objPyxb.orderedContent()[-1]
+      #        del(self.perePyxb.objPyxb.orderedContent()[-1])
+      #     indexOC+=1
+      #PNPNPNPNPNPNPNPNP
+
+class X_MCCOMPO(X_OBJECT) :
+# -------------------------
 # 
    def buildObjPyxb(self,mc_list) :
-      if not self.cata.modeleMetier : return
       #print ('________________________________________________')
       #print ('X_MCCOMPO buildObjPyxb', self.nom, self, mc_list)
+      if not self.cata.modeleMetier : return
 
       self.listArg=[]
       for objAccas in mc_list :
@@ -126,7 +203,7 @@ class X_MCCOMPO:
         else :
            self.listArg.append(objAccas.objPyxb)
            objAccas.perePyxb=self
-           #print (objAccas.nom ,' a pour pere Pyxb', self, self.nom)
+           print (objAccas.nom ,' a pour pere Pyxb', self, self.nom)
 
       self.monNomClasseModeleMetier='T_'+self.nom
       self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
@@ -149,7 +226,7 @@ class X_MCCOMPO:
 
    def exploreBLOC(self,objAccas):
       laListeSsLesBlocs=[]
-      for fils in objAccas.mc_liste:
+      for fils in objAccas.mcListe:
         if fils.nature == 'MCBLOC' :
            self.exploreBLOC(fils)
         elif fils.nature == 'MCList' :
@@ -174,7 +251,7 @@ class X_MCBLOC (X_MCCOMPO):
       #print ('_______________________________________')
       #print ('X_MCBLOC buildObjPyxb', self.nom, self, mc_list)
       # on rattache ses fils au bloc mais leur pere sera ensuite le MCCOMPO qui contient le bloc 
-      # Pas sur d en avoir besoin
+      # Pas sur d en avoir besoin du filsPyxb
       self.filsPyxb=[]
       self.objPyxb=None
       for objAccas in mc_list :
@@ -206,7 +283,7 @@ class X_MCLIST (X_MCCOMPO):
    #   listArg=[]
       # MCList est une liste
    #   for nbDeSequence in self :
-   #      for objAccas in nbDeSequence.mc_liste :
+   #      for objAccas in nbDeSequence.mcListe :
              #print (type (objAccas))
              #print (objAccas.nom, objAccas.objPyxb, type(objAccas.objPyxb))
             #print ( type (objAccas.objPyxb) == list )
@@ -281,18 +358,18 @@ class X_JDC (X_MCCOMPO):
           objAccasEtape=maClasseAccas(**(objEtape.dictArgs))
           # attention objAccasEtape = None normal (cf buildSd)
  
-          print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
-          print (objEtape , type(objEtape))
-          print (objEtape.dictPyxb)
-          print (maClasseAccas)
-          print (objAccasEtape)
+          #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
+          #print (objEtape , type(objEtape))
+          #print (objEtape.dictPyxb)
+          #print (maClasseAccas)
+          #print (objAccasEtape)
  
           #print (objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas))
           #print (objEtape._ExpandedName, type(objEtape._ExpandedName))
           #print (objEtape.dictPyxb[u'experience'])
           #print (objEtape.dictArgs)
           #print (objEtape.dictPyxb)
-          print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
+          #print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh')
           #exit()
       
 
index 03b5c0da84c13b628c71b0efd361c6821e48f899..81e623d3af8a246e6bfbaa5f0037881f9bef9603 100644 (file)
@@ -57,16 +57,16 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
          self.etape = None
       self.state = 'undetermined'
       self.actif=1
-      self.mc_liste=self.build_mc()
+      self.mcListe=self.buildMc()
 
-   def build_mc(self):
+   def buildMc(self):
       """ 
           Construit la liste des sous-entites de MCNUPLET
           a partir de la liste des arguments (valeur)
       """
       args = self.valeur
       if args ==None : args =()
-      mc_liste=[]
+      mcListe=[]
 
       # on cree les sous entites du NUPLET a partir des valeurs initiales
       k=0
@@ -80,11 +80,11 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
           if objet.definition.position == 'global' :
             self.append_mc_global(objet)
           #XXX et global_jdc ??
-        mc_liste.append(objet)
+        mcListe.append(objet)
         k=k+1
       # Un nuplet n'a pas de mots inconnus
       self.reste_val={}
-      return mc_liste
+      return mcListe
 
    def isValid(self,cr='non'):
       """
@@ -98,11 +98,11 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
           old_valid = self.valid
         else:
           old_valid = None
-        for child in self.mc_liste :
+        for child in self.mcListe :
           if not child.isValid():
             valid = 0
             break
-        if len(self.mc_liste) != len(self.definition.entites):
+        if len(self.mcListe) != len(self.definition.entites):
           valid=0
           if cr == 'oui' :
             self.cr.fatal(''.join(("Nuplet : ",self.nom,tr("Longueur incorrecte"))))
@@ -118,7 +118,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
       """
       # Un nuplet est toujours une liste de mots cles simples
       # On retourne donc la valeur
-      return self.mc_liste[key].valeur
+      return self.mcListe[key].valeur
 
    def __str__(self):
       """
@@ -126,7 +126,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
            de caracteres
       """
       s='('
-      for e in self.mc_liste:
+      for e in self.mcListe:
         s=s + str(e.valeur) + ','
       return s + ')'
 
@@ -136,7 +136,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
            de caracteres
       """
       s='('
-      for e in self.mc_liste:
+      for e in self.mcListe:
         s=s + str(e.valeur) + ','
       return s + ')'
 
@@ -178,7 +178,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
           des mots cle simples contenus.
       """
       l=[]
-      for v in self.mc_liste:
+      for v in self.mcListe:
          l.append(v.valeur)
       return l
 
@@ -188,7 +188,7 @@ class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
           Elle est utilisee par la methode getMocle
       """
       l=[]
-      for v in self.mc_liste:
+      for v in self.mcListe:
          l.append(v.valeur)
       return l
 
index 11439079fb749b3ff73387ad45fdf7cf03e8bdae..43bbbb8f2b9cd954f3a61c072c86abf782a083d6 100644 (file)
@@ -309,7 +309,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
       return
 
    def updateConcept(self,sd):
-      for child in self.mc_liste :
+      for child in self.mcListe :
           child.updateConcept(sd)
 
    def deleteConcept(self,sd):
@@ -326,7 +326,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
       if self.reuse and self.reuse == sd:
         self.sd=self.reuse=None
         self.initModif()
-      for child in self.mc_liste :
+      for child in self.mcListe :
         child.deleteConcept(sd)
 
    def replaceConcept(self,old_sd,sd):
@@ -342,7 +342,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
       if self.reuse and self.reuse == old_sd:
         self.sd=self.reuse=sd
         self.initModif()
-      for child in self.mc_liste :
+      for child in self.mcListe :
         child.replaceConcept(old_sd,sd)
 
    def resetContext(self):
@@ -356,7 +356,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
       liste_sd = self.getSd_utilisees()
       l_noms = []
       if type(self.definition.sd_prod) == types.FunctionType:
-        d=self.creeDictValeurs(self.mc_liste)
+        d=self.creeDictValeurs(self.mcListe)
         try:
           classe_sd_prod = self.definition.sd_prod(*(), **d)
         except:
@@ -384,7 +384,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
         avant etape, sinon enleve la referea ces concepts
      """
      #print "verifExistenceSd",self.sd
-     for motcle in self.mc_liste :
+     for motcle in self.mcListe :
          motcle.verifExistenceSd()
 
    def updateMcGlobal(self):
index 10456f40475a4cfc888d821862c0b744efb07b24..b97ac8f8cfd7b9b56f5e50aa7dfe0fa0648fafb3 100644 (file)
@@ -37,7 +37,7 @@ class FORM_ETAPE(MACRO_ETAPE):
     interpreteur = interpreteur_formule.Interpreteur_Formule
 
     def MCBuild(self):
-        self.mc_liste=self.build_mc()
+        self.mcListe=self.buildMc()
         # on cree la liste des types autorises (liste des noms de mots-cles
         # simples dans le catalogue de FORMULE)
         self.l_types_autorises = list(self.definition.entites.keys())
@@ -54,17 +54,17 @@ class FORM_ETAPE(MACRO_ETAPE):
             - les arguments de la FORMULE
             - le corps de la FORMULE, cad son expression
         """
-        if len(self.mc_liste) == 0:
+        if len(self.mcListe) == 0:
             # pas de fils pour self --> la FORMULE est incomplete
             return None,None,None
         type_retourne="REEL"
-        if len(self.mc_liste) > 0:
-           child = self.mc_liste[0] # child est un MCSIMP 
+        if len(self.mcListe) > 0:
+           child = self.mcListe[0] # child est un MCSIMP 
            corps = child.getVal()
         else:
            corps = None
-        if len(self.mc_liste) > 1:
-           child = self.mc_liste[1]
+        if len(self.mcListe) > 1:
+           child = self.mcListe[1]
            l_args= child.getVal()
         else :
            l_args=None
@@ -248,8 +248,8 @@ class FORM_ETAPE(MACRO_ETAPE):
         self.type_retourne = formule[1]
         self.arguments = '('+formule[2]+')'
         self.corps = formule[3]
-        # il faut ajouter le mot-cle simple correspondant dans mc_liste
-        # pour cela on utilise la methode generale build_mc
+        # il faut ajouter le mot-cle simple correspondant dans mcListe
+        # pour cela on utilise la methode generale buildMc
         # du coup on est oblige de modifier le dictionnaire valeur de self ...
         self.valeur = {}
         self.valeur[self.type_retourne] = self.arguments+' = ' + self.corps
@@ -266,8 +266,8 @@ class FORM_ETAPE(MACRO_ETAPE):
     # corps de la fonction
     # il faut aussi que les arguments soient sous forme de tuple
     def updateFormulePython(self,formule):
-        self.build_mc()
-        self.mc_liste=[]
+        self.buildMc()
+        self.mcListe=[]
         if len(formule) < 4 :
            return 0
         arguments=formule[3]
@@ -288,7 +288,7 @@ class FORM_ETAPE(MACRO_ETAPE):
             child=self.definition.entites[k](None,nom=k,parent=self)
             child.valeur=mocles[k]
             child.state = 'modified'
-            self.mc_liste.append(child)
+            self.mcListe.append(child)
            
         self.corps = formule[2]
         self.type_retourne = formule[1]
index e8e30416fa2d0eb4e8ca723a2f3694b1af268aea..e8079a7c9be270addffe9c2bc172df27df8247b4 100644 (file)
@@ -140,10 +140,10 @@ class MCCOMPO(I_OBJECT.OBJECT):
   def listeMcPresents(self):
     """ 
        Retourne la liste des noms des mots-cles fils de self presents construite
-       a partir de self.mc_liste 
+       a partir de self.mcListe 
     """
     l=[]
-    for v in self.mc_liste:
+    for v in self.mcListe:
       k=v.nom
       l.append(k)
     return l
@@ -163,6 +163,18 @@ class MCCOMPO(I_OBJECT.OBJECT):
           index=index+1
       return index
           
+  def findRangObjetDsArbre(self,objet) :
+  # uniquement pour Pyxb
+  # parcourt les Blocs
+      leRang=0
+      pos=self.mcListe.index(objet)
+      i=0
+      while (i+1) < pos :
+        leRang= leRang + self.mcListe[i].longueurDsArbre()
+        i=i+1
+      return leRang
+
   def ordonneListeMc(self,listeMc_a_ordonner,liste_noms_mc_ordonnee):
     """
         Retourne listeMc_a_ordonner ordonnee suivant l'ordre 
@@ -186,14 +198,14 @@ class MCCOMPO(I_OBJECT.OBJECT):
         Retourne 1 si la suppression a pu etre effectuee,
         Retourne 0 dans le cas contraire
     """
-    if not objet in self.mc_liste:
-       # Impossible de supprimer objet. Il n'est pas dans mc_liste
+    if not objet in self.mcListe:
+       # Impossible de supprimer objet. Il n'est pas dans mcListe
        return 0
 
     self.initModif()
-    self.mc_liste.remove(objet)
-    CONNECTOR.Emit(self,"supp",objet)
     objet.deletePyxbObject()
+    self.mcListe.remove(objet)
+    CONNECTOR.Emit(self,"supp",objet)
     objet.deleteMcGlobal()
     objet.updateConditionBloc()
     objet.supprime()
@@ -238,11 +250,12 @@ class MCCOMPO(I_OBJECT.OBJECT):
          # Le mot cle n'existe pas encore. On l'ajoute a la position
          # demandee (pos)
          if pos == None :
-           self.mc_liste.append(objet)
+           self.mcListe.append(objet)
          else :
-           self.mc_liste.insert(pos,objet)
+           self.mcListe.insert(pos,objet)
          # Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
          objet.reparent(self)
+         objet.addPyxbObject(self.findRangObjetDsArbre(objet))
          CONNECTOR.Emit(self,"add",objet)
          objet.updateMcGlobal()
          objet.updateConditionBloc()
@@ -289,7 +302,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
       return 1
 
   def updateConcept(self,sd):
-    for child in self.mc_liste :
+    for child in self.mcListe :
         child.updateConcept(sd)
 
   def deleteConcept(self,sd):
@@ -302,7 +315,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
         Seuls les mots cles simples MCSIMP font un traitement autre que 
         de transmettre aux fils
     """
-    for child in self.mc_liste :
+    for child in self.mcListe :
       child.deleteConcept(sd)
 
   def replaceConcept(self,old_sd,sd):
@@ -314,7 +327,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
         Mettre a jour les fils de l objet suite au remplacement  du
         concept old_sd
     """
-    for child in self.mc_liste :
+    for child in self.mcListe :
       child.replaceConcept(old_sd,sd)
 
   def getListeMcInconnus(self):
@@ -325,7 +338,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
      if self.reste_val != {}:
         for k,v in self.reste_val.items() :
             l_mc.append([self,k,v])
-     for child in self.mc_liste :
+     for child in self.mcListe :
         if child.isValid() : continue
         l_child = child.getListeMcInconnus()
         for mc in l_child:
@@ -340,7 +353,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
         des blocs conditionnels par appel de la methode updateConditionBloc
      """
      self._updateConditionBloc()
-     for mcobj in self.mc_liste:
+     for mcobj in self.mcListe:
         if hasattr(mcobj,"deepUpdateConditionBloc"):
            mcobj.deepUpdateConditionBloc()
 
@@ -356,7 +369,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
      """
         Realise l'update des blocs conditionnels fils de self
      """
-     dict = self.creeDictCondition(self.mc_liste,condition=1)
+     dict = self.creeDictCondition(self.mcListe,condition=1)
      for k,v in self.definition.entites.items():
         if v.label != 'BLOC' :continue
         globs= self.jdc and self.jdc.condition_context or {}
@@ -384,7 +397,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
     """
     liste_ajouts = []
     liste_retraits = []
-    dict = self.creeDictCondition(self.mc_liste,condition=1)
+    dict = self.creeDictCondition(self.mcListe,condition=1)
     for k,v in self.definition.entites.items():
       if v.label=='BLOC' :
         globs= self.jdc and self.jdc.condition_context or {}
@@ -405,7 +418,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
         Verifie que les structures de donnees utilisees dans self existent bien dans le contexte
         avant etape, sinon enleve la reference a ces concepts
      """
-     for motcle in self.mc_liste :
+     for motcle in self.mcListe :
          motcle.verifExistenceSd()
 
   def updateMcGlobal(self):
@@ -415,11 +428,11 @@ class MCCOMPO(I_OBJECT.OBJECT):
         Un mot cle compose ne peut pas etre global. Il se contente de passer
         la requete a ses fils.
      """
-     for motcle in self.mc_liste :
+     for motcle in self.mcListe :
          motcle.updateMcGlobal()
 
   def deleteMcGlobal(self):
-     for motcle in self.mc_liste :
+     for motcle in self.mcListe :
          motcle.deleteMcGlobal()
      try :
          motcle.updateMcGlobal()
index 7c46b5898ed8e3bde5fd63947aec974d57d81038..13888db54a2dc2d7ae5082e2d7d112bf450d2915 100644 (file)
@@ -323,10 +323,11 @@ class MCSIMP(I_OBJECT.OBJECT):
          self.parent.updateConditionBloc()
 
   def setValeur(self,new_valeur,evaluation='oui'):
-        #print "setValeur",new_valeur
+        print ("setValeur Ihm/IMCSIMP ",new_valeur)
         self.initModif()
         self.valeur = new_valeur
         self.val = new_valeur
+        self.setValeurObjPyxb(new_valeur)
         self.updateConditionBloc()
         self.etape.modified()
         self.finModif()
index b1ef9173b953188cbf7f72271aea7ccb2eee70b0..4b46b5921159600f29b87cd4718f005aff02b55c 100644 (file)
@@ -58,7 +58,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE):
           Inputs :
              - sd=concept detruit
       """
-      for child in self.mc_liste :
+      for child in self.mcListe :
         child.deleteConcept(sd)
 
    def replaceConcept(self,old_sd,sd):
@@ -70,7 +70,7 @@ class PROC_ETAPE(I_ETAPE.ETAPE):
              - old_sd=concept remplace
              - sd=nouveau concept
       """
-      for child in self.mc_liste :
+      for child in self.mcListe :
         child.replaceConcept(old_sd,sd)
 
 #ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau
index f5e7d554de3234ee60560fbf78bcd3479236720f..a49edc416736e0cc6c239d5e4b2f93cb68f41fbd 100644 (file)
@@ -701,7 +701,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
 
     def onAdd(self,object):
         if self.JESUISOFF==1 : return
-        #print "onAdd pour ", self.item.nom, object.nom
+        #print ("onAdd pour ", self.item.nom, object)
         self.editor.initModif()
         self.updateNodes()
         # PN -- non necessaire si item=jdc
@@ -709,7 +709,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
  
     def onSupp(self,object):
         if self.JESUISOFF==1 : return
-        #print "onSup pour ", self.item.nom, object.nom
+        #print "onSup pour ", self.item.nom, object
         self.editor.initModif()
         self.updateNodes()
         # PN -- non necessaire si item=jdc
index b8bf53c02597d57471e8f225cb8bc12f7ce5b779..f41f7c073485cc0cf69ddee4b41c49e4e75fe277 100644 (file)
@@ -49,7 +49,7 @@ class BLOCTreeItem(compofact.FACTTreeItem):
   itemNode=Node
 
   #def get_objet(self,name) :
-  #    for v in self.object.mc_liste:
+  #    for v in self.object.mcListe:
   #        if v.nom == name : return v
   #    return None
     
index 0f770e3ed741435a6f2c0ecacd119ae1760e2bf3..8a9d66fbb5ca01237a6d6650abb814060fa72c63 100644 (file)
@@ -98,7 +98,7 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
       """
          Reactualise la liste des items fils stockes dans self.sublist
       """
-      liste=self.object.mc_liste
+      liste=self.object.mcListe
       sublist=[None]*len(liste)
       # suppression des items lies aux objets disparus
       for item in self.sublist:
index edec384455d32987721863ed9a7a5d3585d11ff7..d18af81b9b843a601e604986093f76e8626b2233 100644 (file)
@@ -113,7 +113,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem):
       Retourne les arguments de la FORMULE
       """
       args=""
-      for mot in self.object.mc_liste:
+      for mot in self.object.mcListe:
           if mot.nom == 'NOM_PARA':
              args=mot.valeur
              break
@@ -132,7 +132,7 @@ class FORMULETreeItem(compooper.EtapeTreeItem):
       Retourne le corps de la FORMULE
       """
       corps=""
-      for mot in self.object.mc_liste:
+      for mot in self.object.mcListe:
           if mot.nom == 'VALE':
              corps=mot.valeur
              break
index 7f93cc5baa14535333eb9a838b7264466adf74eb..c03704bf25e9ac9ef7650c9438abbce2d94538a3 100644 (file)
@@ -179,7 +179,7 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
       #  return self.labeltext, None, None #CS_pbruno todo
       
   #def get_objet(self,name) :
-  #    for v in self.object.mc_liste:
+  #    for v in self.object.mcListe:
   #        if v.nom == name : return v
   #    return None
       
@@ -226,7 +226,7 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
          Reactualise la liste des items fils stockes dans self.sublist
       """
       if self.isActif():
-         liste=self.object.mc_liste
+         liste=self.object.mcListe
       else:
          liste=[]
 
index c8f64871790c18127005fe276a7dbcc9a7158931..b1315229002ad5cdfa332ec277a2bbf26665f863 100644 (file)
@@ -143,7 +143,12 @@ class BLOC(N_ENTITE.ENTITE):
                     '\n', "Erreur dans la condition : ", self.condition, ''.join(l))
         else:
             return 0
-
+    
+    def longueurDsArbre(self):
+      longueur=0
+      for mc in self.mcListe : 
+         longueur = longueur + longueurDsArbre(mc)
+      return longueur
 
 def blocUtils():
     """Définit un ensemble de fonctions utilisables pour écrire les
index ca70e0a5a4d6d4df99bc8a783a10526b3352cc3f..4735edd3fad71c904a78be20972cf19037d1dfcb 100644 (file)
@@ -276,4 +276,3 @@ class ENTITE(object):
                 mcs.update(liste)
         print (self.nom, mcs) 
         return mcs
-
index a92b04f994386c9c913dc79607bf71ed0d05d5c6..052bd5280149b7e005406c738f378daac8daab85 100644 (file)
@@ -120,9 +120,9 @@ class ETAPE(N_MCCOMPO.MCCOMPO):
     def MCBuild(self):
         """
            Demande la construction des sous-objets et les stocke dans l'attribut
-           mc_liste.
+           mcListe.
         """
-        self.mc_liste = self.build_mc()
+        self.mcListe = self.buildMc()
 
     def buildSd(self, nom):
         """
@@ -183,12 +183,12 @@ class ETAPE(N_MCCOMPO.MCCOMPO):
                        on construit le sd a partir de cette classe
                        et on le retourne
                      - cas 2 : il s'agit d'une fonction
-                       on l'evalue avec les mots-cles de l'etape (mc_liste)
+                       on l'evalue avec les mots-cles de l'etape (mcListe)
                        on construit le sd a partir de la classe obtenue
                        et on le retourne
         """
         if type(self.definition.sd_prod) == types.FunctionType:
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             try:
                 sd_prod = self.definition.sd_prod(*(), **d)
             except EOFError:
@@ -233,11 +233,11 @@ Causes possibles :
                 il s'agit d'une sous classe de ASSD
                 on retourne le nom de la classe
               - cas 2 : il s'agit d'une fonction
-                on l'evalue avec les mots-cles de l'etape (mc_liste)
+                on l'evalue avec les mots-cles de l'etape (mcListe)
                 et on retourne son resultat
         """
         if type(self.definition.sd_prod) == types.FunctionType:
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             sd_prod = self.definition.sd_prod(*(), **d)
         else:
             sd_prod = self.definition.sd_prod
@@ -368,11 +368,11 @@ Causes possibles :
         etape.reuse = None
         etape.sdnom = None
         etape.etape = etape
-        etape.mc_liste = []
-        for objet in self.mc_liste:
+        etape.mcListe = []
+        for objet in self.mcListe:
             new_obj = objet.copy()
             new_obj.reparent(etape)
-            etape.mc_liste.append(new_obj)
+            etape.mcListe.append(new_obj)
         return etape
 
     def copyReuse(self, old_etape):
@@ -394,7 +394,7 @@ Causes possibles :
         self.parent = parent
         self.jdc = parent.getJdcRoot()
         self.etape = self
-        for mocle in self.mc_liste:
+        for mocle in self.mcListe:
             mocle.reparent(self)
         if self.sd and self.reuse == None:
             self.sd.jdc = self.jdc
index ac01fddfc7d21b6078a8352b4726a73e8ba37b69..793fe07e1261e2308b6ae6f0895856879fd61168 100644 (file)
@@ -159,7 +159,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE):
                    on construit le sd a partir de cette classe
                    et on le retourne
            - cas 2 : sd_prod est une fonction
-                   on l'evalue avec les mots-cles de l'etape (mc_liste)
+                   on l'evalue avec les mots-cles de l'etape (mcListe)
                    on construit le sd a partir de la classe obtenue
                    et on le retourne
         """
@@ -167,7 +167,7 @@ class MACRO_ETAPE(N_ETAPE.ETAPE):
         self.typret = None
 
         if type(self.definition.sd_prod) == types.FunctionType:
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             try:
                 # la sd_prod d'une macro a l'objet macro_etape lui meme en premier argument
                 # Comme sd_prod peut invoquer la methode typeSDProd qui ajoute
@@ -224,14 +224,14 @@ Causes possibles :
                       il s'agit d'une sous classe de ASSD
                       on retourne le nom de la classe
                - cas 2 : il s'agit d'une fonction
-                      on l'evalue avec les mots-cles de l'etape (mc_liste)
+                      on l'evalue avec les mots-cles de l'etape (mcListe)
                       et on retourne son resultat
         """
         if not force and hasattr(self, 'typret'):
             return self.typret
 
         if type(self.definition.sd_prod) == types.FunctionType:
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             # Comme sd_prod peut invoquer la methode typeSDProd qui ajoute
             # les concepts produits dans self.sdprods, il faut le mettre a zero
             self.sdprods = []
index ec8744fa17e78b3553ba59f3594372100cc203c0..a03054144ef4ef73b35304a08dcd4438116e31f4 100644 (file)
@@ -53,7 +53,7 @@ class MCBLOC(N_MCCOMPO.MCCOMPO):
             - parent : le créateur du bloc. Ce peut etre un mot-clé facteur ou un autre objet composite de type
                        OBJECT. Si parent vaut None, le bloc ne possède pas de contexte englobant.
 
-            - mc_liste : liste des sous-objets du bloc construite par appel à la méthode build_mc
+            - mcListe : liste des sous-objets du bloc construite par appel à la méthode buildMc
 
         """
         #print ('MCBLOC' ,  val, definition, nom, parent)
@@ -73,13 +73,13 @@ class MCBLOC(N_MCCOMPO.MCCOMPO):
             self.jdc = None
             self.niveau = None
             self.etape = None
-        self.mc_liste = self.build_mc()
+        self.mcListe = self.buildMc()
 
     def getValeur(self):
         """
            Retourne la "valeur" de l'objet bloc. Il s'agit d'un dictionnaire dont
-           les clés seront les noms des objets de self.mc_liste et les valeurs
-           les valeurs des objets de self.mc_liste obtenues par application de
+           les clés seront les noms des objets de self.mcListe et les valeurs
+           les valeurs des objets de self.mcListe obtenues par application de
            la méthode getValeur.
 
            Dans le cas particulier d'un objet bloc les éléments du dictionnaire
@@ -88,7 +88,7 @@ class MCBLOC(N_MCCOMPO.MCCOMPO):
 
         """
         dico = {}
-        for mocle in self.mc_liste:
+        for mocle in self.mcListe:
             if mocle.isBLOC():
                 # Si mocle est un BLOC, on inclut ses items dans le dictionnaire
                 # représentatif de la valeur de self. Les mots-clés fils de blocs sont
index c99d57d65551383120dc1c6e7edb0a562a056845..e0cfed830b0928df4701e25d819e789371f62974 100644 (file)
@@ -36,7 +36,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
 
     """
 
-    def build_mc(self):
+    def buildMc(self):
         """
             Construit la liste des sous-entites du MCCOMPO
             à partir du dictionnaire des arguments (valeur)
@@ -44,10 +44,10 @@ class MCCOMPO(N_OBJECT.OBJECT):
         
         #import traceback
         #traceback.print_stack()
-        #print(("MCCOMPO.build_mc _____________________________________", self.nom))
+        #print(("MCCOMPO.buildMc _____________________________________", self.nom))
         #print (self.dicoPyxbDeConstruction)
         if CONTEXT.debug:
-            print(("MCCOMPO.build_mc ", self.nom))
+            print(("MCCOMPO.buildMc ", self.nom))
         # Dans la phase de reconstruction args peut contenir des mots-clés
         # qui ne sont pas dans le dictionnaire des entites de definition (self.definition.entites)
         # de l'objet courant (self)
@@ -55,7 +55,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
         # (petits-fils, ...)
         args = self.valeur
         if args == None: args = {}
-        mc_liste = []
+        mcListe = []
         
 
         # On recopie le dictionnaire des arguments pour protéger l'original des
@@ -86,7 +86,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
                 else :
                    objPyxbDeConstruction=None
                 objet = v(val=args.get(k, None), nom=k, parent=self,objPyxbDeConstruction=objPyxbDeConstruction)
-                mc_liste.append(objet)
+                mcListe.append(objet)
                 # Si l'objet a une position globale on l'ajoute aux listes
                 # correspondantes
                 if hasattr(objet.definition, 'position'):
@@ -114,13 +114,13 @@ class MCCOMPO(N_OBJECT.OBJECT):
                 else :
                    dicoPyxbDeConstruction=None
                 objet = v(val=args.get(k, None), nom=k, parent=self,dicoPyxbDeConstruction=dicoPyxbDeConstruction)
-                mc_liste.append(objet)
+                mcListe.append(objet)
             if k in args:
                 del args[k]
 
         # Phase 2:
         # On construit les objets (en général, blocs) conditionnés par les mots-clés précédemment créés.
-        # A ce stade, mc_liste ne contient que les fils de l'objet courant
+        # A ce stade, mcListe ne contient que les fils de l'objet courant
         # args ne contient plus que des mots-clés qui n'ont pas été attribués car ils sont
         #      à attribuer à des blocs du niveau inférieur ou bien sont des mots-clés erronés
         for k, v in list(self.definition.entites.items()):
@@ -132,35 +132,35 @@ class MCCOMPO(N_OBJECT.OBJECT):
             #PNPN on recalcule dico_valeurs dans le for
             # pour les globaux imbriques (exple Telemac Advection)
             # avant le calcul etait avant le for
-            dico_valeurs = self.creeDictCondition(mc_liste, condition=1)
+            dico_valeurs = self.creeDictCondition(mcListe, condition=1)
             globs = self.jdc and self.jdc.condition_context or {}
             if v.verifPresence(dico_valeurs, globs):
                     # Si le bloc existe :
                     #        1- on le construit
-                    #        2- on l'ajoute à mc_liste
+                    #        2- on l'ajoute à mcListe
                     #        3- on récupère les arguments restant
-                    # 4- on reconstruit le dictionnaire équivalent à mc_liste
+                    # 4- on reconstruit le dictionnaire équivalent à mcListe
                 bloc = v(nom=k, val=args, parent=self,dicoPyxbDeConstruction=self.dicoPyxbDeConstruction)
-                mc_liste.append(bloc)
+                mcListe.append(bloc)
                 args = bloc.reste_val
                 # On ne recalcule pas le contexte car on ne tient pas compte des blocs
                 # pour évaluer les conditions de présence des blocs
-                # dico_valeurs = self.creeDictValeurs(mc_liste)
+                # dico_valeurs = self.creeDictValeurs(mcListe)
 
         # On conserve les arguments superflus dans l'attribut reste_val
         self.reste_val = args
         # On ordonne la liste ainsi créée suivant l'ordre du catalogue
         # (utile seulement pour IHM graphique)
-        mc_liste = self.ordonneListe(mc_liste)
+        mcListe = self.ordonneListe(mcListe)
         # on retourne la liste ainsi construite
         self.cata=self.jdc.cata
-        self.buildObjPyxb(mc_liste)
+        self.buildObjPyxb(mcListe)
         #else : print ('pas de construction pour ', self.nom, self.objPyxbDeConstruction)
         #print ('buildObjPyxb : ' , self.nom)
-        print(("MCCOMPO.build_mc fin_____________________________________", self.nom))
-        return mc_liste
+        #print(("MCCOMPO.buildMc fin_____________________________________", self.nom))
+        return mcListe
 
-    def ordonneListe(self, mc_liste):
+    def ordonneListe(self, mcListe):
         """
            Ordonne la liste suivant l'ordre du catalogue.
            Seulement pour IHM graphique
@@ -168,9 +168,9 @@ class MCCOMPO(N_OBJECT.OBJECT):
         if self.jdc and self.jdc.cata_ordonne_dico != None:
             liste_noms_mc_ordonnee = self.getListeMcOrdonneeBrute(
                 self.getGenealogie(), self.jdc.cata_ordonne_dico)
-            return self.ordonneListeMc(mc_liste, liste_noms_mc_ordonnee)
+            return self.ordonneListeMc(mcListe, liste_noms_mc_ordonnee)
         else:
-            return mc_liste
+            return mcListe
 
     def creeDictValeurs(self, liste=[], condition=0):
         """
@@ -194,7 +194,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
              - ajouter tous les mots-clés globaux (attribut position = 'global'
                et 'global_jdc')
 
-          L'argument liste est, en général, une mc_liste en cours de
+          L'argument liste est, en général, une mcListe en cours de
           construction, contenant les mots-clés locaux et les blocs déjà créés.
 
         """
@@ -246,9 +246,9 @@ class MCCOMPO(N_OBJECT.OBJECT):
         return dico
 
     def creeDictToutesValeurs(self):
-        """Semblable à `creeDictValeurs(liste=self.mc_liste)` en supprimant les
+        """Semblable à `creeDictValeurs(liste=self.mcListe)` en supprimant les
         valeurs None."""
-        dico = self.creeDictValeurs(self.mc_liste, condition=0)
+        dico = self.creeDictValeurs(self.mcListe, condition=0)
         dico = dict([(k, v) for k, v in list(dico.items()) if v is not None])
         return dico
 
@@ -310,7 +310,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
            etre correctement détruit par le garbage collector
         """
         N_OBJECT.OBJECT.supprime(self)
-        for child in self.mc_liste:
+        for child in self.mcListe:
             child.supprime()
 
     def __getitem__(self, key):
@@ -327,7 +327,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
         """
         # on cherche dans les mots cles presents, le mot cle de nom key
         # s'il est là on retourne sa valeur (méthode getVal)
-        for child in self.mc_liste:
+        for child in self.mcListe:
             if child.nom == key:
                 return child.getValeur()
         #  Si on n a pas trouve de mot cle present on retourne le defaut
@@ -352,7 +352,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
         #  Si on a toujours rien trouve, on cherche dans les blocs presents
         #  On suppose que tous les blocs possibles ont ete crees meme ceux
         #  induits par un mot cle simple absent avec defaut (???)
-        for mc in self.mc_liste:
+        for mc in self.mcListe:
             if not mc.isBLOC():
                 continue
             try:
@@ -367,11 +367,11 @@ class MCCOMPO(N_OBJECT.OBJECT):
     def getChild(self, name, restreint='non'):
         """
             Retourne le fils de self de nom name ou None s'il n'existe pas
-            Si restreint vaut oui : ne regarde que dans la mc_liste
+            Si restreint vaut oui : ne regarde que dans la mcListe
             Si restreint vaut non : regarde aussi dans les entites possibles
             avec defaut (Ce dernier cas n'est utilisé que dans le catalogue)
         """
-        for v in self.mc_liste:
+        for v in self.mcListe:
             if v.nom == name:
                 return v
         if restreint == 'non':
@@ -412,11 +412,11 @@ class MCCOMPO(N_OBJECT.OBJECT):
         # est acceptee
         objet.valeur = copy(self.valeur)
         objet.val = copy(self.val)
-        objet.mc_liste = []
-        for obj in self.mc_liste:
+        objet.mcListe = []
+        for obj in self.mcListe:
             new_obj = obj.copy()
             new_obj.reparent(objet)
-            objet.mc_liste.append(new_obj)
+            objet.mcListe.append(new_obj)
         return objet
 
     def reparent(self, parent):
@@ -426,7 +426,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
         self.parent = parent
         self.jdc = parent.getJdcRoot()
         self.etape = parent.etape
-        for mocle in self.mc_liste:
+        for mocle in self.mcListe:
             mocle.reparent(self)
 
     def getSd_utilisees(self):
@@ -435,7 +435,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
           ( comme valorisation d'un MCS)
         """
         l = []
-        for child in self.mc_liste:
+        for child in self.mcListe:
             l.extend(child.getSd_utilisees())
         return l
 
@@ -452,7 +452,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
                     'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
         """
         dico = {}
-        for child in self.mc_liste:
+        for child in self.mcListe:
             daux = child.getSd_mcs_utilisees()
             for cle in daux:
                 dico[cle] = dico.get(cle, [])
@@ -467,7 +467,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
            instances de la classe CO
         """
         l = []
-        for child in self.mc_liste:
+        for child in self.mcListe:
             l.extend(child.getMcsWithCo(co))
         return l
 
@@ -476,7 +476,7 @@ class MCCOMPO(N_OBJECT.OBJECT):
            Cette methode retourne tous les concepts instances de CO
         """
         l = []
-        for child in self.mc_liste:
+        for child in self.mcListe:
             l.extend(child.getAllCo())
         return l
 
index dad024a46e561402675e999c9eaba5d123eea9ba..52be431306d321b9e7ce88d3dc5b54abe2f01cf4 100644 (file)
@@ -66,7 +66,7 @@ class MCFACT(N_MCCOMPO.MCCOMPO):
             self.jdc = None
             self.niveau = None
             self.etape = None
-        self.mc_liste = self.build_mc()
+        self.mcListe = self.buildMc()
 
     def GETVAL(self, val):
         """
index 97b5caf2ed8f409d37b58d0d86f2231d7eb01132..5d693ed98e017bf5db2c0bac7c06385bb626ac5d 100644 (file)
@@ -98,11 +98,11 @@ class MCList(UserList):
         """
         obj = self.data[0]
         # Phase 1 : on cherche dans les fils directs de obj
-        for child in obj.mc_liste:
+        for child in obj.mcListe:
             if child.nom == name:
                 return child
         # Phase 2 : on cherche dans les blocs de self
-        for child in obj.mc_liste:
+        for child in obj.mcListe:
             if child.isBLOC():
                 resu = child.getChild(name)
                 if resu != None:
@@ -236,9 +236,13 @@ class MCList(UserList):
         """
         dresu = []
         for mcf in self:
-            dico = mcf.creeDictValeurs(mcf.mc_liste)
+            dico = mcf.creeDictValeurs(mcf.mcListe)
             for i in list(dico.keys()):
                 if dico[i] == None:
                     del dico[i]
             dresu.append(dico)
         return dresu
+    
+    def longueurDsArbre(self):
+    # pour Pyxb : longueur  dans le orderedcontent de pyxb
+        return len(self)
index c1fb1973801aa0b2daca903893c7b91a4f57a9d5..8765539fa91a44d93224a6c988de53efc375b508 100644 (file)
@@ -72,11 +72,6 @@ class OBJECT(object):
         """
         return self
 
-    def isBLOC(self):
-        """
-            Indique si l'objet est un BLOC
-        """
-        return 0
 
     def getJdcRoot(self):
         """
@@ -105,6 +100,16 @@ class OBJECT(object):
         self.parent = parent
         self.jdc = parent.jdc
 
+    def isBLOC(self):
+        """
+            Indique si l'objet est un BLOC
+            surcharge dans MCBLOC
+        """
+        return 0
+
+    def longueurDsArbre(self):
+      return 1
+
 
 class ErrorObj(OBJECT):
 
@@ -116,7 +121,7 @@ class ErrorObj(OBJECT):
         self.definition = definition
         self.valeur = valeur
         self.parent = parent
-        self.mc_liste = []
+        self.mcListe = []
         if parent:
             self.jdc = self.parent.jdc
             # self.niveau = self.parent.niveau
@@ -138,3 +143,5 @@ class ErrorObj(OBJECT):
         self.cr.fatal(_(u"Type non autorisé pour le mot-clé %s : '%s'"),
                       self.nom, self.valeur)
         return self.cr
+
+
index 39337820bb7862908bfc126105511a8bf1ee2c13..75479958a197bf571a56b3dd9c7470c3e32e3691 100644 (file)
@@ -52,7 +52,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO):
 
     def validChild(self):
         """ Cette methode teste la validite des mots cles de l'etape """
-        for child in self.mc_liste:
+        for child in self.mcListe:
             if not child.isValid():
                 return 0
         return 1
@@ -171,7 +171,7 @@ class ETAPE(V_MCCOMPO.MCCOMPO):
         """
         sd_prod = self.definition.sd_prod
         if type(sd_prod) == types.FunctionType:  # Type de concept retourne calcule
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             try:
                 sd_prod = sd_prod(*(), **d)
             except:
@@ -243,10 +243,10 @@ class ETAPE(V_MCCOMPO.MCCOMPO):
                 traceback.print_exc()
             self.cr.fatal('Command : %s line : %r file : %r %s' % (tr(self.nom), self.appel[0], self.appel[1], e))
         i = 0
-        for child in self.mc_liste:
+        for child in self.mcListe:
             i += 1
             if i > MAXSIZE:
-                print (MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mc_liste)))
+                print (MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mcListe)))
                 break
             self.cr.add(child.report())
         return self.cr
index b3a20f6b7f6c4435102513383029f6d9ccb96c0a..f389055520921547fb82e6b05028fbb42ce6aae8 100644 (file)
@@ -140,7 +140,7 @@ class MACRO_ETAPE(V_ETAPE.ETAPE):
         self.typret = None
         if type(sd_prod) == types.FunctionType:
             # Type de concept retourne calcule
-            d = self.creeDictValeurs(self.mc_liste)
+            d = self.creeDictValeurs(self.mcListe)
             try:
                 # la sd_prod d'une macro a l'objet lui meme en premier argument
                 # contrairement a une ETAPE ou PROC_ETAPE
index a77d199d82fcb92923650462f6cd9539c732e5a9..5741e579cf9c38a0f4ff91902f99cffe068b8e42 100644 (file)
@@ -60,7 +60,7 @@ class MCBLOC(V_MCCOMPO.MCCOMPO):
                 old_valid = self.valid
             else:
                 old_valid = None
-            for child in self.mc_liste:
+            for child in self.mcListe:
                 if not child.isValid():
                     valid = 0
                     break
index e943d6238c9affdc340d788aa5b253f88c0a0713..d1cc11137e5773c4fdece805c7dc299cfd90281e 100644 (file)
@@ -44,7 +44,7 @@ from Noyau.N_Exception import AsException
 class MCCOMPO(object):
 
     """
-        L'attribut mc_liste a ete cree par une classe derivee de la
+        L'attribut mcListe a ete cree par une classe derivee de la
         classe MCCOMPO du Noyau
     """
 
@@ -71,10 +71,10 @@ class MCCOMPO(object):
         self.cr.debut = self.txt_nat + self.nom
         self.cr.fin = "END " + self.txt_nat + self.nom
         i = 0
-        for child in self.mc_liste:
+        for child in self.mcListe:
             i += 1
             if i > MAXSIZE:
-                print(MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mc_liste)))
+                print(MAXSIZE_MSGCHK.format(MAXSIZE, len(self.mcListe)))
                 break
             self.cr.add(child.report())
         self.state = 'modified'
@@ -111,7 +111,7 @@ class MCCOMPO(object):
 
     def dictMcPresents(self, restreint='non'):
         """
-            Retourne le dictionnaire {mocle : objet} construit a partir de self.mc_liste
+            Retourne le dictionnaire {mocle : objet} construit a partir de self.mcListe
             Si restreint == 'non' : on ajoute tous les mots-cles simples du catalogue qui ont
             une valeur par defaut
             Si restreint == 'oui' : on ne prend que les mots-cles effectivement entres par
@@ -120,7 +120,7 @@ class MCCOMPO(object):
         dico = {}
         # on ajoute les couples {nom mot-cle:objet mot-cle} effectivement
         # presents
-        for v in self.mc_liste:
+        for v in self.mcListe:
             if v == None:
                 continue
             k = v.nom
index d10945e1eb4f7259fa1f88abbe131907ad2e7200..97698e7755e8de5bb6a67c3615ab25d85e2f5e2b 100644 (file)
@@ -60,7 +60,7 @@ class MCFACT(V_MCCOMPO.MCCOMPO):
                 old_valid = self.valid
             else:
                 old_valid = None
-            for child in self.mc_liste:
+            for child in self.mcListe:
                 if not child.isValid():
                     valid = 0
                     break
index 271a46ba0622e69f27f9fdeb938486120f6a0000..d73b31923ec5fe3724c235abebb6a1c5323ebac7 100644 (file)
@@ -37,7 +37,7 @@ JdC = JDC_CATA(code='VP',
 \r
   \r
 #---------------------------------\r
-Equation = PROC (nom="Equation",\r
+DataBase = PROC (nom="DataBase",\r
       op=None,\r
 #---------------------------------\r
       Equation_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ),\r
@@ -137,7 +137,7 @@ Equation = PROC (nom="Equation",
 ) # Fin Equation\r
 \r
 #---------------------------------\r
-Modele = PROC (nom="Modele",\r
+ODE = PROC (nom="ODE",\r
       op=None,\r
       Modele_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base"),siValide=lienDB.recupereDicoModele ),\r
       Modele_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show modele database", "Modele creation"),siValide=lienDB.creeListeEquation),\r
@@ -278,7 +278,7 @@ Modele = PROC (nom="Modele",
       Commentaire =  SIMP (statut = 'f', typ = 'TXM'),\r
 ) # Fin Modele\r
 #---------------------------------\r
-Posttraitement = PROC (nom="Posttraitement",\r
+AnalyticModel = PROC (nom="AnalyticModel",\r
       op=None,\r
       posttraitement_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ),\r
       posttraitement_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show post-traitement database", "post-traitement creation"),),\r
index 33c5cfdc6dd1a22a49a3992645432bd9ea30c745..05f4f643ebef33b624bfea30b52b512870cadf46 100644 (file)
@@ -37,7 +37,7 @@ encoding='iso-8859-1'
 catalogues=(
    ('VP','V1',os.path.join(repIni,'VP_Cata_V2.py'),'python','python'),
 )
-nombreDeBoutonParLigne=2
+nombreDeBoutonParLigne=3
 closeFrameRechercheCommande = True
 closeEntete = True 
 #closeArbre = True
index 87299eb596c62e7bd9809e4322c03b5a93ac25ea..59cee25caf3b0bad28d006fcc7c9df2cc6c4c1c9 100644 (file)
@@ -458,6 +458,7 @@ class TELEMACparser(Pythonparser):
 
 
    def tri(self, listeIn):
+      if len(listeIn) == 0 : return listeIn
       if len(listeIn) == 1 : return listeIn
       if self.Ordre_Des_Commandes == None : return listeIn
       listeOut=[listeIn[0],]