X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fbureau.py;h=c67df204bbda432ef168bbe9c4ff09a88fca2363;hb=5426be33502dbb6f6701dc8ab303ec7a3990954d;hp=51e0eb43b0f3cd59e3b00bb3fe31d811436cd8f1;hpb=de6f3bce9f50789dcef7afeed2360930236b48d6;p=tools%2Feficas.git diff --git a/Editeur/bureau.py b/Editeur/bureau.py index 51e0eb43..c67df204 100644 --- a/Editeur/bureau.py +++ b/Editeur/bureau.py @@ -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,18 +445,19 @@ 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() - except : - #else : + MyCLinit.clean() + #except : + else : pass #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) : + 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 else : @@ -469,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 @@ -485,11 +496,12 @@ class BUREAU: import eficasCL MyCLinit=eficasCL.CLinit() MyCLinit.traiteCL() + MyCLinit.clean() #except : else : pass # PN fin ajout --> Salome - if not save_in_file(sauvegarde,self.jdc_fini) : + if not save_in_file(sauvegarde,self.jdc_fini,None) : showinfo("Erreur","Problème à la sauvegarde du fichier "+`sauvegarde`) return 0 else : @@ -627,8 +639,7 @@ class BUREAU: cle_doc = string.replace(cle_doc,'-','') commande = self.appli.CONFIGURATION.exec_acrobat nom_fichier = cle_doc+".pdf" - rep_fichier = cle_doc[0:2] - fichier = os.path.abspath(os.path.join(self.appli.CONFIGURATION.path_doc,rep_fichier,nom_fichier)) + fichier = os.path.abspath(os.path.join(self.appli.CONFIGURATION.path_doc,nom_fichier)) if os.name == 'nt': os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) elif os.name == 'posix':