All pastes #913278 Raw Edit

Something

public text v1 · immutable
·published 2008-02-21 22:49 UTC
rendered paste body
#!/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"