Salome HOME
CCAR: creation V1_13a1 a partir de la branche Liv-V1_12
[tools/eficas.git] / Editeur / bureau.py
index f81140d80cec186d741be21dca99ef0c7a33a3ee..b1a408d561db988a8bf760b681008042c17ea377 100644 (file)
@@ -34,11 +34,13 @@ import prefs
 import convert
 import generator
 import AIDE
+import os
 from jdcdisplay import JDCDISPLAY
 from utils import extension_fichier,stripPath,save_in_file
-from widgets import Fenetre,Ask_Format_Fichier
+from widgets import Fenetre,Ask_Format_Fichier,FenetreSurLigneWarning
 from fenetre_mc_inconnus import fenetre_mc_inconnus
 from Ihm import CONNECTOR
+from Traducteur import traduitV7V8 
 
 import comploader
 
@@ -69,6 +71,10 @@ class BUREAU:
                                    ('Mots-clés inconnus','mc_inconnus'),
                                   ]
               ),
+              ('Traduction',[
+                             ('Traduction v7 en v8','TraduitFichier','<Control-t>','Ctrl+T')
+                            ]
+              ),
               ('Aide',[
                         ('Aide EFICAS','aideEFICAS'),
                       ]
@@ -78,7 +84,7 @@ class BUREAU:
    button_defs  =      (('New24',"newJDC","Création d'un nouveau fichier",'always'),
                         ('Open24',"openJDC","Ouverture d'un fichier existant",'always'),
                         ('Save24',"saveJDC","Sauvegarde du fichier courant",'always'),
-                       ('Fermer24',"closeJDC","Fermeture du fichier courant",'always'),
+                        ('Fermer24',"closeJDC","Fermeture du fichier courant",'always'),
                         ('Zoom24',"visuJDC","Visualisation du fichier de commandes",'always'),
                         None,
                         ('Copy24',"copy","Copie l'objet courant",'jdc'),
@@ -144,7 +150,7 @@ class BUREAU:
 
    def newJDC_include(self,event=None):
       """
-          Initialise un nouveau JDC vierge
+          Initialise un nouveau JDC include vierge
       """
       import Extensions.jdc_include
       JdC_aux=Extensions.jdc_include.JdC_include
@@ -168,10 +174,11 @@ class BUREAU:
       self.fileName=None
       self.ShowJDC(J,self.JDCName)
       self.appli.toolbar.active_boutons()
+      return J
 
    def newJDC(self,event=None):
       """
-          Initialise un nouveau JDC include vierge
+          Initialise un nouveau JDC vierge
       """
       self.appli.statusbar.reset_affichage_infos()
 
@@ -185,6 +192,7 @@ class BUREAU:
       self.fileName=None
       self.ShowJDC(J,self.JDCName)
       self.appli.toolbar.active_boutons()
+      return J
 
    def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY,enregistre="non"):
       """
@@ -291,6 +299,7 @@ class BUREAU:
       """
       if mode == 'JDC':
           if not hasattr(self,'JDC') : return
+          if self.JDC == None : return
           titre="rapport de validation du jeu de commandes courant"
           cr = self.JDC.report()
           #self.update_jdc_courant()
@@ -349,8 +358,8 @@ class BUREAU:
                     titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
                     texte = str(p.cr)).wait()
             return
-        if enregistre == "oui" :
-           self.appli.listeFichiers.aOuvert(file)
+         if enregistre == "oui" :
+            self.appli.listeFichiers.aOuvert(file)
       else:
          # Il n'existe pas c'est une erreur
          self.appli.affiche_infos("Type de fichier non reconnu")
@@ -383,12 +392,13 @@ class BUREAU:
       else:
           self.ShowJDC(J,self.JDCName,enregistre=enregistre)
           self.appli.toolbar.active_boutons()
-         # si le JDC ne contient rien (vide), on retourne ici
-         if len(self.JDC.etapes) == 0 : return
-         # dans le cas où le JDC est invalide, on affiche son CR
+          # si le JDC ne contient rien (vide), on retourne ici
+          if len(self.JDC.etapes) == 0 : return
+          # dans le cas où le JDC est invalide, on affiche son CR
           if not self.JDC.isvalid():
-            self.appli.top.update()
-            self.visuCR(mode='JDC')
+             self.appli.top.update()
+             self.visuCR(mode='JDC')
+      return J
 
    def deplieReplieNode(self):
        self.JDCDisplay_courant.tree.tree.deplieReplieNode()
@@ -425,9 +435,10 @@ class BUREAU:
       """ 
           Sauvegarde le JDC courant.
           Retourne 1 si la sauvegarde s'est bien faite, 0 sinon.
-          Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il 
+
+            - Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il 
                             veut sauver le JDC
-          Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure)
+            - Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure)
       """
       ok = 0
       if not hasattr(self,'JDC') : return 0
@@ -450,14 +461,14 @@ class BUREAU:
       self.jdc_fini = string.replace(jdc_formate,'\r\n','\n')
 
       if echo =='oui' or self.JDCDisplay_courant.fichier == None:
-        ok = self.asknomsauvegardeJDC()
+         ok = self.asknomsauvegardeJDC()
       elif self.JDCDisplay_courant.fichier != None :
          # le JDC a déjà un nom : on sauvegarde directement sans demander
          # un autre nom au développeur
          if not save_in_file(self.JDCDisplay_courant.fichier,self.jdc_fini,self.appli.dir) :
               showinfo("Erreur","Problème à la sauvegarde du fichier :" + `self.JDCDisplay_courant.fichier`)
               #return 0
-             ok = 0
+              ok = 0
          else :
               if self.appli.format_fichier.get() == 'homard':
                   self.save_homard(self.JDCDisplay_courant.fichier,self.jdc_homard)
@@ -468,16 +479,16 @@ class BUREAU:
       if ok and hasattr( self.appli, 'salome'):
          # eficas a été lancé à partir deSalome
          #1)ajout dans l'arbre d'étude du nom du jdc
-        ok, msg = self.appli.addJdcInSalome( self.JDCDisplay_courant.fichier )
+         ok, msg = self.appli.addJdcInSalome( self.JDCDisplay_courant.fichier )
 
          #2)CS_pbruno ??
-        from panelsSalome import SALOME_UNIQUE_BASE_Panel
-        if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 :
-           print 'CS_pbruno if len(SALOMchier_unite) > 0 :???????'
-           self.appli.creeConfigTxt( self.appli.CONFIGURATION.initialdir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite )
+         from panelsSalome import SALOME_UNIQUE_BASE_Panel
+         if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 :
+            print 'CS_pbruno if len(SALOMchier_unite) > 0 :???????'
+            self.appli.creeConfigTxt( self.appli.CONFIGURATION.initialdir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite )
 
-        #3)création/mise à jours d'un maillage dans Salome
-        self.appli.createOrUpdateMesh()
+         #3)création/mise à jours d'un maillage dans Salome
+         self.appli.createOrUpdateMesh()
       return ok
 
    def asknomsauvegardeJDC(self):
@@ -582,7 +593,7 @@ class BUREAU:
    def visuJDC_py(self,event=None):
       """ 
           Méthode permettant d'afficher dans une fenêtre à part l'écho au 
-            format python du jdc courant 
+          format python du jdc courant 
       """
       if not hasattr(self,'JDC') : return
       jdc_fini = self.get_text_JDC('python')
@@ -594,7 +605,7 @@ class BUREAU:
    def visuJDC(self):
       """ 
           Méthode permettant d'afficher dans une fenêtre à part l'écho au 
-            format .comm ou .py du jdc courant 
+          format .comm ou .py du jdc courant 
       """
       if not hasattr(self,'JDC') : return
       titre = 'fichier '+ self.JDCName + ' à la syntaxe '+ self.code
@@ -705,7 +716,7 @@ class BUREAU:
            self.appli.salome.rangeInStudy(file_homard,"_CONF")
 
 # ---------------------------------------------------------------------------
-#                      Méthodes liées aux mots-clés inconnus
+#                             Méthodes liées aux mots-clés inconnus
 # ---------------------------------------------------------------------------
 
    def mc_inconnus(self):
@@ -721,3 +732,37 @@ class BUREAU:
    def update_jdc_courant(self):
       self.JDCDisplay_courant.update()
 
+   def TraduitFichier(self):
+      directory = self.appli.CONFIGURATION.rep_user
+      FichieraTraduire = askopenfilename(title="Nom du  Fichier à Traduire",
+                                 defaultextension=".comm",
+                                 initialdir = directory 
+                                 )
+      if (FichieraTraduire == "" or FichieraTraduire == () ) : return
+      i=FichieraTraduire.rfind(".")
+      Feuille=FichieraTraduire[0:i]
+      FichierTraduit=Feuille+"v8.comm"
+      log=self.initialdir+"/convert.log"
+      os.system("rm -rf "+log)
+      os.system("rm -rf "+FichierTraduit)
+      Pmw.showbusycursor()
+      traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log)
+      Pmw.hidebusycursor()
+      Entete="Fichier Traduit : "+FichierTraduit +"\n\n"
+      titre = "conversion de "+ FichieraTraduire
+
+      if  os.stat(log)[6] != 0L :
+          f=open(log)
+          texte_cr= f.read()
+          f.close()
+      else :
+          texte_cr = Entete  
+          commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null"
+          try :
+            if os.system(commande) == 0 :
+               texte_cr = texte_cr + "Pas de difference entre le fichier V7 et le fichier traduit"
+          except :
+               pass
+
+      cptrendu = FenetreSurLigneWarning(self.appli,titre=titre,texte=texte_cr)
+