Salome HOME
CCAR: modifications pour :
[tools/eficas.git] / Extensions / commande_comm.py
index adbf3babdba402c19d050ed3c4f6b00ab5af32a7..317bb6a3f8e701211d4c5a49ca39c76d876640a7 100644 (file)
@@ -1,16 +1,31 @@
-#@ MODIF commande_comm Accas  DATE 02/07/2001   AUTEUR D6BHHJP J.P.LEFEBVRE 
+# -*- coding: utf-8 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-#              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-#              REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
 # ======================================================================
 import os,traceback,string
 
 from Noyau.N_CR import CR
 from Noyau.N_Exception import AsException
+from Noyau import N_OBJECT
+from Ihm import I_OBJECT
 
-class COMMANDE_COMM:
+class COMMANDE_COMM(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
     """
     Cette classe sert à définir les objets de type Commande commentarisée
     """
@@ -31,6 +46,7 @@ class COMMANDE_COMM:
         self.nom = ''
         self.niveau = self.parent.niveau
         self.actif=1
+        self.state="unchanged"
         #self.appel = N_utils.callee_where(niveau=2)
         if reg=='oui' : self.register()
             
@@ -143,6 +159,9 @@ class COMMANDE_COMM:
     def delete_concept(self,sd):
         pass
 
+    def replace_concept (self,old_sd,sd):
+        pass
+
     def get_sdprods(self,nom_sd):
         return None
 
@@ -150,8 +169,8 @@ class COMMANDE_COMM:
         """
         Cette méthode a pour but de décommentariser l'objet courant,
         cad de retourner un tuple contenant :
-        - l'objet CMD associé
-        - le nom de la sdprod éventuellement produite (sinon None)
+          - l'objet CMD associé
+          - le nom de la sdprod éventuellement produite (sinon None)
         """
         # on récupère le contexte avant la commande commentarisée
         context_ini = self.jdc.get_contexte_avant(self)
@@ -174,13 +193,23 @@ class COMMANDE_COMM:
             #self.jdc.set_context()
             print 'erreurs fatales !!!'
             raise AsException("Erreurs fatales",string.join(J.cr.crfatal))
+        if not J.etapes :
+            # des erreurs ont été rencontrées
+            raise AsException("Impossible reconstruire commande\n",str(J.cr))
         #self.jdc.set_context()
+
         new_etape = J.etapes[0]
         if new_etape.sd :
             nom_sd = new_etape.sd.nom
         else:
             nom_sd = None
-        return (new_etape.copy(),nom_sd)
+        #new_etape=new_etape.copy()
+        #print "uncomment",new_etape.sd
+
+        pos=self.parent.etapes.index(self)
+        self.parent.addentite(new_etape,pos)
+        self.parent.suppentite(self)
+        return new_etape,nom_sd
 
     def active(self):
         """
@@ -205,8 +234,8 @@ class COMMANDE_COMM:
           Evalue les conditions de tous les blocs fils possibles
           (en fonction du catalogue donc de la définition) de self et
           retourne deux listes :
-          - la première contient les noms des blocs à rajouter
-          - la seconde contient les noms des blocs à supprimer
+            - la première contient les noms des blocs à rajouter
+            - la seconde contient les noms des blocs à supprimer
       """
       return [],[]
 
@@ -217,3 +246,22 @@ class COMMANDE_COMM:
       """
       return []
 
+    def reparent(self,parent):
+      """
+          Cette methode sert a reinitialiser la parente de l'objet
+      """
+      self.parent=parent
+      self.jdc=parent.get_jdc_root()
+      self.etape=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
+        --> sans objet pour les commandes commentarisées
+      """
+      pass
+       
+    def control_sdprods(self,d):
+      """sans objet pour les commandes commentarisées"""
+      pass