Package medite :: Package GUI :: Module FormulairesMenuGenetique
[hide private]
[frames] | no frames]

Source Code for Module medite.GUI.FormulairesMenuGenetique

  1  # -*- coding: iso-8859-1 -*- 
  2  # Copyright 20003 - 2008: Julien Bourdaillet (julien.bourdaillet@lip6.fr), Jean-Gabriel Ganascia (jean-gabriel.ganascia@lip6.fr) 
  3  # This file is part of MEDITE. 
  4  # 
  5  #    MEDITE is free software; you can redistribute it and/or modify 
  6  #    it under the terms of the GNU General Public License as published by 
  7  #    the Free Software Foundation; either version 2 of the License, or 
  8  #    (at your option) any later version. 
  9  # 
 10  #    MEDITE is distributed in the hope that it will be useful, 
 11  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13  #    GNU General Public License for more details. 
 14  # 
 15  #    You should have received a copy of the GNU General Public License 
 16  #    along with Foobar; if not, write to the Free Software 
 17  #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
 18  #---------------------------------------------------------------------------- 
 19  # Nom:          FormulairesMenuGenetique.py 
 20  # Objet:        Ce fichier regroupe les differentes classes de formulaire 
 21  #               concernant le menu Genetique 
 22  #---------------------------------------------------------------------------- 
 23  #from wxPython.wx import * 
 24  import wx 
 25  import os 
 26  #from wxPython.lib.filebrowsebutton import FileBrowseButton,DirBrowseButton 
 27  from wx.lib.filebrowsebutton import FileBrowseButton,DirBrowseButton 
 28  from Utile.constantesGUI import * 
 29  from Utile.exceptionsDonnees import * 
 30  from GUI.MainPanel import MainPanel 
 31  import Controleurs.DGManager 
 32  from Donnees.planTravail import * 
 33  #--------------------------------------------------------------------------------------------------# 
 34   
 35  # Classe qui cree le formulaire permettant de charger les informations du dossier 
 36  # genetique courant sur le plan de travail 
37 -class FormChargerDG(wx.Frame):
38 - def __init__(self, parent):
39 wx.Frame.__init__(self, parent, -1,u"Charger le dossier g\xe9n\xe9tique",pos = wx.Point(200,200), 40 size = ( 320,150), 41 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 42 panelDG=wx.Panel(self,-1) 43 self.fenetreMedite=parent 44 45 textAuteur=wx.StaticText(panelDG,-1,"Auteur : ",wx.Point(10,12)) 46 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 47 self.dgm = Controleurs.DGManager.DGManager() 48 listeAuteurs = self.dgm.getListeAuteurs() 49 self.ctrlAuteur = wx.ComboBox(panelDG,-1, listeAuteurs[0],(75,10), 50 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 51 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 52 53 textOeuvre=wx.StaticText(panelDG,-1,"Oeuvre : ",wx.Point(10,42)) 54 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 55 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 56 self.ctrlOeuvre = wx.ComboBox(panelDG,-1, listeOeuvres[0],(75,40), 57 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 58 59 bValider = wx.Button(panelDG, ID_OK, "VALIDER", wx.Point(50, 80)) 60 wx.EVT_BUTTON(self, ID_OK, self.onOk) 61 62 bAnnuler = wx.Button(panelDG, ID_ANNULER, "ANNULER", wx.Point(180, 80)) 63 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler) 64 65 bValider.SetFocus()
66
67 - def EvtCtrlAuteur(self,event):
68 if (self.ctrlAuteur.GetStringSelection()!=""): 69 #on recupere la liste des oeuvres de l'auteur selectionné 70 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 71 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 72 self.ctrlOeuvre.Clear() 73 self.ctrlOeuvre.AppendItems(listeOeuvres) 74 self.ctrlOeuvre.Refresh()
75
76 - def onOk(self,event):
77 if (self.ctrlOeuvre.GetStringSelection()!=""): 78 # on supprime les panels et on en recrée un nouveau 79 self.fenetreMedite.nb.DeleteAllPages() 80 self.fenetreMedite.listePlanTravail.flushListe() 81 self.fenetreMedite.createTreePanel() 82 # on crée une nouvelle liste dans laquelle on insère un plan 83 self.fenetreMedite.listePlanTravail = ListePlanTravail() 84 plan = PlanTravail("","","","","","",Parametres(0,0,0,0)) 85 self.fenetreMedite.listePlanTravail.appendPlanTravail(plan) 86 panel = MainPanel(self.fenetreMedite.nb,plan) 87 panel.initialised = False 88 self.fenetreMedite.nb.AddPage(panel,plan.getEtatSource()+"-"+plan.getEtatCible()) 89 self.fenetreMedite.nb.SetSelection(self.fenetreMedite.nb.GetPageCount()-1) 90 # 91 self.fenetreMedite.getCompPanel().textInfoAuteur.SetLabel( self.ctrlAuteur.GetStringSelection()) 92 self.fenetreMedite.getCompPanel().textInfoOeuvre.SetLabel( self.ctrlOeuvre.GetStringSelection()) 93 ### Mise a jour du plan de travail 94 self.fenetreMedite.getPlanTravail().setAuteur(self.ctrlAuteur.GetStringSelection()) 95 self.fenetreMedite.getPlanTravail().setOeuvre(self.ctrlOeuvre.GetStringSelection()) 96 self.fenetreMedite.getPlanTravail().setVersionSource('') 97 self.fenetreMedite.getPlanTravail().setEtatSource('') 98 self.fenetreMedite.getPlanTravail().setVersionCible('') 99 self.fenetreMedite.getPlanTravail().setEtatCible('') 100 ### 101 self.fenetreMedite.disableDGCharge() 102 self.fenetreMedite.enableMenuDGCharge() 103 ### 104 self.fenetreMedite.DGAuteur = self.ctrlAuteur.GetStringSelection() 105 self.fenetreMedite.DGOeuvre = self.ctrlOeuvre.GetStringSelection() 106 self.fenetreMedite.DGLoaded = True 107 self.fenetreMedite.treePanel.reloadTree() 108 self.fenetreMedite.reloadNavMenu() 109 self.Close() 110 else: 111 text=u"Vous devez s\xe9lectionner une oeuvre" 112 dlg = wx.MessageDialog(self, text, 'Attention !',wx.OK) 113 dlg.ShowModal() 114 dlg.Destroy()
115
116 - def onAnnuler(self,event):
117 self.Close()
118 119 # Fenetre de dialogue pour choisir un auteur
120 -class SelectionListe(wx.SingleChoiceDialog):
121 - def __init__(self, parent,pPhrase, pTitre, pListe):
122 wx.SingleChoiceDialog.__init__(self, parent,pPhrase,pTitre,pListe, 123 wx.OK|wx.CANCEL)
124 125 #Classe qui cree un formulaire qui recupere l'auteur,l'oeuvre selectionnes et le nom du dossier 126 # saisi. 127 #Appelle la methode creerDossierVersion du controleur CDossierGenetique
128 -class FormCreerVersion(wx.Frame):
129 - def __init__(self, parent):
130 wx.Frame.__init__(self, parent, -1,u"Cr\xe9er un dossier Version",pos = wx.Point(200,200), 131 size = (320,185), 132 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 133 self.fenetreMedite=parent 134 panel=wx.Panel(self,-1) 135 136 textAuteur=wx.StaticText(panel,-1,"Auteur : ",wx.Point(15,12)) 137 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 138 self.dgm = Controleurs.DGManager.DGManager() 139 listeAuteurs = self.dgm.getListeAuteurs() 140 self.ctrlAuteur = wx.ComboBox(panel,-1, listeAuteurs[0],(75,10), 141 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 142 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 143 144 textOeuvre=wx.StaticText(panel,-1,"Oeuvre : ",wx.Point(15,42)) 145 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 146 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 147 self.ctrlOeuvre = wx.ComboBox(panel,-1, listeOeuvres[0],(75,40), 148 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 149 150 textVersion=wx.StaticText(panel,-1,"Version : ",wx.Point(15,72)) 151 self.ctrlVersion=wx.TextCtrl(panel,-1,"",wx.Point(75,70),size=(125,-1)) 152 self.ctrlVersion.SetInsertionPoint(0) 153 154 bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 110)) 155 wx.EVT_BUTTON(self, ID_OK, self.onValider) 156 157 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 110)) 158 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
159
160 - def EvtCtrlAuteur(self,event):
161 if (self.ctrlAuteur.GetStringSelection()!=""): 162 #on recupere la liste des oeuvres de l'auteur selectionné 163 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 164 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 165 self.ctrlOeuvre.Clear() 166 self.ctrlOeuvre.AppendItems(listeOeuvres) 167 self.ctrlOeuvre.Refresh()
168
169 - def onValider(self,event):
170 nomA = self.ctrlAuteur.GetStringSelection() 171 titreO = self.ctrlOeuvre.GetStringSelection() 172 version = self.ctrlVersion.GetValue() 173 if nomA == '' or titreO == '' or version =='': 174 dlg=wx.MessageDialog(self, 'Vous devez remplir tous les champs !',"Attention",wx.OK) 175 dlg.ShowModal() 176 dlg.Destroy() 177 else : 178 try: 179 #self.fenetreMedite.cdos.creerDossierVersion(nomA,titreO,version) 180 #self.fenetreMedite.cinfos.enregistrerVersion(nomA,titreO,version) 181 self.dgm.addVersion(nomA,titreO,version) 182 self.fenetreMedite.treePanel.reloadTree() 183 self.Close() 184 except AuteurNonTrouve, eANT: 185 dlg = wx.MessageDialog(self, u'Auteur Non Trouv\xe9', 'Attention !',wx.OK) 186 dlg.ShowModal() 187 dlg.Destroy() 188 self.Close() 189 except OeuvreNonTrouvee, eONT: 190 dlg = wx.MessageDialog(self, u'Oeuvre Non Trouv\xe9e' , 'Attention !',wx.OK) 191 dlg.ShowModal() 192 dlg.Destroy() 193 self.Close() 194 except OSError : 195 dlg = wx.MessageDialog(self, u'Ce nom de dossier \xe9xiste d\xe9j\xe0. Veillez \xe0 en entrer un autre.', 'Attention !',wx.OK) 196 dlg.ShowModal() 197 dlg.Destroy()
198
199 - def onAnnuler(self,event):
200 self.Close()
201 202 203 #Classe qui cree un formulaire de selection. 204 #A partir de la selection de l'auteur, de l'oeuvre, du dossier version, et du fichier texte, 205 #la classe appelle la methode creerEtat de cDossierGenetique
206 -class FormCreerEtat(wx.Frame):
207 - def __init__(self, parent):
208 wx.Frame.__init__(self, parent, -1,u"Cr\xe9er un état",pos = wx.Point(200,200), 209 size = ( 330,300), 210 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 211 self.fenetreMedite=parent 212 panel=wx.Panel(self,-1) 213 214 textAuteur=wx.StaticText(panel,-1,"Auteur ",wx.Point(15,12)) 215 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 216 self.dgm = Controleurs.DGManager.DGManager() 217 listeAuteurs = self.dgm.getListeAuteurs() 218 self.ctrlAuteur = wx.ComboBox(panel,-1, listeAuteurs[0],(75,10), 219 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 220 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 221 self.Bind(wx.EVT_COMBOBOX, self.EvtCtrlAuteur, self.ctrlAuteur) 222 223 textOeuvre=wx.StaticText(panel,-1,"Oeuvre ",wx.Point(15,52)) 224 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 225 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 226 self.ctrlOeuvre = wx.ComboBox(panel,-1, listeOeuvres[0],(75,50), 227 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 228 self.Bind(wx.EVT_TEXT, self.EvtCtrlOeuvre, self.ctrlOeuvre) 229 self.Bind(wx.EVT_COMBOBOX, self.EvtCtrlOeuvre, self.ctrlOeuvre) 230 231 textVersion=wx.StaticText(panel,-1,"Version ",wx.Point(15,92)) 232 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 233 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 234 self.ctrlVersion = wx.ComboBox(panel,-1, listeVersions[0],(75,90), 235 (150, -1), listeVersions, wx.CB_DROPDOWN | wx.CB_READONLY) 236 self.Bind(wx.EVT_TEXT, self.EvtCtrlVersion, self.ctrlVersion) 237 self.Bind(wx.EVT_COMBOBOX, self.EvtCtrlVersion, self.ctrlVersion) 238 ############ 239 textEtatP=wx.StaticText(panel,-1,u"Etat Père ",wx.Point(15,132)) 240 #listeEtatPs=self.fenetreMedite.cdos.getListeVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 241 listeEtatPs=self.dgm.getListeEtatsVersion(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 242 #listeEtatPs.insert(0,"") 243 self.ctrlEtatP = wx.ComboBox(panel,-1, listeEtatPs[0],(75,130), 244 (150, -1), listeEtatPs, wx.CB_DROPDOWN | wx.CB_READONLY) 245 ############## 246 247 textFichier=wx.StaticText(panel,-1,"Fichier ",wx.Point(15,172)) 248 self.ctrlFichier=wx.TextCtrl(panel,-1,"",wx.Point(77,170),size=(125,-1),style=wx.TE_READONLY) 249 self.ctrlFichier.SetInsertionPoint(0) 250 251 bFichier = wx.Button(panel, ID_PARCOURIR, "Parcourir",wx.Point(220,170)) 252 wx.EVT_BUTTON(self, ID_PARCOURIR, self.onParcourir) 253 254 bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 210)) 255 wx.EVT_BUTTON(self, ID_OK, self.onValider) 256 257 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 210)) 258 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
259
260 - def EvtCtrlAuteur(self,event):
261 if (self.ctrlAuteur.GetStringSelection()!=""): 262 #on recupere la liste des oeuvres de l'auteur selectionné 263 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 264 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 265 self.ctrlOeuvre.Clear() 266 self.ctrlOeuvre.AppendItems(listeOeuvres) 267 self.ctrlOeuvre.SetSelection(0) 268 self.EvtCtrlOeuvre(None) 269 else: 270 self.ctrlOeuvre.Clear() 271 self.ctrlVersion.Clear() 272 self.ctrlEtatP.Clear() 273 self.EvtCtrlOeuvre(None)
274
275 - def EvtCtrlOeuvre(self,event):
276 if (self.ctrlOeuvre.GetStringSelection()!=""): 277 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 278 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 279 self.ctrlVersion.Clear() 280 self.ctrlVersion.AppendItems(listeVersions) 281 self.ctrlVersion.SetSelection(0) 282 self.EvtCtrlVersion(None) 283 self.ctrlEtatP.Refresh() 284 else: 285 self.ctrlVersion.Clear() 286 self.ctrlEtatP.Clear() 287 self.EvtCtrlVersion(None)
288
289 - def EvtCtrlVersion(self, event):
290 if (self.ctrlOeuvre.GetStringSelection()!=""): 291 #listeEtats=self.fenetreMedite.cdos.getListeVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 292 listeEtatPs=self.dgm.getListeEtatsVersion(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 293 #listeEtats.insert(0,"") 294 self.ctrlEtatP.Clear() 295 self.ctrlEtatP.AppendItems(listeEtatPs) 296 self.ctrlEtatP.SetSelection(0) 297 self.ctrlEtatP.Refresh() 298 else: 299 self.ctrlEtatP.Clear() 300 self.ctrlEtatP.Refresh()
301
302 - def onParcourir(self,event):
303 wildcard = "Fichier Texte (*.txt)|*.txt|" \ 304 "All files (*.*)|*.*" 305 dlg = wx.FileDialog(self, "Choisir un fichier", "", "", wildcard, wx.OPEN|wx.MULTIPLE) 306 if dlg.ShowModal() == wx.ID_OK: 307 for path in dlg.GetPaths(): 308 self.pathFichier= path 309 self.ctrlFichier.SetValue(self.pathFichier) 310 dlg.Destroy()
311
312 - def onValider(self,event):
313 if ((self.ctrlVersion.GetStringSelection()!="") & (self.ctrlFichier.GetValue()!="")): 314 try: 315 (dir,base)=os.path.split(self.ctrlFichier.GetValue()) 316 #(versionName,ext)=os.path.splitext(base) 317 # self.fenetreMedite.cdos.creerEtat(self.ctrlAuteur.GetStringSelection(), 318 # self.ctrlOeuvre.GetStringSelection(), 319 # self.ctrlVersion.GetStringSelection(), 320 # self.pathFichier) 321 # self.fenetreMedite.cinfos.enregistrerEtat(self.ctrlAuteur.GetStringSelection(), 322 # self.ctrlOeuvre.GetStringSelection(),base,self.ctrlVersion.GetStringSelection(),self.ctrlEtatP.GetStringSelection()) 323 self.dgm.addEtat(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection(), 324 self.pathFichier,self.ctrlEtatP.GetStringSelection()) 325 self.fenetreMedite.treePanel.reloadTree() 326 except AuteurNonTrouve, eANT: 327 dlg = wx.MessageDialog(self, u'Auteur Non Trouv\xe9', 'Attention !',wx.OK) 328 dlg.ShowModal() 329 dlg.Destroy() 330 except OeuvreNonTrouvee, eONT: 331 dlg = wx.MessageDialog(self, u'Oeuvre Non Trouv\xe9e' , 'Attention !',wx.OK) 332 dlg.ShowModal() 333 dlg.Destroy() 334 except FichierExistant, eFE: 335 dlg = FormFicExistant(self, self.fenetreMedite, eFE) 336 dlg.Show(True) 337 self.Close() 338 else: 339 dlg = wx.MessageDialog(self, 'Vous devez remplir tous les champs' , 'Attention !',wx.OK) 340 dlg.ShowModal() 341 dlg.Destroy()
342
343 - def onAnnuler(self,event):
344 self.Close()
345 346 347 #Classe qui cree un formulaire qui recupere l'auteur,l'oeuvre et la version selectionnes 348 #et la methode supprimerDossierVersion du controleur CDossierGenetique
349 -class FormSupprimerVersion(wx.Frame):
350 - def __init__(self, parent):
351 wx.Frame.__init__(self, parent, -1,"Supprimer un dossier Version", pos = wx.Point(200,200) 352 ,size = ( 310,200), 353 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 354 self.fenetreMedite=parent 355 panel=wx.Panel(self,-1) 356 357 textAuteur=wx.StaticText(panel,-1,"Auteur : ",wx.Point(15,12)) 358 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 359 self.dgm = Controleurs.DGManager.DGManager() 360 listeAuteurs = self.dgm.getListeAuteurs() 361 self.ctrlAuteur = wx.ComboBox(panel,-1, listeAuteurs[0],(75,10), 362 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 363 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 364 365 textOeuvre=wx.StaticText(panel,-1,"Oeuvre : ",wx.Point(15,52)) 366 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 367 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 368 self.ctrlOeuvre = wx.ComboBox(panel,-1, listeOeuvres[0],(75,50), 369 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 370 self.Bind(wx.EVT_TEXT, self.EvtCtrlOeuvre, self.ctrlOeuvre) 371 372 textVersion=wx.StaticText(panel,-1,"Version : ",wx.Point(20,92)) 373 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 374 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 375 self.ctrlVersion = wx.ComboBox(panel,-1, listeVersions[0],(75,90), 376 (150, -1), listeVersions, wx.CB_DROPDOWN | wx.CB_READONLY) 377 378 bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 130)) 379 wx.EVT_BUTTON(self, ID_OK, self.onValider) 380 381 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 130)) 382 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
383
384 - def EvtCtrlAuteur(self,event):
385 if (self.ctrlAuteur.GetStringSelection()!=""): 386 #on recupere la liste des oeuvres de l'auteur selectionné 387 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 388 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 389 self.ctrlOeuvre.Clear() 390 self.ctrlOeuvre.AppendItems(listeOeuvres) 391 self.ctrlOeuvre.SetSelection(0) 392 self.EvtCtrlOeuvre(None) 393 else: 394 self.ctrlOeuvre.Clear() 395 self.ctrlVersion.Clear() 396 self.ctrlEtatP.Clear() 397 self.EvtCtrlOeuvre(None)
398
399 - def EvtCtrlOeuvre(self,event):
400 if (self.ctrlOeuvre.GetStringSelection()!=""): 401 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 402 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 403 self.ctrlVersion.Clear() 404 self.ctrlVersion.AppendItems(listeVersions) 405 self.ctrlVersion.SetSelection(0) 406 else: 407 self.ctrlVersion.Clear()
408
409 - def onValider(self,event):
410 if (self.ctrlVersion.GetStringSelection()!=""): 411 try: 412 dlg=wx.MessageDialog(self, u"Si vous supprimez un dossier version, vous supprimez tous les \xe9l\xe9ments qui s'y rattache.\nVoulez-vous continuez?","Attention!",wx.YES_NO | wx.ICON_EXCLAMATION ) 413 if dlg.ShowModal() ==wx.ID_YES: 414 self.nom = self.ctrlAuteur.GetStringSelection() 415 self.titre = self.ctrlOeuvre.GetStringSelection() 416 self.version = self.ctrlVersion.GetStringSelection() 417 #self.fenetreMedite.cdos.supprimerDossierVersion(self.nom,self.titre,self.version) 418 #self.fenetreMedite.cinfos.supprimerVersion(self.nom,self.titre,self.version) 419 self.dgm.delVersion(self.nom,self.titre,self.version) 420 miseAJEcranVersionSupprimer(self) 421 self.fenetreMedite.treePanel.reloadTree() 422 except IOError, e: 423 pass 424 self.Close() 425 else: 426 dlg = wx.MessageDialog(self,"Vous devez remplir Tous les champs!", 'Attention !',wx.OK) 427 dlg.ShowModal() 428 dlg.Destroy()
429
430 - def onAnnuler(self,event):
431 self.Close()
432 433 434 #Classe qui cree un formulaire permettant de selectionner un auteur, une oeuvre, 435 # une version et un état 436 # et d'appeler la methode supprimerEtat du controleur CDossierGenetique
437 -class FormSupprimerEtat(wx.Frame):
438 - def __init__(self, parent):
439 wx.Frame.__init__(self, parent, -1,u"Supprimer un état",pos = wx.Point(200,200), 440 size = (330,240), 441 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 442 self.fenetreMedite=parent 443 panel=wx.Panel(self,-1) 444 445 textAuteur=wx.StaticText(panel,-1,"Auteur : ",wx.Point(15,12)) 446 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 447 self.dgm = Controleurs.DGManager.DGManager() 448 listeAuteurs = self.dgm.getListeAuteurs() 449 self.ctrlAuteur = wx.ComboBox(panel,-1, listeAuteurs[0],(75,10), 450 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 451 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 452 453 textOeuvre=wx.StaticText(panel,-1,"Oeuvre : ",wx.Point(15,52)) 454 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 455 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 456 self.ctrlOeuvre = wx.ComboBox(panel,-1, listeOeuvres[0],(75,50), 457 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 458 self.Bind(wx.EVT_TEXT, self.EvtCtrlOeuvre, self.ctrlOeuvre) 459 460 textVersion=wx.StaticText(panel,-1,"Version : ",wx.Point(15,92)) 461 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 462 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 463 self.ctrlVersion = wx.ComboBox(panel,-1, listeVersions[0],(75,90), 464 (150, -1), listeVersions, wx.CB_DROPDOWN | wx.CB_READONLY) 465 self.Bind(wx.EVT_TEXT, self.EvtCtrlVersion, self.ctrlVersion) 466 467 textEtat=wx.StaticText(panel,-1,"Etat : ",wx.Point(15,132)) 468 #listeEtats=self.fenetreMedite.cdos.getListeVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 469 listeEtats=self.dgm.getListeEtatsVersion(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 470 #listeEtats.insert(0,"") 471 self.ctrlEtat = wx.ComboBox(panel,-1, listeEtats[0],(75,130), 472 (150, -1), listeEtats, wx.CB_DROPDOWN | wx.CB_READONLY) 473 474 bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 170)) 475 wx.EVT_BUTTON(self, ID_OK, self.onValider) 476 477 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 170)) 478 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
479
480 - def EvtCtrlAuteur(self,event):
481 if (self.ctrlAuteur.GetStringSelection()!=""): 482 #on recupere la liste des oeuvres de l'auteur selectionné 483 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 484 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 485 self.ctrlOeuvre.Clear() 486 self.ctrlOeuvre.AppendItems(listeOeuvres) 487 self.ctrlOeuvre.SetSelection(0) 488 self.EvtCtrlOeuvre(None) 489 #self.EvtCtrlVersion(NULL) 490 else: 491 self.ctrlOeuvre.Clear() 492 self.ctrlVersion.Clear() 493 self.ctrlEtat.Clear() 494 self.EvtCtrlOeuvre(None)
495 #self.EvtCtrlVersion(NULL) 496
497 - def EvtCtrlOeuvre(self,event):
498 if (self.ctrlOeuvre.GetStringSelection()!=""): 499 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 500 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 501 self.ctrlVersion.Clear() 502 self.ctrlVersion.AppendItems(listeVersions) 503 self.ctrlVersion.SetSelection(0) 504 self.EvtCtrlVersion(None) 505 self.ctrlEtat.Refresh() 506 else: 507 self.ctrlVersion.Clear() 508 self.ctrlEtat.Clear() 509 self.EvtCtrlVersion(None)
510
511 - def EvtCtrlVersion(self, event):
512 if (self.ctrlOeuvre.GetStringSelection()!=""): 513 #listeEtats=self.fenetreMedite.cdos.getListeVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 514 listeEtats=self.dgm.getListeEtatsVersion(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection(),self.ctrlVersion.GetStringSelection()) 515 #listeEtats.insert(0,"") 516 self.ctrlEtat.Clear() 517 self.ctrlEtat.AppendItems(listeEtats) 518 self.ctrlEtat.SetSelection(0) 519 self.ctrlEtat.Refresh() 520 else: 521 self.ctrlEtat.Clear() 522 self.ctrlEtat.Refresh()
523
524 - def onValider(self,event):
525 if ((self.ctrlEtat.GetStringSelection()!="")): 526 try: 527 dlg=wx.MessageDialog(self, u"Si vous supprimez un état, vous supprimez tous les \xe9l\xe9ments qui s'y rattache.\nVoulez-vous continuez?","Attention!",wx.YES_NO | wx.ICON_EXCLAMATION ) 528 if dlg.ShowModal() ==wx.ID_YES: 529 self.nom = self.ctrlAuteur.GetStringSelection() 530 self.titre = self.ctrlOeuvre.GetStringSelection() 531 self.version = self.ctrlVersion.GetStringSelection() 532 self.etat = self.ctrlEtat.GetStringSelection() 533 #self.fenetreMedite.cdos.supprimerEtat(self.nom,self.titre,self.version,self.etat) 534 #self.fenetreMedite.cinfos.supprimerEtat(self.nom,self.titre,self.version,self.etat) 535 self.dgm.delEtat(self.nom,self.titre,self.version,self.etat) 536 miseAJEcranEtatSupprimer(self) 537 self.fenetreMedite.treePanel.reloadTree() 538 except IOError, eIO: 539 pass 540 self.Close() 541 else: 542 dlg = wx.MessageDialog(self, "Vous devez remplir tous les champs", 'Attention !',wx.OK) 543 dlg.ShowModal() 544 dlg.Destroy()
545
546 - def onAnnuler(self,event):
547 self.Close()
548 549 550
551 -def miseAJEcranEtatSupprimer(self):
552 ## print 'Mise a jour ecran qd supression etat' 553 auteur = self.fenetreMedite.getPlanTravail().getAuteur() 554 oeuvre = self.fenetreMedite.getPlanTravail().getOeuvre() 555 versionS = self.fenetreMedite.getPlanTravail().getVersionSource() 556 etatS = self.fenetreMedite.getPlanTravail().getEtatSource() 557 versionC = self.fenetreMedite.getPlanTravail().getVersionCible() 558 etatC = self.fenetreMedite.getPlanTravail().getEtatCible() 559 fontDefault=wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.NORMAL,encoding=wx.FONTENCODING_ISO8859_1) 560 561 if auteur==self.nom and oeuvre==self.titre : 562 if (versionS==self.version and etatS==self.etat): 563 miseAJMenu(self) 564 miseAJCoteS(self) 565 if (versionC==self.version and etatC==self.etat): 566 miseAJMenu(self) 567 miseAJCoteC(self)
568 569
570 -def miseAJEcranVersionSupprimer(self):
571 ## print 'Mise a jour ecran qd supression version' 572 auteur = self.fenetreMedite.getPlanTravail().getAuteur() 573 oeuvre = self.fenetreMedite.getPlanTravail().getOeuvre() 574 versionS = self.fenetreMedite.getPlanTravail().getVersionSource() 575 etatS = self.fenetreMedite.getPlanTravail().getEtatSource() 576 versionC = self.fenetreMedite.getPlanTravail().getVersionCible() 577 etatC = self.fenetreMedite.getPlanTravail().getEtatCible() 578 579 if versionS==self.version: 580 miseAJMenu(self) 581 miseAJCoteS(self) 582 if versionC==self.version: 583 miseAJMenu(self) 584 miseAJCoteC(self)
585
586 -def miseAJMenu(self):
587 self.fenetreMedite.mInformations.Enable(ID_CHARGER_INFOS,False) 588 self.fenetreMedite.smEnregistrer.Enable(ID_ADD_TRANSFOS, False) 589 self.fenetreMedite.smEnregistrer.Enable(ID_ADD_COMMENT, False) 590 self.fenetreMedite.smEnregistrer.Enable(ID_ADD_TRANSFOS_COMMENT, False) 591 self.fenetreMedite.mMedite.Enable(ID_EXECUTER, False) 592 self.fenetreMedite.tb.EnableTool(ID_EXECUTER, False)
593
594 -def miseAJCoteS(self):
595 fontDefault=wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.NORMAL,encoding=wx.FONTENCODING_ISO8859_1) 596 self.fenetreMedite.getCompPanel().textInfoVersionS.SetLabel("") 597 self.fenetreMedite.getCompPanel().textInfoEtatS.SetLabel("") 598 self.fenetreMedite.getCompPanel().textWindowLeft.SetValue("état source") 599 ### Mise a  zero des onglets transformations et commentaire 600 self.fenetreMedite.getCompPanel().transformations.SetValue('') 601 self.fenetreMedite.getCompPanel().commentaire.SetValue('') 602 ### Suppression des couleurs pour le second état 603 texte = self.fenetreMedite.getCompPanel().textWindowRight.GetValue() 604 self.fenetreMedite.getCompPanel().textWindowRight.SetValue('') 605 self.fenetreMedite.getCompPanel().textWindowRight.SetStyle(0,40,wx.TextAttr(wx.NullColour, 606 wx.NullColour, 607 fontDefault)) 608 self.fenetreMedite.getCompPanel().textWindowRight.SetValue(texte) 609 ### Mise a jour du plan de travail 610 self.fenetreMedite.getPlanTravail().setVersionSource('') 611 self.fenetreMedite.getPlanTravail().setEtatSource('') 612 ### 613
614 -def miseAJCoteC(self):
615 self.fenetreMedite.getCompPanel().textInfoVersionC.SetLabel("") 616 self.fenetreMedite.getCompPanel().textInfoEtatC.SetLabel("") 617 self.fenetreMedite.getCompPanel().textWindowRight.SetValue("état cible") 618 ### Mise a  zero des onglets transformations et commentaire 619 self.fenetreMedite.getCompPanel().transformations.SetValue('') 620 self.fenetreMedite.getCompPanel().commentaire.SetValue('') 621 ### Suppression des couleurs pour le second état 622 fontDefault=wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.NORMAL,encoding=wx.FONTENCODING_ISO8859_1) 623 texte = self.fenetreMedite.getCompPanel().textWindowLeft.GetValue() 624 self.fenetreMedite.getCompPanel().textWindowLeft.SetValue('') 625 self.fenetreMedite.getCompPanel().textWindowLeft.SetStyle(0,40,wx.TextAttr(wx.NullColour, 626 wx.NullColour, 627 fontDefault)) 628 self.fenetreMedite.getCompPanel().textWindowLeft.SetValue(texte) 629 ### Mise a jour du plan de travail 630 self.fenetreMedite.getPlanTravail().setVersionCible('') 631 self.fenetreMedite.getPlanTravail().setEtatCible('')
632 ### 633 634 635 # Classe qui cree un formulaire qui recupere l'auteur,l'oeuvre selectionnes et 636 # le nom du repertoire de texte à importer dans le dossier genetique. 637 # Appelle la methode creerDossierVersion du controleur CDossierGenetique
638 -class FormImporterRepertoire(wx.Frame):
639 - def __init__(self, parent):
640 wx.Frame.__init__(self, parent, -1,u"Importer un r\xe9pertoire de textes", 641 pos = wx.Point(150,200),size = (320,205), 642 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 643 self.fenetreMedite=parent 644 panel=wx.Panel(self,-1) 645 646 textAuteur=wx.StaticText(panel,-1,"Auteur : ",wx.Point(15,12)) 647 #listeAuteurs=self.fenetreMedite.cdon.getListeNomsAuteurs() 648 self.dgm = Controleurs.DGManager.DGManager() 649 listeAuteurs = self.dgm.getListeAuteurs() 650 self.ctrlAuteur = wx.ComboBox(panel,-1, listeAuteurs[0],(75,10), 651 (150, -1), listeAuteurs, wx.CB_DROPDOWN | wx.CB_READONLY) 652 self.Bind(wx.EVT_TEXT, self.EvtCtrlAuteur, self.ctrlAuteur) 653 654 textOeuvre=wx.StaticText(panel,-1,"Oeuvre : ",wx.Point(15,42)) 655 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 656 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 657 self.ctrlOeuvre = wx.ComboBox(panel,-1, listeOeuvres[0],(75,50), 658 (150, -1), listeOeuvres, wx.CB_DROPDOWN | wx.CB_READONLY) 659 self.Bind(wx.EVT_TEXT, self.EvtCtrlOeuvre, self.ctrlOeuvre) 660 661 textRep=wx.StaticText(panel,-1,u"R\xe9pertoire : ",wx.Point(15,92)) 662 self.ctrlRep=wx.TextCtrl(panel,-1,"",wx.Point(75,90),size=(125,-1)) 663 self.ctrlRep.SetInsertionPoint(0) 664 665 bRep = wx.Button(panel, ID_SELECT_REP, u"S\xe9lection",wx.Point(220,90)) 666 wx.EVT_BUTTON(self, ID_SELECT_REP, self.onSelectRepertoire) 667 668 bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 130)) 669 wx.EVT_BUTTON(self, ID_OK, self.onValider) 670 671 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 130)) 672 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
673
674 - def EvtCtrlAuteur(self,event):
675 if (self.ctrlAuteur.GetStringSelection()!=""): 676 #on recupere la liste des oeuvres de l'auteur selectionné 677 #listeOeuvres=self.fenetreMedite.cdon.getListeTitresByAuteur(self.ctrlAuteur.GetStringSelection()) 678 listeOeuvres=self.dgm.getListeOeuvresAuteur(self.ctrlAuteur.GetStringSelection()) 679 self.ctrlOeuvre.Clear() 680 self.ctrlOeuvre.AppendItems(listeOeuvres) 681 self.ctrlOeuvre.Refresh()
682
683 - def EvtCtrlOeuvre(self,event):
684 if (self.ctrlOeuvre.GetStringSelection()!=""): 685 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection()) 686 listeVersions=self.dgm.getListeVersionsDG(self.ctrlAuteur.GetStringSelection(),self.ctrlOeuvre.GetStringSelection())
687
688 - def onSelectRepertoire(self,event):
689 dlg = wx.DirDialog(self, u"Choisir un r\xe9pertoire",pos = wx.Point(300,250)) 690 if dlg.ShowModal() == wx.ID_OK: 691 self.pathRep= dlg.GetPath() 692 self.ctrlRep.SetValue(self.pathRep) 693 dlg.Destroy()
694 695
696 - def onValider(self,event):
697 nomA = self.ctrlAuteur.GetStringSelection() 698 titreO = self.ctrlOeuvre.GetStringSelection() 699 repertoire = self.ctrlRep.GetValue() 700 if nomA == '' or titreO == '' or repertoire =='': 701 dlg=wx.MessageDialog(self, 'Vous devez remplir tous les champs !',"Attention",wx.OK) 702 dlg.ShowModal() 703 dlg.Destroy() 704 else : 705 try: 706 #self.fenetreMedite.cdos.importerRepertoire(nomA,titreO,repertoire,self.fenetreMedite) 707 self.dgm.importTextFolder(nomA,titreO,repertoire) 708 self.fenetreMedite.treePanel.reloadTree() 709 self.Close() 710 except AuteurNonTrouve, eANT: 711 dlg = wx.MessageDialog(self, u'Auteur Non Trouv\xe9', 'Attention !',wx.OK) 712 dlg.ShowModal() 713 dlg.Destroy() 714 self.Close() 715 except OeuvreNonTrouvee, eONT: 716 dlg = wx.MessageDialog(self, u'Oeuvre Non Trouv\xe9e' , 'Attention !',wx.OK) 717 dlg.ShowModal() 718 dlg.Destroy() 719 self.Close() 720 except OSError : 721 dlg = wx.MessageDialog(self, u'Ce nom de dossier \xe9xiste d\xe9j\xe0. Veillez \xe0 en entrer un autre.', 'Attention !',wx.OK) 722 dlg.ShowModal() 723 dlg.Destroy() 724 except FichierExistant, eFE: 725 dlg = FormFicExistant(self, self.fenetreMedite, eFE) 726 dlg.Show(True) 727 self.Close()
728
729 - def onAnnuler(self,event):
730 self.Close()
731 732 ## formulaire pour choisir si on ecrase un fichier texte deja existant dans un DG
733 -class FormFicExistant(wx.Frame):
734 - def __init__(self, parent, pFenetreMedite, pException):
735 wx.Frame.__init__(self, pFenetreMedite, -1, u"Le fichier existe d\xe9j\xe0", 736 pos = wx.Point(200,200) 737 ,size = (250,150), 738 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 739 740 self.fenetreMedite=pFenetreMedite 741 self.exception = pException 742 panel=wx.Panel(self,-1) 743 744 fichier = pException.getFicDest() 745 (filepathV, nomEtat) = os.path.split(fichier) 746 (filepathDG, nomVersion) = os.path.split(filepathV) 747 (filepathA, nomDG) = os.path.split(filepathDG) 748 msg = u'L\'état "'+nomEtat +u'" existe d\xe9j\xe0 \ndans le dossier "'+nomVersion+u'" \ndu dossier g\xe9n\xe9tique "'+nomDG+'"' 749 wx.StaticText(panel,-1,msg,wx.Point(15,10)) 750 751 wx.StaticText(panel,-1,u'Voulez-vous \xe9cras\xe9 ce fichier texte ?',wx.Point(15,70)) 752 753 bValider = wx.Button(panel, ID_OK, "OUI", wx.Point(40, 90)) 754 wx.EVT_BUTTON(self, ID_OK, self.onValider) 755 756 bAnnuler = wx.Button(panel, ID_ANNULER, "NON", wx.Point(120, 90)) 757 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler)
758
759 - def onValider(self,event):
760 self.fenetreMedite.cdos.ecraserFichier(self.exception.getFicSource(), 761 self.exception.getFicDest()) 762 self.Close()
763 - def onAnnuler(self,event):
764 self.Close()
765