Salome HOME
PN : pour les clefs documentaires
[tools/eficas.git] / Editeur / bureau.py
index 92da9ad64ea7e72863e6ac16c4746c1f7646bde4..226e85d79e88748e605932d3373f3e7fe57281b9 100644 (file)
 import os,string
 import traceback
 import Pmw
-from tkFileDialog import askopenfilename,asksaveasfilename
-from tkMessageBox import showinfo,askyesno,showerror
+from widgets import askopenfilename,asksaveasfilename
+from widgets import showinfo,askyesno,showerror
 
 # Modules Eficas
 import splash
 import prefs
 import convert
 import generator
+import AIDE
 from jdcdisplay import JDCDISPLAY
-from utils import extension,stripPath,save_in_file
+from utils import extension_fichier,stripPath,save_in_file
 from widgets import Fenetre,Ask_Format_Fichier
 from fenetre_mc_inconnus import fenetre_mc_inconnus
 
@@ -64,6 +65,10 @@ class BUREAU:
                                    ('Mots-clés inconnus','mc_inconnus'),
                                   ]
               ),
+              ('Aide',[
+                        ('Aide EFICAS','aideEFICAS'),
+                      ]
+              ),
              ]
 
    button_defs  =      (('New24',"newJDC","Création d'un nouveau fichier",'always'),
@@ -100,7 +105,7 @@ class BUREAU:
 
    def cree_cataitem(self):
       """
-          On récupère dans l'extension readercata les variables 
+          On récupère dans l'appli_composant readercata les variables 
           qui servent par la suite pour la création des JDC
       """
       self.cataitem=self.appli.readercata.cataitem
@@ -134,7 +139,9 @@ class BUREAU:
       CONTEXT.unset_current_step()
       J=self.cata[0].JdC(cata=self.cata,
                          cata_ord_dico=self.cata_ordonne_dico,
-                         appli=self.appli)
+                         appli=self.appli,
+                         rep_mat=self.appli.CONFIGURATION.rep_mat,
+                         )
       self.JDCName=J.nom
       self.fileName=None
       self.ShowJDC(J,self.JDCName)
@@ -204,6 +211,7 @@ class BUREAU:
           if not hasattr(self,'JDC') : return
           titre="rapport de validation du jeu de commandes courant"
           cr = self.JDC.report()
+          self.update_jdc_courant()
       elif mode == 'CATA':
           from Noyau.N_CR import CR
           cr = CR()
@@ -229,15 +237,16 @@ class BUREAU:
       else:
           filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),)
       if not hasattr(self,'initialdir'):
-         self.initialdir = self.appli.CONFIGURATION.rep_user
+         #self.initialdir = self.appli.CONFIGURATION.rep_user
+         self.initialdir = self.appli.CONFIGURATION.initialdir
       if not file :
           file = askopenfilename(title="Ouverture d'un fichier de commandes Aster",
                                  defaultextension=".comm",
                                  filetypes = filetypes,
                                  initialdir = self.initialdir)
-      if file != '':
+      if file :
           self.fileName = file
-          e=extension(file)
+          e=extension_fichier(file)
           self.JDCName=stripPath(file)
           self.initialdir = os.path.dirname(file)
       else :
@@ -271,7 +280,9 @@ class BUREAU:
       CONTEXT.unset_current_step()
       J=self.cata[0].JdC(procedure=text,appli=self.appli,
                          cata=self.cata,cata_ord_dico=self.cata_ordonne_dico,
-                         nom = self.JDCName)
+                         nom = self.JDCName,
+                         rep_mat=self.appli.CONFIGURATION.rep_mat,
+                         )
       J.analyse()
       txt_exception = J.cr.get_mess_exception()
       if txt_exception :
@@ -285,8 +296,9 @@ class BUREAU:
          # 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
-         cr = self.JDC.report()
-         if not cr.estvide() : 
+          if not self.JDC.isvalid():
+         #cr = self.JDC.report()
+         #if not cr.estvide() : 
             self.appli.top.update()
             self.visuCR(mode='JDC')
 
@@ -340,6 +352,15 @@ class BUREAU:
       if echo =='oui' or self.JDCDisplay_courant.fichier == None:
           return self.asknomsauvegardeJDC()
       elif self.JDCDisplay_courant.fichier != None :
+          #PN  Ajout --> Salome
+          # Pour sauvegarde dans l etude si lancement depuis salome
+          if self.appli.salome != 0:
+             import eficas_etude 
+             self.appli.salome.rangeInStudy(self.JDCDisplay_courant.fichier)
+            from panelsSalome import SALOME_UNIQUE_BASE_Panel
+            if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 :
+               self.appli.salome.creeConfigTxt(self.appli.CONFIGURATION.initialdir,SALOME_UNIQUE_BASE_Panel.dict_fichier_unite)
+          #PN  Fin Ajout --> Salome
           # 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) :
@@ -362,8 +383,18 @@ class BUREAU:
       sauvegarde = asksaveasfilename(title=titre,
                                      defaultextension=defext,
                                      filetypes = filtyp,
-                                     initialdir = self.appli.CONFIGURATION.rep_user)
-      if sauvegarde != '':
+                                     initialdir = self.appli.CONFIGURATION.initialdir)
+                                     #initialdir = self.appli.CONFIGURATION.rep_user)
+      if sauvegarde :
+          # PN ajout --> Salome
+          # Pour sauvegarde dans l etude si lancement depuis salome
+          if self.appli.salome != 0:
+             import eficas_etude 
+             self.appli.salome.rangeInStudy(sauvegarde)
+            from panelsSalome import SALOME_UNIQUE_BASE_Panel
+            if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 :
+               self.appli.salome.creeConfigTxt(self.appli.CONFIGURATION.initialdir,SALOME_UNIQUE_BASE_Panel.dict_fichier_unite)
+          # PN fin ajout --> Salome
           if not save_in_file(sauvegarde,self.jdc_fini) :
               showinfo("Erreur","Problème à la sauvegarde du fichier "+`sauvegarde`)
               return 0
@@ -570,6 +601,13 @@ class BUREAU:
       l_mc = self.JDCDisplay_courant.jdc.get_liste_mc_inconnus()
       o = fenetre_mc_inconnus(l_mc)
       l = o.wait_new_list()
-      print "mc_inconnus_new_list: ",l
+      #print "mc_inconnus_new_list: ",l
       #CCAR: Il n' y a pas de retour vers le JDC
 
+   def aideEFICAS(self):
+      AIDE.go(master=self.parent)
+
+   def update_jdc_courant(self):
+      self.JDCDisplay_courant.update()
+
+