From 394b8f66f1945e86b93f9889ad9f0bc8e7c75dea Mon Sep 17 00:00:00 2001 From: eficas <> Date: Thu, 16 Oct 2003 09:50:06 +0000 Subject: [PATCH] CCAR: mise a jour et simplification surcharge de Build_sd --- Ihm/I_ETAPE.py | 23 +++++++++++++++++++++++ Ihm/I_JDC_CATA.py | 1 + Ihm/I_MACRO_ETAPE.py | 27 ++++++++++++++++++++++++++- Ihm/I_PROC_ETAPE.py | 20 ++++++++++++++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) diff --git a/Ihm/I_ETAPE.py b/Ihm/I_ETAPE.py index 6528f0d3..bb831e35 100644 --- a/Ihm/I_ETAPE.py +++ b/Ihm/I_ETAPE.py @@ -283,6 +283,7 @@ class ETAPE(I_MCCOMPO.MCCOMPO): for child in self.mc_liste : child.replace_concept(old_sd,sd) +#ATTENTION SURCHARGE: cette methode doit etre gardée en synchronisation avec Noyau def make_register(self): """ Initialise les attributs jdc, id, niveau et réalise les @@ -380,7 +381,29 @@ class ETAPE(I_MCCOMPO.MCCOMPO): for motcle in self.mc_liste : motcle.verif_existence_sd() +#ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau def Build_sd(self,nom): + """ + Methode de Noyau surchargee pour poursuivre malgre tout + si une erreur se produit pendant la creation du concept produit + """ + try: + sd=Noyau.N_ETAPE.ETAPE.Build_sd(self,nom) + except AsException,e: + # 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 possibilités : + # 1. on annule la sd associée à 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 + + return self.sd + + def Build_sd_old(self,nom): """ Construit le concept produit de l'opérateur. Deux cas peuvent se présenter : diff --git a/Ihm/I_JDC_CATA.py b/Ihm/I_JDC_CATA.py index 751cacda..9057c9b8 100644 --- a/Ihm/I_JDC_CATA.py +++ b/Ihm/I_JDC_CATA.py @@ -23,6 +23,7 @@ class JDC_CATA: def __init__(self): self.l_noms_entites=[] +#ATTENTION SURCHARGE: cette methode doit etre synchronisée avec celle du Noyau def enregistre(self,commande): """ Cette méthode surcharge la méthode de la classe du Noyau diff --git a/Ihm/I_MACRO_ETAPE.py b/Ihm/I_MACRO_ETAPE.py index f301d6a2..fa7ed33e 100644 --- a/Ihm/I_MACRO_ETAPE.py +++ b/Ihm/I_MACRO_ETAPE.py @@ -268,8 +268,33 @@ class MACRO_ETAPE(I_ETAPE.ETAPE): # On met g_context à blanc self.g_context={} -#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro) +#ATTENTION SURCHARGE: a garder en synchro ou a reintegrer dans le Noyau def Build_sd(self,nom): + """ + Methode de Noyau surchargee pour poursuivre malgre tout + si une erreur se produit pendant la creation du concept produit + """ + try: + sd=Noyau.N_MACRO_ETAPE.MACRO_ETAPE.Build_sd(self,nom) + self.state="unchanged" + self.valid=1 + except AsException,e: + # 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 possibilités : + # 1. on annule la sd associée à self + # 2. on la conserve mais il faut la retourner + # On choisit de l'annuler + # En plus il faut rendre coherents sdnom et sd.nom + self.sd=None + self.sdnom=None + self.state="unchanged" + self.valid=0 + + return self.sd + +#ATTENTION : cette methode surcharge celle de Noyau (a garder en synchro ou a reintegrer) + def Build_sd_old(self,nom): """ Construit le concept produit de l'opérateur. Deux cas peuvent se présenter : diff --git a/Ihm/I_PROC_ETAPE.py b/Ihm/I_PROC_ETAPE.py index b9e18b1d..17a1720d 100644 --- a/Ihm/I_PROC_ETAPE.py +++ b/Ihm/I_PROC_ETAPE.py @@ -65,7 +65,27 @@ class PROC_ETAPE(I_ETAPE.ETAPE): 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): + """ + Methode de Noyau surchargee pour poursuivre malgre tout + si une erreur se produit pendant la creation du concept produit + """ + try: + sd=Noyau.N_PROC_ETAPE.PROC_ETAPE.Build_sd(self) + except AsException,e: + # 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 possibilités : + # 1. on annule la sd associée à 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 + + def Build_sd_old(self): """ Cette methode applique la fonction op_init au contexte du parent et lance l'exécution en cas de traitement commande par commande -- 2.39.2