Salome HOME
pb de check box
[tools/eficas.git] / Ihm / I_PROC_ETAPE.py
index b9e18b1d0311ab4c1a5cdfb5b137f438f0f65f81..86c298940760ecc2606beaf4b12d7047dcadb7fc 100644 (file)
@@ -1,32 +1,33 @@
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# 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.
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
 #
 #
-# 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.
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
 #
 #
-# 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.
+# This library 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
+# Lesser General Public License for more details.
 #
 #
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
 #
-# ======================================================================
-import I_ETAPE
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+from __future__ import absolute_import
+from . import I_ETAPE
 
 
 
 
-# import rajoutés suite à l'ajout de Build_sd --> à résorber
+# import rajoutes suite a l'ajout de Build_sd --> a resorber
 import sys
 import sys
-import traceback,types,string
+import traceback,types
 import Noyau
 from Noyau import N_Exception
 from Noyau.N_Exception import AsException
 import Noyau
 from Noyau import N_Exception
 from Noyau.N_Exception import AsException
-# fin import à résorber
+from Extensions.eficas_exception import EficasException
 
 class PROC_ETAPE(I_ETAPE.ETAPE):
    def get_sdname(self):
 
 class PROC_ETAPE(I_ETAPE.ETAPE):
    def get_sdname(self):
@@ -40,54 +41,55 @@ class PROC_ETAPE(I_ETAPE.ETAPE):
       """
       return None
 
       """
       return None
 
+   def supprime_sdprods(self):
+      """
+         Fonction: Lors d'une destruction d'etape, detruit tous les concepts produits
+         Une procedure n'en a aucun
+      """
+      return
+
    def delete_concept(self,sd):
       """
    def delete_concept(self,sd):
       """
-          Inputs :
-             - sd=concept detruit
-          Fonction :
-          Mettre a jour les mots cles de l etape 
-          suite à la disparition du concept sd
+          Fonction : Mettre a jour les mots cles de l etape 
+          suite a la disparition du concept sd
           Seuls les mots cles simples MCSIMP font un traitement autre
           que de transmettre aux fils
           Seuls les mots cles simples MCSIMP font un traitement autre
           que de transmettre aux fils
+
+          Inputs :
+             - sd=concept detruit
       """
       for child in self.mc_liste :
         child.delete_concept(sd)
 
    def replace_concept(self,old_sd,sd):
       """
       """
       for child in self.mc_liste :
         child.delete_concept(sd)
 
    def replace_concept(self,old_sd,sd):
       """
+          Fonction : Mettre a jour les mots cles de l etape
+          suite au remplacement du concept old_sd
+
           Inputs :
           Inputs :
-             - old_sd=concept remplacé
+             - old_sd=concept remplace
              - sd=nouveau concept
              - sd=nouveau concept
-          Fonction :
-          Mettre a jour les mots cles de l etape
-          suite au remplacement du concept old_sd
       """
       for child in self.mc_liste :
         child.replace_concept(old_sd,sd)
 
       """
       for child in self.mc_liste :
         child.replace_concept(old_sd,sd)
 
+#ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau
    def Build_sd(self):
       """
    def Build_sd(self):
       """
-          Cette methode applique la fonction op_init au contexte du parent
-          et lance l'exécution en cas de traitement commande par commande
-          Elle doit retourner le concept produit qui pour une PROC est toujours None
-          En cas d'erreur, elle leve une exception : AsException ou EOFError
+           Methode de Noyau surchargee pour poursuivre malgre tout
+           si une erreur se produit pendant la creation du concept produit
       """
       """
-      if not self.isactif():return
       try:
       try:
-         if self.parent:
-            if type(self.definition.op_init) == types.FunctionType: 
-               apply(self.definition.op_init,(self,self.parent.g_context))
-         else:
-            pass
-         if self.jdc.par_lot == "NON" :
-            self.Execute()
-      except AsException,e:
-        raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
-                              'fichier : ',self.appel[1],e)
-      except EOFError:
-        raise
-      except :
-        l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
-        raise AsException("Etape ",self.nom,'ligne : ',self.appel[0],
-                          'fichier : ',self.appel[1]+'\n',
-                          string.join(l))
+         sd=Noyau.N_PROC_ETAPE.PROC_ETAPE.Build_sd(self)
+      except AsException  :
+         # Une erreur s'est produite lors de la construction du concept
+         # Comme on est dans EFICAS, on essaie de poursuivre quand meme
+         # Si on poursuit, on a le choix entre deux possibilites :
+         # 1. on annule la sd associee a self
+         # 2. on la conserve mais il faut la retourner
+         # En plus il faut rendre coherents sdnom et sd.nom
+         self.sd=None
+         self.sdnom=None
+         self.state="unchanged"
+         self.valid=0
+