# -*- coding: iso-8859-15 -*- #----------------------------------------------------------------------------- # Name: Frame_Parent_ClausesAppSMABTPv0.2.py # Purpose: # # Author: Grégory Francois # # Created: 2012/03/02 # RCS-ID: $Id: Frame_Parent_ClausesAppSMABTPv0.2.py $ # Copyright: (c) 2006 # Licence: #----------------------------------------------------------------------------- #Boa:Frame:Frame_Parent import wx, operator import wx.grid CHEMIN_CLAUSES_TAB = "C:\\Users\\A15424\\Desktop\\TestClauses.tab" def create(parent): return Frame_Parent(parent) [wxID_FRAME_PARENT, wxID_FRAME_PARENTBT_AJOUTER, wxID_FRAME_PARENTBT_MODIFIER, wxID_FRAME_PARENTBT_QUITTER, wxID_FRAME_PARENTBT_SUPPRIMER, wxID_FRAME_PARENTCH_TRIER, wxID_FRAME_PARENTRB_DATEMODIFICATION, wxID_FRAME_PARENTSC_CHERCHER, wxID_FRAME_PARENTST_CHOICETEXTE, wxID_FRAME_PARENTST_CODECLAUSE, wxID_FRAME_PARENTST_LIBELLECLAUSE, wxID_FRAME_PARENTST_TEXTECLAUSE, wxID_FRAME_PARENTST_TYPECLAUSE, wxID_FRAME_PARENTSW_AFFICHAGECLAUSES, ] = [wx.NewId() for _init_ctrls in range(14)] class Frame_Parent(wx.Frame): def _init_coll_gridBagSizer1_Items(self, parent): # generated method, don't edit parent.AddSpacer(wx.Size(20, 20), (0, 0), border=0, flag=0, span=(1, 8)) parent.AddSpacer(wx.Size(20, 20), (1, 0), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.st_ChoiceTexte, (1, 1), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.ch_Trier, (1, 2), border=0, flag=0, span=(1, 1)) parent.AddSpacer(wx.Size(20, 20), (1, 3), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.sc_Chercher, (1, 4), border=0, flag=0, span=(1,1)) parent.AddSpacer(wx.Size(20, 20), (2, 0), border=0, flag=0, span=(1, 8)) parent.AddSpacer(wx.Size(20, 20), (3, 0), border=0, flag=0, span=(7, 1)) parent.AddWindow(self.sw_AffichageClauses, (3, 1), border=0, flag=0, span=(7, 4)) parent.AddSpacer(wx.Size(20, 20), (3, 5), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.bt_Ajouter, (3, 6), border=0, flag=0, span=(1, 1)) parent.AddSpacer(wx.Size(20, 20), (3, 7), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.bt_Modifier, (5, 6), border=0, flag=0, span=(1,1)) parent.AddSpacer(wx.Size(20, 20), (6, 6), border=0, flag=0, span=(1, 1)) parent.AddWindow(self.bt_Supprimer, (7, 6), border=0, flag=0, span=(1, 1)) parent.AddSpacer(wx.Size(20, 718), (8, 6), border=0, flag=0, span=(1,1)) parent.AddWindow(self.bt_Quitter, (9, 6), border=0, flag=0, span=(1, 1)) parent.AddSpacer(wx.Size(20, 20), (10, 0), border=0, flag=0, span=(1,8)) parent.AddSpacer(wx.Size(20, 20), (4, 6), border=0, flag=0, span=(1,1)) ## def _init_coll_flexGridSizer_sw_Items(self, parent): ## # generated method, don't edit ## ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) ## parent.AddWindow(self.rb_DateModification, 0, border=0, flag=0) ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) ## parent.AddWindow(self.st_CodeClause, 0, border=0, flag=0) ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) ## parent.AddWindow(self.st_TypeClause, 0, border=0, flag=0) ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) ## parent.AddWindow(self.st_LibelleClause, 0, border=0, flag=0) ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) ## parent.AddWindow(self.st_TexteClause, 0, border=0, flag=0) ## parent.AddSpacer(wx.Size(20, 20), border=0, flag=0) def _init_sizers(self): # generated method, don't edit self.gridBagSizer1 = wx.GridBagSizer(hgap=0, vgap=0) ## self.flexGridSizer_sw = wx.FlexGridSizer(cols=5, hgap=0, rows=1, vgap=0) self._init_coll_gridBagSizer1_Items(self.gridBagSizer1) ## self._init_coll_flexGridSizer_sw_Items(self.flexGridSizer_sw) self.SetSizer(self.gridBagSizer1) ## self.sw_AffichageClauses.SetSizer(self.flexGridSizer_sw) def _init_ctrls(self, prnt): # generated method, don't edit wx.Frame.__init__(self, id=wxID_FRAME_PARENT, name=u'Frame_Parent', parent=prnt, pos=wx.Point(473, 78), size=wx.Size(1444, 972), style=wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX), title=u'Gestion des Clauses - SMABTP') self.SetClientSize(wx.Size(1428, 934)) self.Center(wx.BOTH) self.Bind(wx.EVT_CLOSE, self.OnClose) self.bt_Ajouter = wx.Button(id=wxID_FRAME_PARENTBT_AJOUTER, label=u'Ajouter', name=u'bt_Ajouter', parent=self, pos=wx.Point(1332, 63), size=wx.Size(75, 23), style=0) self.bt_Ajouter.Bind(wx.EVT_LEFT_DOWN, self.OnBt_AjouterLeftDown) self.bt_Modifier = wx.Button(id=wxID_FRAME_PARENTBT_MODIFIER, label=u'Modifier', name=u'bt_Modifier', parent=self, pos=wx.Point(1332, 106), size=wx.Size(75, 23), style=0) self.bt_Modifier.Bind(wx.EVT_LEFT_DOWN, self.OnBt_ModifierLeftDown) self.bt_Supprimer = wx.Button(id=wxID_FRAME_PARENTBT_SUPPRIMER, label=u'Supprimer', name=u'bt_Supprimer', parent=self, pos=wx.Point(1332, 149), size=wx.Size(75, 23), style=0) self.bt_Supprimer.Bind(wx.EVT_LEFT_DOWN, self.OnBt_SupprimerLeftDown) self.bt_Quitter = wx.Button(id=wxID_FRAME_PARENTBT_QUITTER, label=u'Quitter', name=u'bt_Quitter', parent=self, pos=wx.Point(1332, 890), size=wx.Size(75, 23), style=0) self.bt_Quitter.Bind(wx.EVT_LEFT_DOWN, self.OnClose) self.st_ChoiceTexte = wx.StaticText(id=wxID_FRAME_PARENTST_CHOICETEXTE, label=u'Trier par : ', name=u'st_ChoiceTexte', parent=self, pos=wx.Point(20, 20), size=wx.Size(52, 23), style=0) self.ch_Trier = wx.Choice(choices=self.ChoiceNameClauses, id=wxID_FRAME_PARENTCH_TRIER, name=u'ch_Trier', parent=self, pos=wx.Point(72, 20), size=wx.Size(130, 21), style=0) self.ch_Trier.SetSelection(1) self.ch_Trier.Bind(wx.EVT_CHOICE, self.Affichage_Choice, id=wxID_FRAME_PARENTCH_TRIER) self.sw_AffichageClauses = wx.ScrolledWindow(id=wxID_FRAME_PARENTSW_AFFICHAGECLAUSES, name=u'sw_AffichageClauses', parent=self, pos=wx.Point(20, 63), size=wx.Size(1292, 20), style=wx.HSCROLL | wx.VSCROLL) ## self.rb_DateModification = wx.RadioButton(id=wxID_FRAME_PARENTRB_DATEMODIFICATION, ## label=u'radioButton1', name=u'rb_DateModification', ## parent=self.sw_AffichageClauses, pos=wx.Point(20, 0), ## size=wx.Size(100, 16), style=0) ## self.rb_DateModification.SetValue(True) ## ## self.st_CodeClause = wx.StaticText(id=wxID_FRAME_PARENTST_CODECLAUSE, ## label='staticText1', name=u'st_CodeClause', ## parent=self.sw_AffichageClauses, pos=wx.Point(140, 0), ## size=wx.Size(92, 16), style=0) ## ## self.st_TypeClause = wx.StaticText(id=wxID_FRAME_PARENTST_TYPECLAUSE, ## label='staticText2', name=u'st_TypeClause', ## parent=self.sw_AffichageClauses, pos=wx.Point(252, 0), ## size=wx.Size(84, 16), style=0) ## ## self.st_LibelleClause = wx.StaticText(id=wxID_FRAME_PARENTST_LIBELLECLAUSE, ## label='staticText3', name=u'st_LibelleClause', ## parent=self.sw_AffichageClauses, pos=wx.Point(356, 0), ## size=wx.Size(300, 16), style=0) ## ## self.st_TexteClause = wx.StaticText(id=wxID_FRAME_PARENTST_TEXTECLAUSE, ## label='staticText4', name=u'st_TexteClause', ## parent=self.sw_AffichageClauses, pos=wx.Point(676, 0), ## size=wx.Size(596, 16), style=0) self.sc_Chercher = wx.SearchCtrl(id=wxID_FRAME_PARENTSC_CHERCHER, name=u'sc_Chercher', parent=self, pos=wx.Point(222, 20), size=wx.Size(330, 21), style=0) self.sc_Chercher.SetDescriptiveText("Chercher par mot clé") self.sc_Chercher.Bind(wx.EVT_TEXT_ENTER, self.OnSc_ChercherTextEnter, id=wxID_FRAME_PARENTSC_CHERCHER) self._init_sizers() self.Affichage_Choice(wx.EVT_CHOICE) def __init__(self, parent): self.CheckFichier() self._init_ctrls(parent) def CheckFichier(self): #on test si le fichier peut être lu try: self.f_ClausesOpen = open(CHEMIN_CLAUSES_TAB,'r') except IOError: #affichage d'un message d'erreur en cas de problème d'ouverture du fichier et on quitte l'app dlg = wx.MessageDialog(self, "Table des Clauses introuvable.", "Erreur - Fichier introuvable", wx.OK|wx.ICON_ERROR) result = dlg.ShowModal() dlg.Destroy() if result == wx.ID_OK: self.Destroy() else: #sinon on execute la fonction "Remplissage_Choice" self.Remplissage_Choice() def Remplissage_Choice(self): #initialisation des variables ListTmp = [] self.ContenuClauses = [] self.ChoiceNameClauses = [] i = 0 #on lit chaque ligne du fichier que l'on met dans une liste tmp et on quitte la boucle une fois arrivée à la fin du fichier while 1: tmp = self.f_ClausesOpen.readline() if not tmp: break ListTmp.append(tmp) #on parcours notre liste tmp afin de séparer les colonnes dans la liste while i0: self.ContenuClauses.append(ListTmp[i].split("\t")) else: self.ChoiceNameClauses = ListTmp[i].split("\t") i = i+1 #réinitialisation de la variable i i = 0 #on parcours la liste qui contient le contenu de notre fichier hors titre des colonnes #et on se positionne au niveau de notre 4ème colonne afin de remplacer les sauts de #ligne pour qu'ils soient interpretés correctement dans nos textctrl while i