From: eficas <> Date: Wed, 6 Nov 2002 17:29:35 +0000 (+0000) Subject: CCAR: Modified Files: X-Git-Tag: AY_av_utilites~33 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=578058947e04a832de2c3fbaad40acc063c283d5;p=tools%2Feficas.git CCAR: Modified Files: CCAR: commande_comm.py commentaire.py etape_niveau.py parametre.py CCAR: parametre_eval.py CCAR: Added Files: CCAR: jdc_include.py CCAR: ---------------------------------------------------------------------- CCAR : developpement pour traiter correctement l'insertion et la destruction des macros avec etapes et concepts inclus. Ces INCLUDEs sont evalués dans un JDC auxiliaire avant d'etre insérées définitivement dans la macro apres verification. --- diff --git a/Extensions/commande_comm.py b/Extensions/commande_comm.py index 28b91a3b..ae97d951 100644 --- a/Extensions/commande_comm.py +++ b/Extensions/commande_comm.py @@ -43,6 +43,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() @@ -245,3 +246,6 @@ class COMMANDE_COMM: """ pass + def control_sdprods(self,d): + """sans objet pour les commandes commentarisées""" + pass diff --git a/Extensions/commentaire.py b/Extensions/commentaire.py index 993fda43..d36328c6 100644 --- a/Extensions/commentaire.py +++ b/Extensions/commentaire.py @@ -44,6 +44,7 @@ class COMMENTAIRE : self.nom='' self.niveau = self.parent.niveau self.actif=1 + self.state="unchanged" self.register() def register(self): @@ -179,3 +180,7 @@ class COMMENTAIRE : """ return self.valeur.split('\n',1)[0] + def control_sdprods(self,d): + """sans objet """ + pass + diff --git a/Extensions/etape_niveau.py b/Extensions/etape_niveau.py index 675fb6b8..fb109ec0 100644 --- a/Extensions/etape_niveau.py +++ b/Extensions/etape_niveau.py @@ -37,6 +37,7 @@ class ETAPE_NIVEAU(N_OBJECT.OBJECT): self.etapes_niveaux = [] self.dict_niveaux={} self.editmode = 0 + self.state="undetermined" self.build_niveaux() def build_niveaux(self): diff --git a/Extensions/jdc_include.py b/Extensions/jdc_include.py new file mode 100644 index 00000000..b2406937 --- /dev/null +++ b/Extensions/jdc_include.py @@ -0,0 +1,85 @@ +""" + Ce module contient la classe JDC_INCLUDE qui sert a inclure + dans un jeu de commandes une partie de jeu de commandes + au moyen de la fonctionnalite INCLUDE ou INCLUDE_MATERIAU + Quand l'utilisateur veut inclure un fichier il faut versifier + que le jeu de commandes inclus est valide et compatible + avec le contexte avant et apres l'insertion +""" +from Accas import JDC,ASSD,AsException,JDC_CATA + + +class JDC_POURSUITE(JDC): + def __init__(self,definition=None,procedure=None,cata=None, + cata_ord_dico=None,parent=None, + nom='SansNom',appli=None,context_ini=None, + jdc_pere=None,etape_include=None,prefix_include=None,**args): + + JDC.__init__(self, definition=definition, + procedure=procedure, + cata=cata, + cata_ord_dico=cata_ord_dico, + parent=parent, + nom=nom, + appli=appli, + context_ini=context_ini, + **args + ) + self.jdc_pere=jdc_pere + self.etape_include=etape_include + self.prefix_include=prefix_include + + def NommerSdprod(self,sd,sdnom,restrict='non'): + """ + Nomme la SD apres avoir verifie que le nommage est possible : nom + non utilise + Ajoute un prefixe s'il est specifie (INCLUDE_MATERIAU) + Si le nom est deja utilise, leve une exception + Met le concept créé dans le concept global g_context + """ + if self.prefix_include: + if sdnom != self.prefix_include:sdnom=self.prefix_include+sdnom + o=self.sds_dict.get(sdnom,None) + if isinstance(o,ASSD): + raise AsException("Nom de concept deja defini : %s" % sdnom) + # Il faut verifier en plus que le jdc_pere apres l'etape etape_include + # ne contient pas deja un concept de ce nom + + mysd= self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include) + if mysd: + #if self.jdc_pere.get_sd_apres_etape(sdnom,etape=self.etape_include): + # Il existe un concept apres self => impossible d'inserer + raise AsException("Nom de concept deja defini : %s" % sdnom) + + # ATTENTION : Il ne faut pas ajouter sd dans sds car il s y trouve deja. + # Ajoute a la creation (appel de reg_sd). + self.sds_dict[sdnom]=sd + sd.nom=sdnom + + # En plus si restrict vaut 'non', on insere le concept dans le contexte du JDC + if restrict == 'non': + self.g_context[sdnom]=sd + +class JDC_INCLUDE(JDC_POURSUITE): + def active_etapes(self): + for e in self.etapes: + e.active() + +class JDC_CATA_INCLUDE(JDC_CATA): + class_instance=JDC_INCLUDE + +class JDC_CATA_POURSUITE(JDC_CATA): + class_instance=JDC_POURSUITE + +from Accas import AU_MOINS_UN,A_CLASSER + +JdC_include=JDC_CATA_INCLUDE(code='ASTER', execmodul=None) + +JdC_poursuite=JDC_CATA_POURSUITE(code='ASTER', execmodul=None, + regles = (AU_MOINS_UN('DEBUT','POURSUITE'), + AU_MOINS_UN('FIN'), + A_CLASSER(('DEBUT','POURSUITE'),'FIN') + ) + ) + + diff --git a/Extensions/parametre.py b/Extensions/parametre.py index 20455bfe..3eff619c 100644 --- a/Extensions/parametre.py +++ b/Extensions/parametre.py @@ -53,6 +53,7 @@ class PARAMETRE : self.jdc = self.parent = CONTEXT.get_current_step() self.niveau=self.parent.niveau self.actif=1 + self.state='undetermined' self.register() def interprete_valeur(self,val): @@ -272,6 +273,10 @@ class PARAMETRE : def verif_existence_sd(self): pass + def control_sdprods(self,d): + """sans objet """ + pass + diff --git a/Extensions/parametre_eval.py b/Extensions/parametre_eval.py index b45546d9..73228bee 100644 --- a/Extensions/parametre_eval.py +++ b/Extensions/parametre_eval.py @@ -56,6 +56,7 @@ class PARAMETRE_EVAL(parametre.PARAMETRE) : self.definition=self self.niveau = self.parent.niveau self.actif=1 + self.state='undetermined' # Ceci est-il indispensable ??? #self.appel = N_utils.callee_where(niveau=2) self.register()