2 Ce module contient la classe APPLI qui est la classe mère de
3 l'application EFICAS. Elle prend en charge l'organisation générale
4 des composants graphiques et l'initialisation Tk
5 L'aspect applicatif doit etre pris en charge par la classe dérivée
18 def __init__ (self,master,code='ASTER',fichier=None) :
21 self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS)
22 self.top.minsize(900,500)
23 self.top.geometry("900x500")
24 self.top.title('EFICAS v1.1 pour '+self.code)
26 self.initializeTk(master)
27 Pmw.initialise(master)
28 self.lecture_parametres()
29 self.format_fichier = Tkinter.StringVar()
31 self.cree_composants_graphiques()
32 self.load_extensions()
36 def send_message(self,message):
45 def lecture_parametres(self):
47 Active la lecture des paramètres standards et utilisateur
49 splash._splash.configure(text = "Chargement des paramètres utilisateur")
51 self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
53 def cree_composants_graphiques(self):
55 Cree les constituants de l'application :
61 splash._splash.configure(text = "Chargement de l'IHM")
62 splash._splash.configure(text = "Chargement de la menubar")
64 self.menubar=menubar.MENUBAR(self,self.top)
65 splash._splash.configure(text = "Chargement de la toolbar")
67 self.toolbar=toolbar.TOOLBAR(self,self.top)
68 splash._splash.configure(text = "Chargement de la statusbar")
70 self.statusbar=statusbar.STATUSBAR(self.top)
72 def load_extensions(self):
73 splash._splash.configure(text = "Chargement des extensions")
74 for mname in self.extensions:
75 self.load_extension(mname)
77 def load_extension(self,mname):
78 module=__import__(mname,globals(),locals())
79 factory=getattr(module,mname.upper())
80 extension=factory(self,self.top)
81 setattr(self,mname,extension)
82 self.fill_menus(extension,extension.menu_defs)
83 self.toolbar.creer_boutons_extension(extension.button_defs,extension)
85 def affiche_FAQ(self):
89 def affiche_infos(self,message):
90 self.statusbar.affiche_infos(message)
93 def initializeTk(self, root):
95 Initialize platform specific options
97 if sys.platform == 'mac':
98 self.initializeTk_mac(root)
99 elif sys.platform == 'win32':
100 self.initializeTk_win32(root)
102 self.initializeTk_unix(root)
104 def initializeTk_win32(self, root):
105 root.option_add('*Font', fontes.standard)
106 root.option_add('*EntryField.Entry.Font', fontes.standard)
107 root.option_add('*Listbox*Font',fontes.standard)
109 def initializeTk_colors_common(self, root):
110 root.option_add('*background', 'grey')
111 root.option_add('*foreground', 'black')
112 root.option_add('*EntryField.Entry.background', 'white')
113 root.option_add('*Listbox*background', 'white')
114 root.option_add('*Listbox*selectBackground', '#00008b')
115 root.option_add('*Listbox*selectForeground', 'white')
117 def initializeTk_mac(self, root):
118 self.initializeTk_colors_common(root)
120 def initializeTk_unix(self, root):
121 root.option_add('*Font', fontes.standard)
122 root.option_add('*EntryField.Entry.Font',fontes.standard )
123 root.option_add('*Listbox*Font', fontes.standard)
124 self.initializeTk_colors_common(root)
126 def get_texte_infos(self):
128 Retourne un texte d'informations sur la session courante d'EFICAS
130 texte = 'EFICAS v1.1\n\n'
131 texte = texte + 'EFICAS est un produit développé par \nEDF-Division Stratégie et Développement\n'
132 texte = texte + 'Equipe : MTI/MMN\n\n'
133 texte = texte + 'Code utilisé : %s\n' %self.code
136 def efface_aide(self,event):
138 Efface la bulle d'aide d'un panneau
146 def affiche_aide(self,event,aide):
148 Affiche l'aide concernant un panneau
153 self.aide = Tkinter.Label(widget ,text = aide,
154 bg="yellow",relief="ridge",anchor='w')
155 self.aide.place(in_=widget,
156 relx=0.5,rely=0.5,anchor='center')
160 def fill_menus(self,extension,defs):
161 menudict=self.menubar.menudict
162 for mname,itemlist in defs:
163 menu=menudict.get(mname)
165 for item in itemlist:
170 command=getattr(extension,method)
171 menu.add_command(label=label,command=command)