Vues
  • État: publié

gui_OO

Document Actions
L'interface graphique du convertisseur OpenOffice.

Cliquez ici pour obtenir le fichier

Taille 3.3 kB - Type du fichier text/x-python

Contenu du fichier

#!/usr/bisn/env python
#-*- coding: utf_8 -*-

__author__ = 'Cedric Bonhomme'
__version__ = '$Revision: 1.1 $'
__date__ = '$Date: 2007/02/28 $'
__copyright__ = 'Copyright (c) 2007 Cedric Bonhomme'
__license__ = 'Python'


class Application:
	"""
	Interface graphique pour OOTranslator.
	"""
	def __init__(self):
		""" Création de la fenetre principale """
		self.root = Tkinter.Tk()
		self.root.title('OpenOffice convertor')
		self.root.resizable(height = False, width = False)
		self.TEXTE = True

		"""ListBox contenant tous les fichiers .od? du répertoire courant."""
		listboxScroll = Tkinter.Scrollbar(self.root, orient = Tkinter.VERTICAL)
		listboxScroll.grid(column = 2, row = 0, sticky = Tkinter.W)
		self.listbox = Tkinter.Listbox(self.root, yscrollcommand=listboxScroll.set, height = 1)
		self.listbox.grid(column = 1, row = 0, sticky = Tkinter.W + Tkinter.E)
		listboxScroll['command'] = self.listbox.yview
		self.__listeFichier() #ajout les fichiers OO à la ListBox

		"""Widget Text avec une ScrollBar"""
		self.texte = Tkinter.Text(self.root, wrap = Tkinter.WORD)
		self.barre = Tkinter.Scrollbar(self.root, orient = Tkinter.VERTICAL)
		self.barre.config(command = self.texte.yview)
		self.barre.grid(column = 3, row = 1, sticky = Tkinter.S+Tkinter.N)
		self.texte.config(state = Tkinter.DISABLED, yscrollcommand = self.barre)
		self.texte.grid(row = 1, columnspan = 3)

		"""Boutons"""
		self.button1 = Tkinter.Button(self.root, text = 'XML', fg = 'black',
						command = self.__convertirXML)
		self.button1.grid(row = 2, column = 0)

		self.button2 = Tkinter.Button(self.root, text = 'Texte', fg = 'black',
						command = self.__convertirTexte)
		self.button2.grid(row = 2, column = 1)

		self.button3 = Tkinter.Button(self.root, text = 'Reinitialiser', fg = 'black',
						command = self.__reinitialise)
		self.button3.grid(row = 2, column = 2)

		"""Boucle principale"""
		self.root.mainloop()


	def __convertirXML(self):
		"""Pour convertir au format XML on met TEXTE à False"""
		self.TEXTE = False
		self.__convertir()

	def __convertirTexte(self):
		"""Pour convertir au format texte on met TEXTE à True"""
		self.TEXTE = True
		self.__convertir()


	def __convertir(self):
		"""Convertion vers le format XML ou Texte."""
		try:
			fichierOO = self.listbox.get(int(self.listbox.curselection()[0]))
			self.texte.config(state = Tkinter.NORMAL)
			self.texte.delete("1.0", Tkinter.END)
			resultat = OOTranslator.convertir_OO(fichierOO, self.TEXTE)
		except (IndexError, UnboundLocalError):
			print "Sélectionnez un fichier"
		try:
			self.texte.insert("1.0", resultat)
			self.texte.config(state = Tkinter.DISABLED)
			return resultat
		except:
			print "Erreur Tcl. Fichier .odt certainement inexistant.\n"


	def __listeFichier(self):
		"""Liste les fichiers OO (= .od?) du dossier courant
		et les ajoute à la liste.
		"""
		listeFichier = os.listdir("./")
		listeFichierOO = [fichier for fichier in listeFichier \
					if os.path.splitext(fichier)[1][:3] == '.od']
		for fichierOO in listeFichierOO:
			self.listbox.insert(Tkinter.END, fichierOO)


	def __reinitialise(self):
		"""Réinitialise les composants Tkinter"""
		self.texte.config(state = Tkinter.NORMAL)
		self.texte.delete("1.0", Tkinter.END)
		self.texte.config(state = Tkinter.DISABLED)



if __name__ == "__main__":
	"""Point d'entrée en exécution"""
	import Tkinter
	import os
	import OOTranslator
	Application()