From: eficas <> Date: Mon, 14 Nov 2005 15:31:18 +0000 (+0000) Subject: PN : Ajouts de .comm d exemple X-Git-Tag: CC_param_poursuite~60 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=5426be33502dbb6f6701dc8ab303ec7a3990954d;p=modules%2Feficas.git PN : Ajouts de .comm d exemple --- diff --git a/Editeur/appli.py b/Editeur/appli.py index d60bf829..072fb545 100644 --- a/Editeur/appli.py +++ b/Editeur/appli.py @@ -44,6 +44,7 @@ from widgets import Fenetre from Misc import MakeNomComplet import session import listeFichiers +import listePatrons VERSION="EFICAS v1.9" @@ -79,6 +80,7 @@ class APPLI: # Creation des autres composants graphiques dont le bureau (parametrable par prefs.py) self.load_appli_composants() self.listeFichiers=listeFichiers.listeFichiers(self) + self.listePatrons=listePatrons.listePatrons(self) # PN : ajout d un attribut pour indiquer si # l appli a ete lance depuis Salome @@ -246,7 +248,8 @@ class APPLI: number_item=number_item + 1 raccourci_label="" if not item : - menu.add_separator() + #menu.add_separator() + pass else: if len(item)==3: raccourci=item[2] diff --git a/Editeur/bureau.py b/Editeur/bureau.py index 73bdbd23..c67df204 100644 --- a/Editeur/bureau.py +++ b/Editeur/bureau.py @@ -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" @@ -302,7 +306,7 @@ 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 """ @@ -341,7 +345,8 @@ class BUREAU: titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier", texte = str(p.cr)).wait() return - 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") @@ -372,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 @@ -380,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'): """ @@ -473,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 diff --git a/Editeur/listePatrons.py b/Editeur/listePatrons.py new file mode 100644 index 00000000..532c01ed --- /dev/null +++ b/Editeur/listePatrons.py @@ -0,0 +1,45 @@ +import os +import re +import Tkinter + +# le dictionnaire sous menu est indexe parceque l'ordre des +# recherches est important + +sous_menu={0:{"3D":"3D.comm"},1:{"pou":"pou.comm"},2:{"divers":"comm"}} + +class listePatrons : + + def __init__(self,appli): + self.appli=appli + rep_ini=self.appli.CONFIGURATION.rep_ini + self.rep_patrons=rep_ini+"/../Editeur/Patrons" + self.liste={} + self.traite_liste() + self.ajout_menu() + + + def traite_liste(self): + for file in os.listdir(self.rep_patrons): + for i in range(len(sous_menu)): + clef=sous_menu[i].keys()[0] + chaine=sous_menu[i][clef] + if re.search(chaine,file) : + if clef in self.liste.keys(): + self.liste[clef].append(file) + else : + self.liste[clef]=[file] + break + + def ajout_menu(self): + menuFichier=self.appli.menubar.menubar + menu_cascade=Tkinter.Menu(menuFichier,tearoff=0) + menuFichier.add_cascade(label="Patrons",menu=menu_cascade) + for ss_menu in self.liste.keys(): + ssmenu=Tkinter.Menu(menu_cascade,tearoff=0) + menu_cascade.add_cascade(label=ss_menu,menu=ssmenu) + for fichier in self.liste[ss_menu]: + ssmenu.add_command(label=fichier,command= lambda self=self, l=fichier:self.ouvre(l)); + + def ouvre(self,label): + fichier=self.rep_patrons+"/"+label + self.appli.bureau.openJDC(file=fichier,enregistre="non")