]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PN : pour perfect
authoreficas <>
Tue, 20 Dec 2005 09:50:03 +0000 (09:50 +0000)
committereficas <>
Tue, 20 Dec 2005 09:50:03 +0000 (09:50 +0000)
Editeur/change_comm.py [new file with mode: 0755]

diff --git a/Editeur/change_comm.py b/Editeur/change_comm.py
new file mode 100755 (executable)
index 0000000..6baf8d5
--- /dev/null
@@ -0,0 +1,167 @@
+# -*- coding: utf-8 -*-
+#            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.
+#
+# 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.
+#
+#
+# ======================================================================
+"""
+    Ce module permet de lancer l'application EFICAS en affichant
+    un ecran Splash pour faire patentier l'utilisateur
+"""
+# Modules Python
+import sys
+import os
+
+# Modules Eficas
+import import_code
+import session
+import prefs
+import convert
+import generator
+import string
+from utils import extension_fichier,stripPath, save_in_file
+
+class DUP :
+
+   def __init__(self,code):
+       """
+       """
+       self.format_fichier="python"
+       self.version_code=None
+       self.code=code
+
+       self.top=None
+       self.test=2
+       import configuration
+       self.CONFIGURATION=configuration.make_config(self,prefs.REPINI)
+
+       self.load_readercata()
+       self.cata=self.readercata.cata
+
+       self.JDC=None
+       self.JDCName=""
+       self.J2=None
+
+   def load_readercata(self):
+       mname='readercata'
+       module=__import__(mname,globals(),locals())
+       factory=getattr(module,mname.upper())
+       appli_composant=factory(self,self.top)
+       setattr(self,mname,appli_composant)
+
+
+   def openJDC(self,fichier):
+      if fichier :
+          self.fichier = fichier
+          e=extension_fichier(fichier)
+          self.JDCName=stripPath(fichier)
+          self.initialdir = os.path.dirname(os.path.abspath(fichier))
+      else :
+          return
+
+      format=self.format_fichier
+      # Il faut convertir le contenu du fichier en fonction du format
+      if convert.plugins.has_key(format):
+         # Le convertisseur existe on l'utilise
+         p=convert.plugins[format]()
+         p.readfile(fichier)
+         text=p.convert('exec',self)
+         if not p.cr.estvide(): 
+           print ("Erreur à la conversion")
+           print str(p.cr)
+            return
+
+      # On se met dans le repertoire ou se trouve le fichier de commandes
+      # pour trouver les eventuels fichiers include ou autres
+      # localises a cote du fichier de commandes
+      os.chdir(self.initialdir)
+      CONTEXT.unset_current_step()
+      J=self.cata[0].JdC(procedure=text,appli=self,
+                         cata=self.cata,cata_ord_dico=self.readercata.cata_ordonne_dico,
+                         nom = self.JDCName,
+                         rep_mat=self.CONFIGURATION.rep_mat,
+                         )
+
+      J.analyse()
+
+      txt_exception = J.cr.get_mess_exception()
+      if txt_exception :
+          # des exceptions ont été levées à la création du JDC 
+          # --> on affiche les erreurs mais pas le JDC
+          self.JDC=J
+          print("Erreur fatale au chargement de %s" %file)
+      else :
+          self.JDC=J
+
+   def modifieJDC(self,texte):
+         if texte == None or texte == "" : return
+         format="python"
+        lignes=string.split(texte,";")
+        textedecoup=""
+        for l in lignes :
+           textedecoup=textedecoup+l+'\n'
+         if convert.plugins.has_key(format):
+            p=convert.plugins[format]()
+            p.settext(textedecoup)
+            text=p.convert('exec',self)
+           print text
+         if not p.cr.estvide(): 
+           print ("Erreur à la conversion")
+           print str(p.cr)
+            return
+         self.J2=self.cata[0].JdC(procedure=text,appli=self,
+                         cata=self.cata,
+                        cata_ord_dico=self.readercata.cata_ordonne_dico,
+                         nom = self.JDCName+"2",
+                         rep_mat=self.CONFIGURATION.rep_mat,
+                         )
+        self.J2.definition.code = "MODIF"
+         self.J2.analyse()
+     
+
+   def saveJDC(self,fichierSortie):
+      """ 
+          Sauvegarde le JDC courant.
+          Retourne 1 si la sauvegarde s'est bien faite, 0 sinon.
+      """
+      if not hasattr(self,'JDC') : return 0
+
+      format="Modif"
+
+      if generator.plugins.has_key(format):
+         g=generator.plugins[format]()
+         jdc_formate=g.genermodifparam(self.JDC,self.J2)
+         if not g.cr.estvide():
+            self.affiche_infos("Erreur à la generation")
+            return 0
+      else:
+         self.affiche_infos("Format %s non reconnu" % format)
+         return 0
+
+      self.jdc_fini = string.replace(jdc_formate,'\r\n','\n')
+
+      if not save_in_file(fichierSortie,self.jdc_fini) :
+        self.affiche_infos("Problème à la sauvegarde du fichier")
+         return 0
+      else :
+         self.affiche_infos("sauvegarde effectuée")
+         return 1
+
+
+   def affiche_infos(self,mess):
+       print mess
+