Salome HOME
0101dd05e78338cc1f0e7cf5fdcde0b8e1183b85
[tools/eficas.git] / Editeur / options.py
1 """
2 """
3 # Modules Python
4 import os,string
5 from tkFileDialog import *
6
7 # Modules Eficas
8
9
10 class OPTIONS:
11
12    menu_defs=[
13               ('Options',[
14                            ("Catalogue développeur",'choix_cata_developpeur'),
15                          ]
16               )
17              ]
18
19    button_defs=[]
20
21    def __init__(self,appli,parent):
22       self.appli=appli
23       self.parent=parent
24
25    def choix_cata_developpeur(self):
26       """ 
27           Cette méthode demande à l'utilisateur-développeur d'indiquer quel catalogue
28           il veut utiliser en remplacement du catalogue standard du code
29           NB : il faut que le développeur ait les droits d'écriture dans le répertoire où
30           se trouve le catalogue 
31       """
32       file = askopenfilename(title="Choix d'un catalogue personnel",
33                              defaultextension=".py",
34                              filetypes = ( ("Catalogue", "cata*.py"),))
35       if file != '':
36           self.parent.update_idletasks()
37           self.appli.reset_affichage_infos()
38           rep_fic = os.path.dirname(file)
39           nom_fic = string.split(os.path.basename(file),'.')[0]
40           rep_courant = os.getcwd()
41           os.chdir(rep_fic)
42           self.cata = __import__(nom_fic)
43           self.code = self.cata.CODE
44           os.chdir(rep_courant)
45           self.fic_cata = file
46           fic_cata_p = nom_fic+'_pickled.py'
47           self.fic_cata_p = os.path.join(rep_fic,fic_cata_p)
48           pile_erreurs = self.cata.erreurs_cata
49           if pile_erreurs.existe_message() :
50               messages = pile_erreurs.retourne_messages()
51               print messages
52           else :
53               # XXX ne doit pas fonctionner
54               self.catalo = catabrowser.CataItem(cata=self.cata)
55               self.Retrouve_Ordre_Cata('personnel')
56           pile_erreurs.efface()
57