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

Source Code for Module medite.GUI.FormulairesMenuMedite

  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:          FormulairesMenuDossiers.py 
 20  # Objet:        Ce fichier regroupe les differentes classes necessaires 
 21  #               pour le menu Medite 
 22  #---------------------------------------------------------------------------- 
 23  #from wxPython.wx import * 
 24  import wx 
 25  from Utile.constantesGUI import * 
 26  from Utile.exceptionsDonnees import * 
 27  from Utile.decodage import * 
 28  import Controleurs.DGManager 
 29  import codecs,sys,re,locale 
 30  #--------------------------------------------------------------------------------------------------# 
 31   
 32   
 33  # Classe qui permet d'ouvrir l'état Source ou Cible dans sa fenetre respective 
 34  # de l'interface 
35 -class FormOuvrirFichier(wx.Frame):
36 #Le parametre 'type' prend deux valeurs possibles 'Cible' ou 'Source'
37 - def __init__(self,parent, title,type):
38 wx.Frame.__init__(self, parent, -1,title, pos = wx.Point(200,200) 39 ,size = ( 310,180), 40 style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE|wx.FRAME_FLOAT_ON_PARENT) 41 self.fenetreMedite=parent 42 self.type=type 43 panel=wx.Panel(self,-1) 44 45 if self.type=='Source': 46 version = self.fenetreMedite.getPlanTravail().getVersionSource() 47 else : 48 version = self.fenetreMedite.getPlanTravail().getVersionCible() 49 50 textVersion=wx.StaticText(panel,-1,"Version : ",wx.Point(15,12)) 51 # self.ctrlVersion=wx.TextCtrl(panel,-1,version,wx.Point(75,10),size=(125,-1),style=wx.TE_READONLY) 52 # self.ctrlVersion.SetInsertionPoint(0) 53 # 54 # self.bVersion = wx.Button(panel, ID_SELECT_AUTEUR, u"S\xe9lection",wx.Point(220,10)) 55 # wx.EVT_BUTTON(self, ID_SELECT_AUTEUR, self.onSelectVersion) 56 #listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.fenetreMedite.getPlanTravail().getAuteur(), 57 # self.fenetreMedite.getPlanTravail().getOeuvre()) 58 self.dgm = Controleurs.DGManager.DGManager() 59 listeVersions=self.dgm.getListeVersionsDG(self.fenetreMedite.getPlanTravail().getAuteur(),self.fenetreMedite.getPlanTravail().getOeuvre()) 60 self.ctrlVersion = wx.ComboBox(panel,-1, listeVersions[0],(75,10), 61 (150, -1), listeVersions, wx.CB_DROPDOWN | wx.CB_READONLY) 62 self.Bind(wx.EVT_TEXT, self.EvtCtrlVersion, self.ctrlVersion) 63 64 textEtat=wx.StaticText(panel,-1,"Etat : ",wx.Point(15,52)) 65 # self.ctrlEtat=wx.TextCtrl(panel,-1,"",wx.Point(75,50),size=(125,-1),style=wx.TE_READONLY) 66 # self.ctrlEtat.SetInsertionPoint(0) 67 # 68 # self.bEtat = wx.Button(panel, ID_SELECT_OEUVRE, u"S\xe9lection",wx.Point(220,50)) 69 # wx.EVT_BUTTON(self, ID_SELECT_OEUVRE, self.onSelectEtat) 70 #listeEtats=self.fenetreMedite.cdos.getListeEtats(self.fenetreMedite.getPlanTravail().getAuteur(), 71 # self.fenetreMedite.getPlanTravail().getOeuvre(),self.ctrlVersion.GetValue()) 72 #listeEtats.insert(0,"") 73 listeEtats=self.dgm.getListeEtatsVersion(self.fenetreMedite.getPlanTravail().getAuteur(), 74 self.fenetreMedite.getPlanTravail().getOeuvre(),self.ctrlVersion.GetValue()) 75 self.ctrlEtat = wx.ComboBox(panel,-1, listeEtats[0],(75,50), 76 (150, -1), listeEtats, wx.CB_DROPDOWN | wx.CB_READONLY) 77 78 79 self.bValider = wx.Button(panel, ID_OK, "VALIDER", wx.Point(50, 90)) 80 wx.EVT_BUTTON(self, ID_OK, self.onValider) 81 82 bAnnuler = wx.Button(panel, ID_ANNULER, "ANNULER", wx.Point(150, 90)) 83 wx.EVT_BUTTON(self, ID_ANNULER, self.onAnnuler) 84 85 self.bValider.SetFocus()
86
87 - def EvtCtrlVersion(self, event):
88 if (self.ctrlVersion.GetValue()!=""): 89 #listeEtats=self.fenetreMedite.cdos.getListeEtats(self.fenetreMedite.getPlanTravail().getAuteur(), 90 # self.fenetreMedite.getPlanTravail().getOeuvre(),self.ctrlVersion.GetValue()) 91 listeEtats=self.dgm.getListeEtatsVersion(self.fenetreMedite.getPlanTravail().getAuteur(), 92 self.fenetreMedite.getPlanTravail().getOeuvre(),self.ctrlVersion.GetValue()) 93 self.ctrlEtat.Clear() 94 if listeEtats==[]: self.ctrlEtat.SetValue("") 95 self.ctrlEtat.AppendItems(listeEtats) 96 self.ctrlEtat.Refresh()
97
98 - def onSelectVersion(self,event):
99 #self.listeVersions=self.fenetreMedite.cdos.getListeDossiersVersions(self.fenetreMedite.getPlanTravail().getAuteur(), 100 # self.fenetreMedite.getPlanTravail().getOeuvre()) 101 self.listeVersions=self.dgm.getListeVersionsDG(self.fenetreMedite.getPlanTravail().getAuteur(),self.fenetreMedite.getPlanTravail().getOeuvre()) 102 msg = u"Choisissez la version de l\'état" 103 titre = u"S\xe9lectionner une version" 104 self.versionFormSelect=SelectionListe(self.fenetreMedite,msg,titre,self.listeVersions) 105 if self.versionFormSelect.ShowModal() == wx.ID_OK: 106 self.ctrlVersion.SetValue(self.versionFormSelect.GetStringSelection()) 107 self.bEtat.SetFocus()
108 109
110 - def onSelectEtat(self,event):
111 if (self.ctrlVersion.GetValue()!=""): 112 #self.listeEtats=self.fenetreMedite.cdos.getListeEtats(self.fenetreMedite.getPlanTravail().getAuteur(), 113 # self.fenetreMedite.getPlanTravail().getOeuvre(), 114 # self.ctrlVersion.GetValue()) 115 self.listeEtats=self.dgm.getListeEtatsVersion(self.fenetreMedite.getPlanTravail().getAuteur(), 116 self.fenetreMedite.getPlanTravail().getOeuvre(),self.ctrlVersion.GetValue()) 117 msg = 'Choisissez le etat' 118 titre = u"S\xe9lectionner un etat" 119 self.etatFormSelect=SelectionListe(self.fenetreMedite,msg,titre,self.listeEtats) 120 if self.etatFormSelect.ShowModal() == wx.ID_OK: 121 self.ctrlEtat.SetValue(self.etatFormSelect.GetStringSelection()) 122 self.bValider.SetFocus() 123 else: 124 text=u"Vous devez remplir les champs sup\xe9rieurs!!" 125 dlg = wx.MessageDialog(self, text, 'Attention !',wx.OK) 126 dlg.ShowModal() 127 dlg.Destroy()
128
129 - def onValider(self,event):
130 if (self.ctrlEtat.GetValue()!=""): 131 self.fenetreMedite.getCompPanel().indiceS.SetValue('') 132 self.fenetreMedite.getCompPanel().indiceC.SetValue('') 133 try: 134 ### Mise a  zero des onglets transformations et commentaire 135 self.fenetreMedite.getCompPanel().transformations.SetValue('') 136 self.fenetreMedite.getCompPanel().commentaire.SetValue('') 137 ### 138 choixVersion = self.ctrlVersion.GetValue() 139 choixEtat = self.ctrlEtat.GetValue() 140 chemin=self.dgm.getEtatPath(self.fenetreMedite.getPlanTravail().getAuteur(), 141 self.fenetreMedite.getPlanTravail().getOeuvre(),choixVersion,choixEtat) 142 fontDefault=wx.Font(10,wx.DEFAULT,wx.NORMAL,wx.NORMAL)#,wx.FONTENCODING_ISO8859_1)#, 143 #encoding=wx.FONTENCODING_UTF8) 144 145 if self.type=='Source': 146 self.fenetreMedite.getCompPanel().textWindowLeft.Clear() 147 self.fenetreMedite.getCompPanel().textWindowLeft.SetStyle(0,0,#wx.TextAttr()) 148 wx.TextAttr('black', 149 'white', 150 fontDefault)) 151 #wx.TextAttr(wxNullColour, 152 # wxNullColour, 153 # fontDefault)) 154 #self.fenetreMedite.getCompPanel().textWindowLeft.StyleClearAll() 155 #self.fenetreMedite.getCompPanel().textWindowLeft.LoadFile(chemin) 156 #self.fenetreMedite.getCompPanel().textWindowLeft.AppendText(loadFile(chemin)) 157 self.fenetreMedite.getCompPanel().textWindowLeft.SetValue(loadFile(chemin)) 158 ########### enlever les couleur de l'autre fenetre 159 texte = self.fenetreMedite.getCompPanel().textWindowRight.GetValue() 160 self.fenetreMedite.getCompPanel().textWindowRight.Clear() 161 self.fenetreMedite.getCompPanel().textWindowRight.SetStyle(0,0,#wx.TextAttr()) 162 wx.TextAttr('black', 163 'white', 164 fontDefault)) 165 # # wx.TextAttr(wxNullColour, 166 # wxNullColour, 167 # fontDefault)) 168 #self.fenetreMedite.getCompPanel().textWindowRight.StyleClearAll() 169 self.fenetreMedite.getCompPanel().textWindowRight.SetValue(texte) 170 ########## Mise a jour du plan de travail 171 self.fenetreMedite.getCompPanel().textInfoVersionS.SetLabel(choixVersion) 172 self.fenetreMedite.getCompPanel().textInfoEtatS.SetLabel(choixEtat) 173 self.fenetreMedite.getPlanTravail().setVersionSource(choixVersion) 174 self.fenetreMedite.getPlanTravail().setEtatSource(choixEtat) 175 self.fenetreMedite.nb.SetPageText(self.fenetreMedite.nb.GetSelection(),choixEtat+'-'+self.fenetreMedite.getPlanTravail().getEtatCible()) 176 self.fenetreMedite.getCompPanel().Refresh() 177 self.fenetreMedite.reloadNavMenu() 178 179 elif self.type=='Cible': 180 #self.fenetreMedite.getCompPanel().textWindowRight.StyleClearAll() 181 self.fenetreMedite.getCompPanel().textWindowRight.Clear()#SetValue('') 182 self.fenetreMedite.getCompPanel().textWindowRight.SetStyle(0,0,#wx.TextAttr()) 183 wx.TextAttr('black', 184 'white', 185 fontDefault)) 186 # wx.TextAttr(wxNullColour, 187 # wxNullColour, 188 # fontDefault)) 189 #self.fenetreMedite.getCompPanel().textWindowRight.LoadFile(chemin) 190 #self.fenetreMedite.getCompPanel().textWindowRight.AppendText(loadFile(chemin)) 191 self.fenetreMedite.getCompPanel().textWindowRight.SetValue(loadFile(chemin)) 192 ########## enlever les couleur de l'autre fenetre 193 texte = self.fenetreMedite.getCompPanel().textWindowLeft.GetValue() 194 #self.fenetreMedite.getCompPanel().textWindowLeft.StyleClearAll() 195 self.fenetreMedite.getCompPanel().textWindowLeft.Clear()#SetValue('') 196 self.fenetreMedite.getCompPanel().textWindowLeft.SetStyle(0,0,#wx.TextAttr()) 197 wx.TextAttr('black', 198 'white', 199 fontDefault)) 200 # wx.TextAttr(wxNullColour, 201 # wxNullColour, 202 # fontDefault)) 203 self.fenetreMedite.getCompPanel().textWindowLeft.SetValue(texte) 204 #self.fenetreMedite.getCompPanel().textWindowLeft.StyleClearAll() 205 ########## Mise a jour du plan de travail 206 self.fenetreMedite.getCompPanel().textInfoVersionC.SetLabel(choixVersion) 207 self.fenetreMedite.getCompPanel().textInfoEtatC.SetLabel(choixEtat) 208 self.fenetreMedite.getPlanTravail().setVersionCible(choixVersion) 209 self.fenetreMedite.getPlanTravail().setEtatCible(choixEtat) 210 self.fenetreMedite.nb.SetPageText(self.fenetreMedite.nb.GetSelection(),self.fenetreMedite.getPlanTravail().getEtatSource()+'-'+choixEtat) 211 self.fenetreMedite.getCompPanel().Refresh() 212 self.fenetreMedite.reloadNavMenu() 213 self.fenetreMedite.enableMenuEtatsOuverts() 214 #### Il n'y a plus de resultats 215 self.fenetreMedite.getCompPanel().resultatTransfo = None 216 self.fenetreMedite.smEnregistrer.Enable(ID_ADD_TRANSFOS, False) 217 self.fenetreMedite.smEnregistrer.Enable(ID_ADD_TRANSFOS_COMMENT, False) 218 except IOError, eIO: 219 dlg = wx.MessageDialog(self,u"L'état n'est pas trouvable ! "+str(eIO), 220 'Attention !',wx.OK) 221 dlg.ShowModal() 222 dlg.Destroy() 223 self.Close() 224 else: 225 dlg = wx.MessageDialog(self, "Vous devez remplir tous les champs !", 226 'Attention !',wx.OK) 227 dlg.ShowModal() 228 dlg.Destroy()
229
230 - def onAnnuler(self,event):
231 self.Close()
232 233 # Fenetre de dialogue de selection d'un element dans une liste
234 -class SelectionListe(wx.SingleChoiceDialog):
235 - def __init__(self, parent,pPhrase, pTitre, pListe):
236 wx.SingleChoiceDialog.__init__(self, parent,pPhrase,pTitre,pListe, 237 wx.OK|wx.CANCEL)
238