Salome HOME
PN : Ajouts de .comm d exemple
[tools/eficas.git] / Editeur / bureau.py
index 215157fd8d797dd39e97e6cb352085a1332ee69a..c67df204bbda432ef168bbe9c4ff09a88fca2363 100644 (file)
@@ -22,7 +22,7 @@
    Ce module contient la classe BUREAU qui gere les JDC ouverts
 """
 # Modules Python
-import os,string
+import os,string,sys
 import traceback
 import Pmw
 from widgets import askopenfilename,asksaveasfilename
@@ -110,6 +110,7 @@ class BUREAU:
       comploader.charger_composants()
       self.cree_cataitem()
       self.text_reel=""
+      self.initialdir = self.appli.CONFIGURATION.initialdir
 
    def cree_cataitem(self):
       """
@@ -184,7 +185,7 @@ class BUREAU:
       self.ShowJDC(J,self.JDCName)
       self.appli.toolbar.active_boutons()
 
-   def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY):
+   def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY,enregistre="non"):
       """
           Lance l'affichage du JDC cad création du JDCDisplay
           Rajoute le JDCDisplay à la liste des JDCDisplay si label_onglet == None cad si on crée
@@ -203,7 +204,10 @@ class BUREAU:
       if new == 'oui':
           self.liste_JDCDisplay.append(self.JDCDisplay_courant)
       self.JDCDisplay_courant.modified='n'
-      self.JDCDisplay_courant.fichier=self.fileName
+      if enregistre != "non" :
+         self.JDCDisplay_courant.fichier=self.fileName
+      else :
+         self.initialdir = self.appli.CONFIGURATION.rep_user
       self.nb.selectpage(label_onglet)
       self.nb.setnaturalsize()
       texte = "Jeu de commandes :" + self.JDCName+" ouvert"
@@ -212,7 +216,6 @@ class BUREAU:
 
    def onClose(self,jdcdisplay):
       #print "onClose",jdcdisplay
-      CONNECTOR.Disconnect(jdcdisplay.jdc,"close",self.onClose,(jdcdisplay,))
       self.closeJDCDISPLAY(jdcdisplay)
 
    def closeJDCDISPLAY(self,jdc):
@@ -258,17 +261,20 @@ class BUREAU:
               if test == 0 :
                   self.appli.affiche_infos("Sauvegarde impossible")
                   return
+
+      CONNECTOR.Disconnect(self.JDCDisplay_courant.jdc,"close",self.onClose,(self.JDCDisplay_courant,))
+      self.JDCDisplay_courant.supprime()
       self.JDCDisplay_courant.jdc.supprime()
       self.liste_JDCDisplay.remove(self.JDCDisplay_courant)
+      # Active le mecanisme de selection du notebook (selectJDC)
       self.nb.delete(self.nb.getcurselection())
-      #XXX CCAR: pour le moment mis en commentaire
-      #self.JDC.unset_context()
-      self.JDC = None
+
       try:
           index = self.nb.index(self.nb.getcurselection())
           self.JDCDisplay_courant = self.liste_JDCDisplay[index]
           self.JDC = self.JDCDisplay_courant.jdc
       except:
+          self.JDC = None
           self.JDCDisplay_courant = None
           self.appli.toolbar.inactive_boutons()
 
@@ -300,12 +306,12 @@ class BUREAU:
       texte_cr = str(cr)
       self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr)
 
-   def openJDC(self,event=None,file=None,units=None):
+   def openJDC(self,event=None,file=None,units=None,enregistre="oui"):
       """
           Demande à l'utilisateur quel JDC existant il veut ouvrir
       """
       if self.code == 'ASTER':
-          filetypes = ( ("format "+self.appli.format_fichier.get(), ".comm"),("Tous",'*'))
+          filetypes = ( ("format "+self.appli.format_fichier.get(), ".com*"),("Tous",'*'))
       elif self.code == 'HOMARD' :
           filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),("Tous",'*'))
       else:
@@ -339,6 +345,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)
       else:
          # Il n'existe pas c'est une erreur
          self.appli.affiche_infos("Type de fichier non reconnu")
@@ -369,7 +377,7 @@ class BUREAU:
           if self.appli.test == 0 :
              showerror("Erreur fatale au chargement d'un fichier",txt_exception)
       else:
-          self.ShowJDC(J,self.JDCName)
+          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
@@ -377,6 +385,7 @@ class BUREAU:
           if not self.JDC.isvalid():
             self.appli.top.update()
             self.visuCR(mode='JDC')
+      # On a ouvert un Patron
 
    def GetLabelJDC(self,nb_jdc = 'absent'):
       """
@@ -436,14 +445,14 @@ class BUREAU:
             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)
-            try :
-            #if ( 1 == 1 ) :
+            #try :
+            if ( 1 == 1 ) :
                import eficasCL
                MyCLinit=eficasCL.CLinit()
                MyCLinit.traiteCL()
                MyCLinit.clean()
-            except :
-            #else :
+            #except :
+            else :
                pass
           #PN  Fin Ajout --> Salome
           # le JDC a déjà un nom : on sauvegarde directement sans demander
@@ -470,8 +479,9 @@ class BUREAU:
       sauvegarde = asksaveasfilename(title=titre,
                                      defaultextension=defext,
                                      filetypes = filtyp,
-                                     initialdir = self.appli.CONFIGURATION.initialdir)
-                                     #initialdir = self.appli.CONFIGURATION.rep_user)
+                                     initialdir = self.initialdir)
+                            #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