#!/usr/bin/env python/
# -*- coding: latin-1 -*-
import sys, os
from ClassBddInsertion import *
from ClassRecuperationDonnees import *
try:
import pygtk
pygtk.require("2.0")
except:
pass
try:
import gtk
import gtk.glade
except:
sys.exit(1)
#Variables Global aux class de l'interface
#Recuperation du fichier de la bdd
bddName=os.path.dirname(sys.argv[0])+'/contact.db'
#Recuperation de l'emplacement du fichier glade qqe soit le repertoir courant
gladefile=os.path.dirname(sys.argv[0])+'/mainWindow.glade'
class main:
def __init__(self):
#Charge le fichier glade
self.wTree = gtk.glade.XML(gladefile,"MainWindow")
#Creation des colonnes de la treeview:
#1-Recuperation du widget
self.vueContactList= self.wTree.get_widget("listContact")
#2-Mise en place du modèle de treeview qui permet de définir le typê de treeview utilisé
self.listType=gtk.ListStore(str,str,str,str,str,str, str)
self.vueContactList.set_model(self.listType)
#3-Ajout des différentes colonnes
self.AjoutListColonne("nom", 0)
self.AjoutListColonne("Type contact", 1)
self.AjoutListColonne("Adresse 1", 3)
self.AjoutListColonne("Adresse 2", 4)
self.AjoutListColonne("Numero de telephone", 5)
self.AjoutListColonne("Numero de portable", 6)
#Remplissage de le treeview:
self.voirContact()
#Reglage des evenements
events = { 'on_ajoutContact_clicked': self.ajoutContact,
'on_fermer_clicked':self.destroy,
'delete': self.destroy,
'on_imagemenuitem1_activate': self.ajoutContact}
#Gestion des evenements
self.wTree.signal_autoconnect(events)
def AjoutListColonne(self, title, columnId):
"Cette fonction permet d'ajouter des colonnes à notre treeview"
column = gtk.TreeViewColumn(title, gtk.CellRendererText() , text=columnId)
column.set_resizable(True)
column.set_sort_column_id(columnId)
self.vueContactList.append_column(column)
def destroy(self, source=None, event=None):
'Ferme le programe'
gtk.main_quit()
def ajoutContact(self, source=None):
"Ouverture de la boite de dialogue d'ajout"
bteAjoutContact = ajoutContact()
def voirContact(self, source=None):
contacts=contactInfos(bddName)
contacts.RecupererTout()
test=['UN','Pourquoi','Chelou','Bizare','Etrange','dubitatif','Enervant']
for contact in contacts.repertoireInfos:
self.listType.append(test)
# print contact
class ajoutContact:
def __init__(self):
self.ajoutWindow= gtk.glade.XML(gladefile, "ajoutContact")
#Reglage des evenements
events ={ 'on_Quitter_clicked': self.quitter,
'on_ajoutContact_delete_event': self.quitter,
'on_typeContact_changed': self.typeChange,
'on_Appliquer_clicked':self.insererDonnee,
}
#Permet de fermer la fenetre avec l'attribut destroy grace à la 'prise en charge' du widget 'ajoutcontact'
self.fenetreDialogue = self.ajoutWindow.get_widget("ajoutContact")
self.ajoutWindow.signal_autoconnect(events)
#Mise en place des élements dans la combobox
self.model_scrit = gtk.ListStore(str)
self.model_scrit.append(["Contact physique"])
self.model_scrit.append(["Contact Moral"])
self.cb = self.ajoutWindow.get_widget("typeContact")
self.cb.set_model(self.model_scrit)
cell = gtk.CellRendererText()
self.cb.pack_start(cell)
self.cb.add_attribute(cell,'text',0)
self.cb.set_active(-1)
def quitter(self, evenement, donnees=None):
'ferme la fenetre de dialogue'
self.fenetreDialogue.destroy()
def typeChange(self, donnees=None):
self.cb = self.ajoutWindow.get_widget("typeContact")
self.comboActif=self.cb.get_active_text() #Recuperation du text selectionné dans la combo.
if self.comboActif == "Contact Moral":
self.fenetreDialogue.set_title('Ajout contact moral')
self.ajoutWindow.get_widget("hMoralPhysique").show()
self.moral = self.ajoutWindow.get_widget("moral").show()
self.hTypeContact = self.ajoutWindow.get_widget("hTypeContact").hide()
elif self.comboActif == "Contact physique":
self.fenetreDialogue.set_title('Ajout contact physique')
self.ajoutWindow.get_widget("hMoralPhysique").show()
self.ajoutWindow.get_widget("physique").show()
self.ajoutWindow.get_widget("hTypeContact").hide()
def insererDonnee(self, donnees=None):
"Utilisation de la class bddInsertion, permet d'inserer les données dans la base"
self.bdd=bddInsertion(bddName)
if self.fenetreDialogue.get_title()=='Ajout contact moral':
self.bdd.insertionContactMoral('Contact moral', self.ajoutWindow.get_widget("nom").get_text(), self.ajoutWindow.get_widget("adresse1").get_text(),self.ajoutWindow.get_widget("adresse2").get_text(),self.ajoutWindow.get_widget("mel").get_text(),'mel', 'mailto', self.ajoutWindow.get_widget("siteInternet").get_text(),'site internet', 'http', 'fixe', self.ajoutWindow.get_widget("numeroTelephone").get_text(),'portable', self.ajoutWindow.get_widget("NumeroPortable").get_text(),self.ajoutWindow.get_widget("raisonSociale").get_text())
self.quitter(None)
elif self.fenetreDialogue.get_title()=='Ajout contact physique':
self.bdd.insertionContactPhysique('Contact physique', self.ajoutWindow.get_widget("nom").get_text(),self.ajoutWindow.get_widget("prenom").get_text(),self.ajoutWindow.get_widget("dateNaissance").get_text(),self.ajoutWindow.get_widget("sexe").get_text(),'fixe', self.ajoutWindow.get_widget("numeroTelephone").get_text(),'portable', self.ajoutWindow.get_widget("NumeroPortable").get_text(),self.ajoutWindow.get_widget("adresse1").get_text(),self.ajoutWindow.get_widget("adresse2").get_text(),self.ajoutWindow.get_widget("mel").get_text(),'mel', 'mailto', self.ajoutWindow.get_widget("siteInternet").get_text(),'site internet', 'http', )
self.quitter(None)
else:
print "Probleme dans la selection du type de contact"