Salome HOME
PN
[tools/eficas.git] / Editeur / listePatrons.py
1 import os
2 import re
3 import Tkinter
4
5 # le dictionnaire sous menu est indexe parceque l'ordre des
6 # recherches est important
7
8 sous_menu={0:{"3D":"3D.comm"},1:{"poutre":"pou.comm"},2:{"salome":"salome.comm"},3:{"divers":"comm"}}
9
10 class listePatrons :
11
12     def __init__(self,appli):
13        self.appli=appli
14        rep_ini=self.appli.CONFIGURATION.rep_ini
15        if self.appli.code != "ASTER" :
16           return
17        self.rep_patrons=rep_ini+"/../Editeur/Patrons"
18        self.liste={}
19        self.traite_liste()
20        self.ajout_menu()
21
22
23     def traite_liste(self):
24         for file in os.listdir(self.rep_patrons):
25             for i in range(len(sous_menu)):
26                 clef=sous_menu[i].keys()[0]
27                 chaine=sous_menu[i][clef]
28                 if re.search(chaine,file) :
29                    if clef in self.liste.keys():
30                       self.liste[clef].append(file)
31                    else :
32                       self.liste[clef]=[file]
33                    break
34
35     def ajout_menu(self):
36         menuFichier=self.appli.menubar.menubar
37         menu_cascade=Tkinter.Menu(menuFichier,tearoff=0)
38         menuFichier.add_cascade(label="Patrons",menu=menu_cascade)
39         for ss_menu in self.liste.keys():
40            ssmenu=Tkinter.Menu(menu_cascade,tearoff=0)
41            menu_cascade.add_cascade(label=ss_menu,menu=ssmenu)
42            for fichier in self.liste[ss_menu]:
43                ssmenu.add_command(label=fichier,command= lambda self=self, l=fichier:self.ouvre(l));
44
45     def ouvre(self,label):
46         fichier=self.rep_patrons+"/"+label
47         self.appli.bureau.openJDC(file=fichier,enregistre="non")