]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
F.R: recette modifs CCa : correction bug sur la copie et les
authoreficas <>
Wed, 3 Apr 2002 12:36:15 +0000 (12:36 +0000)
committereficas <>
Wed, 3 Apr 2002 12:36:15 +0000 (12:36 +0000)
F.R: références à dezs concepts qui n'existent pas au niveau
F.R: d'arborscence où l'on copie la commande

Editeur/composimp.py
Ihm/I_ETAPE.py
Ihm/I_JDC.py
Ihm/I_MCCOMPO.py
Ihm/I_MCLIST.py
Ihm/I_MCSIMP.py

index bd6f6d2008cfb8f5d9a9347451f21653f40f4c35..7de92d862f792c36f10d940f28c7e67fcb64fa19 100644 (file)
@@ -913,10 +913,8 @@ class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel):
       """
       if self.parent.modified == 'n' : self.parent.init_modif()
       valeur = self.get_valeur()
-      print "valid_valeur ",valeur
       self.erase_valeur()
       anc_val = self.node.item.get_valeur()
-      print "anc_val ",anc_val
       test_CO=self.node.item.is_CO(anc_val)
       test = self.node.item.set_valeur(valeur)
       if not test :
index 35351a44554f6d2c0397e3af70f3e122220d7186..7929971b3d76662513a71b83575351d2f06736f7 100644 (file)
@@ -290,3 +290,32 @@ class ETAPE(I_MCCOMPO.MCCOMPO):
      for mocle in self.mc_liste:
         mocle.reparent(self)
 
+   def verif_existence_sd(self):
+     """
+        Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+       avant étape, sinon enlève la référence à ces concepts
+     """
+     for motcle in self.mc_liste :
+         motcle.verif_existence_sd()
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+     
+        
+     
index 1765b2c534b791a20ee3cdc8480b25c5c9267931..7e3fd61f5b31a7cac0435826f4eb585929ea0ad7 100644 (file)
@@ -127,6 +127,9 @@ class JDC(I_OBJECT.OBJECT):
             objet.parent.dict_niveaux[objet.nom_niveau_definition].register(objet)
             objet.niveau = objet.parent.dict_niveaux[objet.nom_niveau_definition]
         self.etapes.insert(pos,objet)
+       # il faut vérifier que les concepts utilisés par objet existent bien
+       # à ce niveau d'arborescence
+       objet.verif_existence_sd()
         self.active_etapes()
         self.editmode=0
         self.reset_context()
index 0473b10486f5cc824a72ff8735aecbb3e25805e1..b0278b9421e1e0577055ab0c9b41dbae5f3dc462 100644 (file)
@@ -369,3 +369,11 @@ class MCCOMPO(I_OBJECT.OBJECT):
      self.etape=parent.etape
      for mocle in self.mc_liste:
         mocle.reparent(self)
+
+  def verif_existence_sd(self):
+     """
+        Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+       avant étape, sinon enlève la référence à ces concepts
+     """
+     for motcle in self.mc_liste :
+         motcle.verif_existence_sd()
index 243992ce20361feb0527451c433ed17cde196ddc..db2e0552eaa7052848bdb6c9973235dab1a23e99 100644 (file)
@@ -146,7 +146,14 @@ class MCList:
      """
      self.parent=parent
      self.jdc=parent.jdc
-     self.etape=etape
+     self.etape=parent.etape
      for mcfact in self.data:
         mcfact.reparent(parent)
 
+  def verif_existence_sd(self):
+     """
+        Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+       avant étape, sinon enlève la référence à ces concepts
+     """
+     for motcle in self.data :
+         motcle.verif_existence_sd()
index 1875b989b7c66d38528358714c2d89c89a34a7c0..840c5934c69b6617ae273bbcda34f514132d1990 100644 (file)
@@ -254,9 +254,13 @@ class MCSIMP(I_OBJECT.OBJECT):
   def copy(self):
     """ Retourne une copie de self """
     objet = self.makeobjet()
-    #XXX est ce utile ??
-    objet.valeur = copy(self.valeur)
-    objet.val = copy(self.val)
+    # il faut copier les listes et les tuples mais pas les autres valeurs
+    # possibles (réel,SD,...)
+    if type(self.valeur) in (types.ListType,types.TupleType):
+       objet.valeur = copy(self.valeur)
+    else:
+       objet.valeur = self.valeur
+    objet.val = objet.valeur
     return objet
 
   def makeobjet(self):
@@ -321,3 +325,41 @@ class MCSIMP(I_OBJECT.OBJECT):
      self.jdc=parent.jdc
      self.etape=parent.etape
 
+  def verif_existence_sd(self):
+     """
+        Vérifie que les structures de données utilisées dans self existent bien dans le contexte
+       avant étape, sinon enlève la référence à ces concepts
+     """
+     l_sd_avant_etape = self.jdc.get_contexte_avant(self.etape).values()  
+     if type(self.valeur) in (types.TupleType,types.ListType) :
+       l=[]
+       for sd in self.valeur:
+         if isinstance(sd,ASSD) :
+           if sd in l_sd_avant_etape :
+              l.append(sd)
+        else:
+           l.append(sd)
+       self.valeur=l
+       self.init_modif()
+     else:
+       if isinstance(self.valeur,ASSD) :
+         if self.valeur not in l_sd_avant_etape :
+            self.valeur = None
+             self.init_modif()