]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
CCAR: Modified Files:
authoreficas <>
Wed, 6 Nov 2002 17:29:35 +0000 (17:29 +0000)
committereficas <>
Wed, 6 Nov 2002 17:29:35 +0000 (17:29 +0000)
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.

Extensions/commande_comm.py
Extensions/commentaire.py
Extensions/etape_niveau.py
Extensions/jdc_include.py [new file with mode: 0644]
Extensions/parametre.py
Extensions/parametre_eval.py

index 28b91a3be0f8d8a5d48a29b750cc765aeb7aea73..ae97d9512b7ea193ae867756d4d576b3acd0fbeb 100644 (file)
@@ -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
index 993fda4331b8e6c84e2a19ace6fe877411514b45..d36328c63de23e12866a6dbb101aaaa4bff1e143 100644 (file)
@@ -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
+
index 675fb6b83b3db9b86e99c0c9a2cd88a5dd9de06f..fb109ec085b8ce07ee6b2f23ceb1ff32a9c60fe5 100644 (file)
@@ -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 (file)
index 0000000..b240693
--- /dev/null
@@ -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')
+                                          )
+                               )
+
+
index 20455bfe99009452b5b84bf32eff742d7697829d..3eff619cc6ddfca6c0eb0856bb09ffd40e445ed0 100644 (file)
@@ -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
+
 
 
 
index b45546d90f8db2455eff47e23d96bf5e2399ce5a..73228beeb235c5bbb3a89a73c3a9a80d7879f30b 100644 (file)
@@ -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()