Subversion Repositories eFlore/Applications.coel

Rev

Rev 928 | Rev 935 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
877 aurelien 1
package org.tela_botanica.client.vues;
2
 
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
 
6
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.interfaces.Rafraichissable;
8
import org.tela_botanica.client.modeles.Information;
9
import org.tela_botanica.client.modeles.MenuApplicationId;
10
import org.tela_botanica.client.modeles.Projet;
878 aurelien 11
import org.tela_botanica.client.modeles.Valeur;
12
import org.tela_botanica.client.modeles.ValeurListe;
928 jpm 13
import org.tela_botanica.client.util.Debug;
877 aurelien 14
import org.tela_botanica.client.util.Pattern;
15
import org.tela_botanica.client.util.UtilArray;
928 jpm 16
import org.tela_botanica.client.util.UtilString;
877 aurelien 17
 
878 aurelien 18
import com.extjs.gxt.ui.client.Style.SortDir;
877 aurelien 19
import com.extjs.gxt.ui.client.store.ListStore;
928 jpm 20
import com.extjs.gxt.ui.client.widget.Info;
877 aurelien 21
import com.extjs.gxt.ui.client.widget.MessageBox;
22
import com.extjs.gxt.ui.client.widget.form.CheckBox;
23
import com.extjs.gxt.ui.client.widget.form.ComboBox;
24
import com.extjs.gxt.ui.client.widget.form.FieldSet;
25
import com.extjs.gxt.ui.client.widget.form.TextArea;
26
import com.extjs.gxt.ui.client.widget.form.TextField;
27
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
28
import com.extjs.gxt.ui.client.widget.layout.FormData;
29
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
30
 
31
public class ProjetForm extends Formulaire implements Rafraichissable {
32
 
33
	private Projet projet;
878 aurelien 34
 
35
	private String listeValeurIndexationDureeId = "dureesIndexation";
36
	private int listeValeurIndexationDureeInt = 1072;
37
	private String listeValeurIndexationFrequenceId = "frequencesIndexation";
38
	private int listeValeurIndexationFrequenceInt = 1073;
887 aurelien 39
	private String listeLanguesId = "langues";
40
	private int listeLanguesInt = 1071;
878 aurelien 41
 
42
	private ListStore<Valeur> listeIndexationDuree = null;
43
	private ListStore<Valeur> listeIndexationFrequence = null;
887 aurelien 44
	private ListStore<Valeur> listeLangue = null;
878 aurelien 45
 
887 aurelien 46
	private ValeurListe valeurListeIndexationDuree = null;
47
	private ValeurListe valeurListeIndexationFrequence = null;
48
	private ValeurListe valeurListeLangue = null;
49
 
908 aurelien 50
	private boolean listeIndexationDureeChargee = false;
51
	private boolean listeIndexationFrequenceChargee = false;
52
	private boolean listeLangueChargee = false;
53
 
54
 
877 aurelien 55
	private FieldSet generalitesFieldset = null;
56
	private TextField<String> nomChp = null;
57
	private TextField<String> abreviationChp = null;
886 aurelien 58
	private TextArea descriptionChp = null;
877 aurelien 59
	private TextArea resumeChp = null;
60
	private TextField<String> urlChp = null;
61
 
62
	private FieldSet complementFieldset = null;
63
	private TextField<String> motsClesChp = null;
64
	private TextField<String> citationChp = null;
65
	private TextField<String> licenceChp = null;
887 aurelien 66
	private ComboBox<Valeur> langueChp = null;
877 aurelien 67
	private CheckBox markPublicChp = null;
68
 
69
	private FieldSet indexationFieldset = null;
70
	private TextField<String> indexationHeureChp = null;
878 aurelien 71
	private ComboBox<Valeur> indexationDureeChp = null;
72
	private ComboBox<Valeur> indexationFrequenceChp = null;
877 aurelien 73
 
74
	private boolean formulaireValideOk = false;
75
	private boolean projetValideOk = false;
76
 
77
	private Rafraichissable vueExterneARafraichirApresValidation = null;
78
 
79
 
80
	public ProjetForm(Mediateur mediateurCourrant, String projetId) {
81
		initialiserProjetForm(mediateurCourrant, projetId);
82
	}
83
 
84
	public ProjetForm(Mediateur mediateurCourrant, String projetId, Rafraichissable vueARafraichirApresValidation) {
85
		vueExterneARafraichirApresValidation = vueARafraichirApresValidation;
86
		initialiserProjetForm(mediateurCourrant, projetId);
87
	}
88
 
878 aurelien 89
	private void initialiserProjetForm(Mediateur mediateurCourant, String projetId) {
877 aurelien 90
		projet = new Projet();
91
		projet.setId(projetId);
92
 
93
		String modeDeCreation = (projet.getId().isEmpty() ? Formulaire.MODE_AJOUTER : Formulaire.MODE_MODIFIER);
878 aurelien 94
		initialiserFormulaire(mediateurCourant, modeDeCreation, MenuApplicationId.PROJET);
877 aurelien 95
 
96
		panneauFormulaire.setLayout(new FlowLayout());
928 jpm 97
		actualiserTitreFormulaire();
877 aurelien 98
 
99
		creerZoneGeneralites();
100
		panneauFormulaire.add(generalitesFieldset);
101
 
102
		creerZoneComplement();
103
		panneauFormulaire.add(complementFieldset);
104
 
105
		creerZoneIndexation();
106
		panneauFormulaire.add(indexationFieldset);
107
 
886 aurelien 108
		creerTabIndex();
109
 
877 aurelien 110
		if (modeDeCreation.equals(Formulaire.MODE_MODIFIER)) {
928 jpm 111
			mediateur.selectionnerProjet(this, projetId);
877 aurelien 112
		}
908 aurelien 113
 
928 jpm 114
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationDureeId);
115
		mediateur.obtenirListeValeurEtRafraichir(this, listeValeurIndexationFrequenceId);
116
		mediateur.obtenirListeValeurEtRafraichir(this, listeLanguesId);
877 aurelien 117
	}
118
 
928 jpm 119
	private void actualiserTitreFormulaire() {
120
		String titre = i18nC.projetTitreFormAjout();
877 aurelien 121
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
928 jpm 122
			 titre = i18nC.projetTitreFormModif()+" - "+i18nC.id()+": "+projet.getId();
877 aurelien 123
		}
928 jpm 124
		panneauFormulaire.setHeading(titre);
877 aurelien 125
	}
126
 
127
	private void creerZoneGeneralites() {
128
		FormLayout layout = new FormLayout();
129
		layout.setLabelWidth(100);
130
 
131
		// Fieldset Infos Générales
132
		generalitesFieldset = new FieldSet();
928 jpm 133
		generalitesFieldset.setHeading(i18nC.projetTitreInfoGenerale());
877 aurelien 134
		generalitesFieldset.setCollapsible(true);
135
		generalitesFieldset.setLayout(layout);
136
 
137
		nomChp = new TextField<String>();
138
		nomChp.setName("cpu");
139
		nomChp.setFieldLabel("Nom");
140
		generalitesFieldset.add(nomChp, new FormData(450, 0));
141
 
142
		abreviationChp = new TextField<String>();
143
		abreviationChp.setFieldLabel("Abréviation");
144
		generalitesFieldset.add(abreviationChp, new FormData(450, 0));
145
 
886 aurelien 146
		descriptionChp = new TextArea();
877 aurelien 147
		descriptionChp.setFieldLabel("Description");
148
		generalitesFieldset.add(descriptionChp, new FormData(450, 0));
149
 
150
		resumeChp = new TextArea();
151
		resumeChp.setFieldLabel("Résumé");
152
		generalitesFieldset.add(resumeChp, new FormData(450, 0));
153
 
154
		urlChp = new TextField<String>();
155
		urlChp.setFieldLabel("URL du projet");
156
		generalitesFieldset.add(urlChp, new FormData(450, 0));
157
	}
158
 
159
	private void creerZoneComplement() {
160
		FormLayout layout = new FormLayout();
161
		layout.setLabelWidth(100);
162
 
928 jpm 163
		// Fieldset Complément
877 aurelien 164
		complementFieldset = new FieldSet();
928 jpm 165
		complementFieldset.setHeading(i18nC.projetTitreComplement());
877 aurelien 166
		complementFieldset.setCollapsible(true);
167
		complementFieldset.setLayout(layout);
168
 
169
		motsClesChp = new TextField<String>();
170
		motsClesChp.setFieldLabel("Mots Clés");
171
		complementFieldset.add(motsClesChp);
172
 
173
		citationChp = new TextField<String>();
174
		citationChp.setFieldLabel("Citation");
175
		complementFieldset.add(citationChp);
176
 
177
		licenceChp = new TextField<String>();
178
		licenceChp.setFieldLabel("Licence");
179
		complementFieldset.add(licenceChp);
180
 
887 aurelien 181
		listeLangue = new ListStore<Valeur>();
182
		langueChp = new ComboBox<Valeur>();
183
		langueChp.setStore(listeLangue);
184
		langueChp.setDisplayField("nom");
185
		langueChp.setEditable(true);
186
		langueChp.setForceSelection(true);
187
		langueChp.setTypeAhead(true);
188
		langueChp.setFieldLabel("Langue");
189
		complementFieldset.add(langueChp);
190
 
877 aurelien 191
		markPublicChp = new CheckBox();
192
		markPublicChp.setFieldLabel("Public");
193
		complementFieldset.add(markPublicChp);
194
	}
195
 
196
	private void creerZoneIndexation() {
197
		FormLayout layout = new FormLayout();
198
		layout.setLabelWidth(100);
199
 
928 jpm 200
		// Fieldset Indexation
877 aurelien 201
		indexationFieldset = new FieldSet();
928 jpm 202
		indexationFieldset.setHeading(i18nC.projetTitreIndexation());
877 aurelien 203
		indexationFieldset.setCollapsible(true);
204
		indexationFieldset.setLayout(layout);
205
 
206
		indexationHeureChp = new TextField<String>();
878 aurelien 207
		indexationHeureChp.setFieldLabel(i18nC.projetIndexationHeure());
877 aurelien 208
		indexationFieldset.add(indexationHeureChp, new FormData(80, 0));
209
 
878 aurelien 210
		// liste 1073
211
		listeIndexationFrequence = new ListStore<Valeur>();
212
		indexationFrequenceChp = new ComboBox<Valeur>();
213
		indexationFrequenceChp.setStore(listeIndexationFrequence);
214
		indexationFrequenceChp.setDisplayField("nom");
887 aurelien 215
		indexationFrequenceChp.setEditable(true);
216
		indexationFrequenceChp.setForceSelection(true);
217
		indexationFrequenceChp.setTypeAhead(true);
878 aurelien 218
		indexationFrequenceChp.setFieldLabel(i18nC.projetIndexationFrequence());
219
		indexationFieldset.add(indexationFrequenceChp, new FormData(120, 0));
220
 
877 aurelien 221
		// liste 1072
878 aurelien 222
		listeIndexationDuree = new ListStore<Valeur>();
223
		indexationDureeChp = new ComboBox<Valeur>();
224
		indexationDureeChp.setStore(listeIndexationDuree);
225
		indexationDureeChp.setDisplayField("nom");
887 aurelien 226
		indexationDureeChp.setEditable(true);
227
		indexationDureeChp.setForceSelection(true);
228
		indexationDureeChp.setTypeAhead(true);
878 aurelien 229
		indexationDureeChp.setFieldLabel(i18nC.projetIndexationDuree());
877 aurelien 230
		indexationFieldset.add(indexationDureeChp, new FormData(80, 0));
231
 
232
	}
886 aurelien 233
 
234
	private void creerTabIndex() {
887 aurelien 235
		nomChp.setTabIndex(1);
236
		abreviationChp.setTabIndex(2);
237
		descriptionChp.setTabIndex(3);
238
		resumeChp.setTabIndex(4);
239
		urlChp.setTabIndex(5);
886 aurelien 240
 
241
		motsClesChp.setTabIndex(6);
242
		citationChp.setTabIndex(7);
243
		licenceChp.setTabIndex(8);
887 aurelien 244
		langueChp.setTabIndex(9);
245
		markPublicChp.setTabIndex(10);
886 aurelien 246
 
887 aurelien 247
		indexationHeureChp.setTabIndex(11);
248
		indexationFrequenceChp.setTabIndex(12);
249
		indexationDureeChp.setTabIndex(13);
886 aurelien 250
 
251
		nomChp.focus();
252
	}
877 aurelien 253
 
254
	public void rafraichir(Object nouvellesDonnees) {
928 jpm 255
		if (nouvellesDonnees instanceof Information) {
256
			Information info = (Information) nouvellesDonnees;
257
			rafraichirInformation(info);
924 jpm 258
		} else if (nouvellesDonnees instanceof ValeurListe) {
928 jpm 259
			ValeurListe valeursListe = (ValeurListe) nouvellesDonnees;
260
			rafraichirValeurListe(valeursListe);
261
			Debug.log("une liste de valeurs est arrivée "+valeursListe.getId());
878 aurelien 262
		}
263
 
877 aurelien 264
		if (etreValide()) {
265
			initialiserValidation();
266
			repandreRafraichissement();
267
			controlerFermetureApresRafraichissement();
268
		}
269
	}
270
 
928 jpm 271
	private void rafraichirInformation(Information info) {
272
		final String type = info.getType();
273
 
274
		// Gestion des problèmes
275
		if (info.getMessages() != null && !info.getMessages().toString().equals("[]")) {
276
			Debug.log("MESSAGES:\n"+info.getMessages().toString());
277
		}
278
 
279
		// Gestion des actions
280
		if (type.equals("selection_projet")) {
281
			if (info.getDonnee(0) != null) {
282
				projet = (Projet) info.getDonnee(0);
283
			}
284
			peuplerFormulaire();
285
			actualiserTitreFormulaire();
286
		} else if (type.equals("modif_projet") || type.equals("ajout_projet") ) {
287
			if (info.getDonnee(0) != null && info.getDonnee(0) instanceof String) {
288
				String projetId = (String) info.getDonnee(0);
289
				projet.setId(projetId);
290
				projetValideOk = true;
291
			}
292
		}
293
 
294
		// Gestion des messages
295
		if (type.equals("selection_projet")) {
296
			Info.display(i18nC.projetTitreFormModif(), info.toString());
297
		} else if (type.equals("modif_projet")) {
298
			Info.display(i18nC.projetTitreFormModif(), info.toString());
299
		} else if (type.equals("ajout_projet")) {
300
			if (!UtilString.isEmpty(projet.getId())) {
301
				info.setMessage("Le projet '"+projet.getId()+"' a bien été ajouté");
302
			}
303
			Info.display(i18nC.projetTitreFormAjout(), info.toString());
304
		}
877 aurelien 305
	}
306
 
928 jpm 307
	private void rafraichirValeurListe(ValeurListe valeursListe) {
308
		if (valeursListe.getId() == listeValeurIndexationDureeInt) {
309
			valeurListeIndexationDuree = valeursListe;
310
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
311
				listeIndexationDuree.add(valeursListe.get(it.next()));
312
				listeIndexationDuree.sort("id_valeur", SortDir.ASC);
313
			}
314
			listeIndexationDureeChargee = true;
315
 
316
			if (mode.equals(MODE_MODIFIER)) {
317
				if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
318
					indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
319
					indexationDureeChp.validate();
320
				}
321
			}
322
			indexationDureeChp.expand();
323
		} else if (valeursListe.getId() == listeValeurIndexationFrequenceInt) {
324
			valeurListeIndexationFrequence = valeursListe;
325
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
326
				listeIndexationFrequence.add(valeursListe.get(it.next()));
327
				listeIndexationFrequence.sort("id_valeur", SortDir.ASC);
328
			}
329
			listeIndexationFrequenceChargee = true;
330
 
331
			if (mode.equals(MODE_MODIFIER)) {
332
				if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
333
					indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
334
					indexationFrequenceChp.validate();
335
				}
336
			}
337
			indexationFrequenceChp.expand();
338
		} else if (valeursListe.getId() == listeLanguesInt) {
339
			valeurListeLangue = valeursListe;
340
			for (Iterator<String> it  = valeursListe.keySet().iterator(); it.hasNext();) {
341
				listeLangue.add(valeursListe.get(it.next()));
342
				listeLangue.sort("id_valeur", SortDir.ASC);
343
			}
344
			listeLangueChargee = true;
345
 
346
			if (mode.equals(MODE_MODIFIER)) {
347
				if (valeurListeLangue.get(projet.getLangue()) != null) {
348
					langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
349
					langueChp.validate();
350
				}
351
			}
352
		}
353
	}
354
 
877 aurelien 355
	private Boolean etreValide() {
356
		Boolean valide = false;
357
		if (formulaireValideOk && projetValideOk) {
358
			valide = true;
359
		}
360
		return valide;
361
	}
362
 
363
	private void initialiserValidation() {
364
		formulaireValideOk = false;
365
		projetValideOk = false;
366
	}
367
 
368
	private void repandreRafraichissement() {
369
		if (vueExterneARafraichirApresValidation != null) {
878 aurelien 370
			String type = "projet_modifie";
877 aurelien 371
			if (mode.equals(Formulaire.MODE_AJOUTER)) {
878 aurelien 372
				type = "projet_ajoute";
877 aurelien 373
			}
374
			Information info = new Information(type);
375
			info.setDonnee(0, projet);
376
			vueExterneARafraichirApresValidation.rafraichir(info);
377
		}
378
	}
379
 
380
	public boolean soumettreFormulaire() {
381
		formulaireValideOk = verifierFormulaire();
382
		if (formulaireValideOk) {
383
			Projet projetCollecte = collecterProjet();
384
			if (projetCollecte != null) {
385
				if (mode.equals(Formulaire.MODE_AJOUTER)) {
386
					mediateur.ajouterProjet(this, projetCollecte);
387
				} else if (mode.equals(Formulaire.MODE_MODIFIER)) {
388
					mediateur.modifierProjet(this, projetCollecte);
389
				}
390
			}
391
		}
392
		return formulaireValideOk;
393
	}
394
 
934 jpm 395
	public boolean verifierFormulaire() {
877 aurelien 396
		boolean valide = true;
397
		ArrayList<String> messages = new ArrayList<String>();
398
 
399
		String titre = nomChp.getValue();
400
		if (titre == null || titre.equals("")) {
401
			messages.add("Veuillez saisir le nom du projet !");
402
		}
403
 
886 aurelien 404
		String abr = abreviationChp.getValue();
405
		if (abr == null || abr.equals("")) {
406
			messages.add("Veuillez saisir l'abréviation du projet !");
407
		}
408
 
409
		String desc = descriptionChp.getValue();
410
		if (desc == null || desc.equals("")) {
411
			messages.add("Veuillez saisir la description du projet !");
412
		}
413
 
414
		String resume = resumeChp.getValue();
415
		if (resume == null || resume.equals("")) {
416
			messages.add("Veuillez saisir le résumé du projet !");
417
		}
418
 
877 aurelien 419
		String uri = urlChp.getValue();
886 aurelien 420
		if (uri != null && ! uri.trim().isEmpty() && ! uri.matches(Pattern.url)) {
877 aurelien 421
			messages.add("L'URL saisie n'est pas valide !");
422
		}
423
 
886 aurelien 424
		String heure = indexationHeureChp.getValue();
928 jpm 425
		if (!UtilString.isEmpty(heure)) {
426
			if (!heure.matches(Pattern.heureMinute)) {
427
				messages.add("L'heureMinute d'indexation saisie n'est pas valide !");
887 aurelien 428
			}
886 aurelien 429
		}
430
 
877 aurelien 431
		if (messages.size() != 0) {
432
			String[] tableauDeMessages = {};
433
			tableauDeMessages = messages.toArray(tableauDeMessages);
434
			MessageBox.alert("Erreurs de saisies", UtilArray.implode(tableauDeMessages, "<br />"), null);
435
			valide = false;
436
		}
437
		return valide;
438
	}
439
 
440
	private void peuplerFormulaire() {
878 aurelien 441
		nomChp.setValue(projet.getNom());
442
		abreviationChp.setValue(projet.getAbreviation());
443
		descriptionChp.setValue(projet.getDescription());
444
		resumeChp.setValue(projet.getResume());
445
		urlChp.setValue(projet.getUrl());
446
 
447
		motsClesChp.setValue(projet.getMotsCles());
448
		citationChp.setValue(projet.getCitation());
449
		licenceChp.setValue(projet.getLicence());
887 aurelien 450
 
924 jpm 451
		if (projet.getMarkPublic().equals("1")) {
887 aurelien 452
			markPublicChp.setValue(true);
453
		} else {
454
			markPublicChp.setValue(false);
455
		}
878 aurelien 456
 
924 jpm 457
		if (listeLangueChargee) {
908 aurelien 458
			if(valeurListeLangue.get(projet.getLangue()) != null) {
459
				langueChp.setValue(valeurListeLangue.get(projet.getLangue()));
460
				langueChp.validate();
461
			}
462
		}
463
 
924 jpm 464
		if (listeIndexationFrequenceChargee) {
465
			if (valeurListeIndexationFrequence.get(projet.getIndexationFreq()) != null) {
908 aurelien 466
				indexationFrequenceChp.setValue(valeurListeIndexationFrequence.get(projet.getIndexationFreq()));
467
				indexationFrequenceChp.validate();
468
			}
469
		}
470
 
924 jpm 471
		if (listeIndexationDureeChargee) {
472
			if (valeurListeIndexationDuree.get(projet.getIndexationDuree()) != null) {
908 aurelien 473
				indexationDureeChp.setValue(valeurListeIndexationDuree.get(projet.getIndexationDuree()));
474
				indexationDureeChp.validate();
475
			}
476
		}
477
 
887 aurelien 478
		String[] heureTab = projet.getIndexationHeure().split(":");
924 jpm 479
		if (heureTab.length > 1) {
902 aurelien 480
			String heure = heureTab[0]+":"+heureTab[1];
924 jpm 481
			if (heure.matches(Pattern.heureMinute)) {
902 aurelien 482
				indexationHeureChp.setValue(heure);
483
			}
887 aurelien 484
		}
878 aurelien 485
 
486
		doLayout(true);
877 aurelien 487
	}
488
 
489
	private Projet collecterProjet() {
887 aurelien 490
		Projet projetCollecte = (Projet) projet.cloner(new Projet());
877 aurelien 491
 
928 jpm 492
		projetCollecte.setNom(nomChp.getValue());
493
		projetCollecte.setAbreviation(abreviationChp.getValue());
494
		projetCollecte.setDescription(descriptionChp.getValue());
495
		projetCollecte.setResume(resumeChp.getValue());
496
		projetCollecte.setUrl(urlChp.getValue());
877 aurelien 497
 
928 jpm 498
		projetCollecte.setMotsCles(motsClesChp.getValue());
499
		projetCollecte.setCitation(citationChp.getValue());
500
		projetCollecte.setLicence(licenceChp.getValue());
501
		if (langueChp.getValue() != null) {
502
			projetCollecte.setLangue(langueChp.getValue().getId());
503
		}
504
		String markPublic = (markPublicChp.getValue()) ? "1" : "0";
505
		projetCollecte.setMarkPublic(markPublic);
887 aurelien 506
 
928 jpm 507
		projetCollecte.setIndexationHeure(indexationHeureChp.getValue());
508
		if (indexationFrequenceChp.getValue() != null) {
509
			projetCollecte.setIndexationFreq(indexationFrequenceChp.getValue().getId());
877 aurelien 510
		}
928 jpm 511
		if (indexationDureeChp.getValue() != null) {
512
			projetCollecte.setIndexationDuree(indexationDureeChp.getValue().getId());
513
		}
514
 
515
		Projet projetARetourner = null;
887 aurelien 516
		if (!projetCollecte.comparer(projet)) {
517
			projetARetourner = projet = projetCollecte;
928 jpm 518
			Debug.log(projetARetourner.toString());
887 aurelien 519
		}
877 aurelien 520
		return projetARetourner;
521
	}
522
 
934 jpm 523
	public void reinitialiserFormulaire() {
877 aurelien 524
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
525
			mediateur.afficherFormProjet(projet.getId());
526
		} else {
527
			mediateur.afficherFormProjet(null);
528
		}
529
	}
908 aurelien 530
 
877 aurelien 531
}