Subversion Repositories eFlore/Applications.coel

Rev

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

Rev Author Line No. Line
60 jpm 1
package org.tela_botanica.client;
2
 
231 jp_milcent 3
import java.util.Iterator;
134 jpm 4
import java.util.List;
5
 
61 jpm 6
import org.tela_botanica.client.composants.AideFenetre;
60 jpm 7
import org.tela_botanica.client.composants.IdentificationFenetre;
898 gduche 8
import org.tela_botanica.client.composants.LicenceFenetre;
66 jpm 9
import org.tela_botanica.client.composants.ParametreFenetre;
907 jpm 10
import org.tela_botanica.client.configuration.APropos;
11
import org.tela_botanica.client.configuration.Configuration;
358 jp_milcent 12
import org.tela_botanica.client.i18n.Constantes;
466 gduche 13
import org.tela_botanica.client.i18n.ErrorMessages;
119 jpm 14
import org.tela_botanica.client.interfaces.Rafraichissable;
447 jp_milcent 15
import org.tela_botanica.client.modeles.Collection;
875 jpm 16
import org.tela_botanica.client.modeles.CollectionAPersonne;
883 jpm 17
import org.tela_botanica.client.modeles.CollectionAPublication;
18
import org.tela_botanica.client.modeles.CollectionAPublicationListe;
453 jp_milcent 19
import org.tela_botanica.client.modeles.CollectionListe;
156 jp_milcent 20
import org.tela_botanica.client.modeles.Information;
327 jp_milcent 21
import org.tela_botanica.client.modeles.MenuApplicationId;
142 gduche 22
import org.tela_botanica.client.modeles.Personne;
128 gduche 23
import org.tela_botanica.client.modeles.PersonneListe;
245 jp_milcent 24
import org.tela_botanica.client.modeles.Projet;
268 jp_milcent 25
import org.tela_botanica.client.modeles.ProjetListe;
107 aurelien 26
import org.tela_botanica.client.modeles.Publication;
901 jpm 27
import org.tela_botanica.client.modeles.PublicationAPersonne;
28
import org.tela_botanica.client.modeles.PublicationAPersonneListe;
107 aurelien 29
import org.tela_botanica.client.modeles.PublicationListe;
60 jpm 30
import org.tela_botanica.client.modeles.Structure;
209 jp_milcent 31
import org.tela_botanica.client.modeles.StructureAPersonne;
875 jpm 32
import org.tela_botanica.client.modeles.CollectionAPersonneListe;
231 jp_milcent 33
import org.tela_botanica.client.modeles.StructureAPersonneListe;
188 jp_milcent 34
import org.tela_botanica.client.modeles.StructureConservation;
69 jpm 35
import org.tela_botanica.client.modeles.StructureListe;
195 jp_milcent 36
import org.tela_botanica.client.modeles.StructureValorisation;
61 jpm 37
import org.tela_botanica.client.modeles.Utilisateur;
91 jpm 38
import org.tela_botanica.client.modeles.ValeurListe;
641 jp_milcent 39
import org.tela_botanica.client.vues.CollectionForm;
447 jp_milcent 40
import org.tela_botanica.client.vues.CollectionListeVue;
453 jp_milcent 41
import org.tela_botanica.client.vues.CollectionVue;
444 jp_milcent 42
import org.tela_botanica.client.vues.ContenuVue;
43
import org.tela_botanica.client.vues.EnteteVue;
641 jp_milcent 44
import org.tela_botanica.client.vues.Formulaire;
438 gduche 45
import org.tela_botanica.client.vues.PersonneForm;
877 aurelien 46
import org.tela_botanica.client.vues.ProjetForm;
836 aurelien 47
import org.tela_botanica.client.vues.ProjetVue;
444 jp_milcent 48
import org.tela_botanica.client.vues.PublicationForm;
49
import org.tela_botanica.client.vues.StructureForm;
128 gduche 50
import org.tela_botanica.client.vues.PersonneVue;
332 gduche 51
import org.tela_botanica.client.vues.PopupChargement;
107 aurelien 52
import org.tela_botanica.client.vues.PublicationVue;
443 jp_milcent 53
import org.tela_botanica.client.vues.StatutVue;
60 jpm 54
import org.tela_botanica.client.vues.StructureVue;
444 jp_milcent 55
import org.tela_botanica.client.vues.MenuVue;
467 jp_milcent 56
 
60 jpm 57
import com.extjs.gxt.ui.client.Registry;
58
import com.extjs.gxt.ui.client.Style.LayoutRegion;
315 gduche 59
import com.extjs.gxt.ui.client.event.Listener;
502 gduche 60
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
60 jpm 61
import com.extjs.gxt.ui.client.util.Margins;
646 jp_milcent 62
import com.extjs.gxt.ui.client.widget.Component;
315 gduche 63
import com.extjs.gxt.ui.client.widget.Dialog;
156 jp_milcent 64
import com.extjs.gxt.ui.client.widget.Info;
315 gduche 65
import com.extjs.gxt.ui.client.widget.MessageBox;
60 jpm 66
import com.extjs.gxt.ui.client.widget.Viewport;
315 gduche 67
import com.extjs.gxt.ui.client.widget.button.Button;
60 jpm 68
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
69
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
91 jpm 70
import com.google.gwt.core.client.GWT;
599 gduche 71
import com.google.gwt.i18n.client.Dictionary;
60 jpm 72
import com.google.gwt.user.client.Window;
73
import com.google.gwt.user.client.ui.RootPanel;
74
 
277 jp_milcent 75
public class Mediateur implements Rafraichissable {
60 jpm 76
 
358 jp_milcent 77
	private Viewport viewport;
119 jpm 78
	private Modele modele = null;
582 jp_milcent 79
	public static final Constantes i18nC = getI18nConstante();
80
	public static final ErrorMessages i18nM = getI18nMessage();
119 jpm 81
 
444 jp_milcent 82
	private EnteteVue panneauNord = null;
83
	private MenuVue panneauOuest = null;
84
	private ContenuVue panneauCentre = null;
443 jp_milcent 85
	private StatutVue panneauSud = null;
60 jpm 86
 
358 jp_milcent 87
	private IdentificationFenetre fenetreIdentification = null;
88
 
60 jpm 89
	public Mediateur() {
90
		// Enregistrement du Médiateur dans le Registre
91
		Registry.register(RegistreId.MEDIATEUR, this);
765 jpm 92
 
93
		//Initialisation du Registre
94
		initialiserRegistre();
466 gduche 95
 
60 jpm 96
		// Création du Modèle qui s'enregistre lui même dans le Registre
119 jpm 97
		modele = new Modele();
535 jp_milcent 98
 
60 jpm 99
		// Création du Viewport qui contient la disposition globale de l'application
100
		viewport = new Viewport();
101
		viewport.setLayout(new BorderLayout());
552 jp_milcent 102
 
60 jpm 103
		// Création des différents panneaux
104
	    creerPanneauNord();
105
	    creerPanneauOuest();
106
	    creerPanneauCentral();
358 jp_milcent 107
	    creerPanneauSud();
535 jp_milcent 108
 
109
		// Connection de l'utilisateur
110
		connecterUtilisateur(null, null);
111
 
60 jpm 112
		// Retour à GWT du Viewport une fois constuit
113
		RootPanel.get().add(viewport);
114
	}
115
 
156 jp_milcent 116
	//+----------------------------------------------------------------------------------------------------------------+
535 jp_milcent 117
	//												GESTION de l'I18N et du REGISTRE
118
	//+----------------------------------------------------------------------------------------------------------------+
582 jp_milcent 119
	protected static Constantes getI18nConstante() {
535 jp_milcent 120
		return GWT.create(Constantes.class);
121
	}
122
 
582 jp_milcent 123
	protected static ErrorMessages getI18nMessage() {
535 jp_milcent 124
		return GWT.create(ErrorMessages.class);
125
	}
126
 
127
	protected void initialiserRegistre() {
128
		Registry.register(RegistreId.APPLI_NOM, i18nC.appliNom());
129
		Registry.register(RegistreId.APPLI_CODE, i18nC.appliCode());
130
		Registry.register(RegistreId.APPLI_VERSION, i18nC.appliVersionNumero());
907 jpm 131
 
132
		APropos apropos = new APropos();
133
		Registry.register(RegistreId.APPLI_REVISION, apropos.getRevisionGlobale());
134
		Registry.register(RegistreId.APPLI_COMPILATION_JAVA_VERSION, apropos.getVersionJavaCompilation());
135
		Registry.register(RegistreId.APPLI_COMPILATION_DATE_HEURE, apropos.getDateHeureCompilation());
535 jp_milcent 136
 
137
		Registry.register(RegistreId.CONFIG, new Configuration());
537 jp_milcent 138
		Registry.register(RegistreId.POPUP_CHARGEMENT, new PopupChargement(this));
766 jpm 139
		Registry.register(RegistreId.UTILISATEUR_COURANT, new Utilisateur());
535 jp_milcent 140
		Registry.register(RegistreId.PROJET_COURANT, new Projet());
141
	}
142
 
143
	//+----------------------------------------------------------------------------------------------------------------+
156 jp_milcent 144
	//												GESTION des PANNEAUX PRINCIPAUX
145
	//+----------------------------------------------------------------------------------------------------------------+
119 jpm 146
 
60 jpm 147
	private void creerPanneauNord() {
444 jp_milcent 148
		panneauNord = new EnteteVue(this);
60 jpm 149
 
150
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
151
		regionNord.setCollapsible(true);
152
		regionNord.setFloatable(true);
153
		regionNord.setSplit(false);
154
		regionNord.setMargins(new Margins(5, 5, 0, 5));
155
 
156
		viewport.add(panneauNord, regionNord);
157
	}
158
 
159
	private void creerPanneauOuest() {
444 jp_milcent 160
		panneauOuest = new MenuVue(this);
60 jpm 161
 
162
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);
163
		regionOuest.setSplit(true);
164
		regionOuest.setCollapsible(true);
165
		regionOuest.setMargins(new Margins(5));
166
 
167
		viewport.add(panneauOuest, regionOuest);
168
	}
169
 
170
	private void creerPanneauCentral() {
444 jp_milcent 171
		panneauCentre = new ContenuVue(this);
60 jpm 172
 
173
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
174
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
175
 
176
		viewport.add(panneauCentre, regionCentre);
177
	}
358 jp_milcent 178
 
179
	private void creerPanneauSud() {
443 jp_milcent 180
		panneauSud = new StatutVue();
358 jp_milcent 181
 
369 jp_milcent 182
		BorderLayoutData regionSud = new BorderLayoutData(LayoutRegion.SOUTH, 20);
358 jp_milcent 183
		regionSud.setCollapsible(true);
184
		regionSud.setFloatable(true);
185
		regionSud.setSplit(false);
186
		regionSud.setMargins(new Margins(0));
187
 
188
		viewport.add(panneauSud, regionSud);
189
	}
60 jpm 190
 
369 jp_milcent 191
	public void actualiserPanneauCentral() {
192
		panneauCentre.layout();
193
	}
194
 
156 jp_milcent 195
	//+----------------------------------------------------------------------------------------------------------------+
196
	//												GESTION du MENU
197
	//+----------------------------------------------------------------------------------------------------------------+
198
 
327 jp_milcent 199
	public void clicMenu(String codeMenuClique) {
358 jp_milcent 200
		activerChargement(codeMenuClique);
791 jpm 201
		panneauOuest.selectionMenu(codeMenuClique);
327 jp_milcent 202
		if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {
646 jp_milcent 203
			selectionnerStructure(panneauCentre, null);
553 jp_milcent 204
		} else if (codeMenuClique.equals(MenuApplicationId.COLLECTION)) {
205
			selectionnerCollection(panneauCentre, null);
206
		} else if (codeMenuClique.equals(MenuApplicationId.PERSONNE)) {
599 gduche 207
			selectionnerPersonne(panneauCentre, null, null);
327 jp_milcent 208
		} else if (codeMenuClique.equals(MenuApplicationId.PUBLICATION)) {
769 jpm 209
			selectionnerPublication(panneauCentre,null);
836 aurelien 210
		} else if (codeMenuClique.equals(MenuApplicationId.PROJET)) {
211
			selectionnerProjets(panneauCentre);
379 jp_milcent 212
		} else {
841 gduche 213
			GWT.log(i18nM.nonImplemente(codeMenuClique), null);
60 jpm 214
		}
215
		panneauCentre.layout();
216
	}
836 aurelien 217
 
358 jp_milcent 218
	public void activerChargement(String message) {
219
		afficherPopinChargement();
369 jp_milcent 220
		panneauSud.showBusy(i18nC.chargement()+" "+message);
358 jp_milcent 221
	}
222
 
223
	public void desactiverChargement() {
224
		masquerPopinChargement();
225
		panneauSud.clear();
226
	}
646 jp_milcent 227
 
156 jp_milcent 228
	//+----------------------------------------------------------------------------------------------------------------+
229
	//												GESTION DES FENÊTRES
230
	//+----------------------------------------------------------------------------------------------------------------+
60 jpm 231
 
61 jpm 232
	public void ouvrirAide() {
233
		AideFenetre aideFenetre = new AideFenetre();
234
		aideFenetre.show();
66 jpm 235
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
236
		//aideFenetre.el().fadeIn(FxConfig.NONE);
61 jpm 237
	}
238
 
239
	public void ouvrirParametres() {
66 jpm 240
		ParametreFenetre parametresFenetre = new ParametreFenetre();
241
		parametresFenetre.show();
61 jpm 242
	}
243
 
244
	public void ouvrirIdentification() {
358 jp_milcent 245
		fenetreIdentification = new IdentificationFenetre();
246
		fenetreIdentification.show();
61 jpm 247
	}
248
 
249
	public void ouvrirApplis(String id) {
250
		if (id.equals(ComposantId.MENU_CEL)) {
251
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
252
		} else if (id.equals(ComposantId.MENU_BEL)) {
134 jpm 253
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Biblio en ligne", "");
61 jpm 254
		}
255
	}
256
 
898 gduche 257
	public void afficherFenetreLicence(IdentificationFenetre vue)	{
258
		LicenceFenetre lf = new LicenceFenetre(vue);
259
	}
260
 
261
	public void accepterLicence(Rafraichissable vue)	{
262
		modele.accepterLicence(vue);
263
	}
156 jp_milcent 264
	//+----------------------------------------------------------------------------------------------------------------+
265
	//												GESTION de l'UTILISATEUR et de l'IDENTIFICATION
266
	//+----------------------------------------------------------------------------------------------------------------+
245 jp_milcent 267
	/**
268
	 * Retourne l'identifiant de l'utilisateur courrant de l'application.
269
	 */
156 jp_milcent 270
	public String getUtilisateurId() {
277 jp_milcent 271
		String id = null;
272
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
273
		if (!utilisateurCourant.getId().equals("")) {
274
			id = utilisateurCourant.getId();
275
		}
276
		return id;
156 jp_milcent 277
	}
278
 
65 jpm 279
	public void connecterUtilisateur(String login, String mdp) {
277 jp_milcent 280
		modele.connecterUtilisateur(this, login, mdp);
64 jpm 281
	}
282
 
65 jpm 283
	public void deconnecterUtilisateur() {
277 jp_milcent 284
		modele.deconnecterUtilisateur(this);
64 jpm 285
	}
65 jpm 286
 
64 jpm 287
	public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
898 gduche 288
 
156 jp_milcent 289
		// Mise à jour du registre
277 jp_milcent 290
		Registry.register(RegistreId.UTILISATEUR_COURANT, utilisateur);
156 jp_milcent 291
 
898 gduche 292
			// Création de l'information de mise à jour de l'utilisateur
293
 
294
			Information info = new Information("maj_utilisateur");
295
 
296
			// Rafraichissement de la fenêtre d'Identification
297
			if (fenetreIdentification != null) {
298
				fenetreIdentification.rafraichir(info);
299
			}
300
 
301
			// Rafraichissement du panneau Nord
302
			panneauNord.rafraichir(info);
303
 
304
			// Rafraichissement du panneau Centre
305
			if (panneauCentre != null) {
306
				panneauCentre.rafraichir(info);
307
			}
308
 
61 jpm 309
	}
898 gduche 310
 
311
	public void mettreAJourPersonneAnnuaire(Utilisateur utilisateur)	{
312
		panneauNord.rafraichir(utilisateur);
313
		modele.mettreAJourPersonneAnnuaire(this, utilisateur);
314
	}
66 jpm 315
 
156 jp_milcent 316
	//+----------------------------------------------------------------------------------------------------------------+
447 jp_milcent 317
	//												GESTION DES VALEURS ET LISTES
318
	//+----------------------------------------------------------------------------------------------------------------+
319
 
568 jp_milcent 320
	public void obtenirListeValeurEtRafraichir(Rafraichissable vueARafraichir, String listeId)	{
321
		modele.obtenirListeValeurs(vueARafraichir, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId));
453 jp_milcent 322
	}
447 jp_milcent 323
 
453 jp_milcent 324
	public void obtenirValeurEtRafraichir(Rafraichissable vue, String listeId, String identifiantValeur)	{
325
		modele.obtenirValeur(vue, "abv", ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), identifiantValeur);
326
	}
327
 
328
	public void obtenirListeRegionsEtRafraichir(Rafraichissable vue, String strListeId, String strPays)	{
329
		modele.obtenirListeRegion(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(strListeId), strPays+".__");
330
	}
331
 
447 jp_milcent 332
	//+----------------------------------------------------------------------------------------------------------------+
333
	//												GESTION des PROJETS
334
	//+----------------------------------------------------------------------------------------------------------------+
335
 
336
	/**
337
	 * Retourne l'identifiant du projet courrant de l'application.
338
	 */
339
	public String getProjetId() {
340
		String id = null;
341
		Projet projetCourant = (Projet) Registry.get(RegistreId.PROJET_COURANT);
342
		if (projetCourant != null && !projetCourant.getId().equals("")) {
343
			id = projetCourant.getId();
344
		}
345
		return id;
346
	}
347
 
348
	//Greg : ajout d'un écouteur pour le changement liste projet
552 jp_milcent 349
	public void selectionnerProjets(Rafraichissable vueARafraichir)	{
350
		modele.selectionnerProjets(vueARafraichir);
447 jp_milcent 351
	}
352
 
353
	public void selectionnerProjetCourant(Projet projetSelectionne) {
354
		Registry.register(RegistreId.PROJET_COURANT, projetSelectionne);
646 jp_milcent 355
		if (panneauCentre.getContenu() instanceof PersonneVue) {
599 gduche 356
			//modele.selectionnerPersonne(contenuPanneauCentre, null, getProjetId(), null);
646 jp_milcent 357
			selectionnerPersonne(panneauCentre, null, getProjetId());
447 jp_milcent 358
			//FIXME Le rafraichissement du panneau ne se fait pas!
646 jp_milcent 359
		} else if (panneauCentre.getContenu() instanceof StructureVue)	{
360
			modele.selectionnerStructure(panneauCentre.getContenu(), getProjetId(), null);
361
		} else if (panneauCentre.getContenu() instanceof CollectionVue)	{
362
			modele.selectionnerCollection(panneauCentre.getContenu(), getProjetId(), null);
447 jp_milcent 363
		}
364
	}
365
 
366
	//+----------------------------------------------------------------------------------------------------------------+
367
	//												GESTION DES STRUCTURES
368
	//+----------------------------------------------------------------------------------------------------------------+
369
 
453 jp_milcent 370
	public void afficherListeStructures(StructureListe structuresACharger) {
646 jp_milcent 371
		if (!(panneauCentre.getContenu() instanceof StructureVue))	{
626 gduche 372
			panneauCentre.removeAll();
646 jp_milcent 373
			panneauCentre.add(new StructureVue(this));
626 gduche 374
		}
646 jp_milcent 375
		panneauCentre.getContenu().rafraichir(structuresACharger);
453 jp_milcent 376
	}
377
 
580 jp_milcent 378
	public void afficherFormStructure(String structureId) {
641 jp_milcent 379
		String mode = Formulaire.MODE_AJOUTER;
580 jp_milcent 380
		if (structureId != null) {
641 jp_milcent 381
			mode = Formulaire.MODE_MODIFIER;
580 jp_milcent 382
		}
383
 
384
		panneauCentre.removeAll();
385
		StructureForm structureForm = new StructureForm(this, mode);
386
		panneauCentre.add(structureForm);
387
 
641 jp_milcent 388
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
580 jp_milcent 389
			selectionnerStructure(structureForm, structureId);
390
			selectionnerStructureAPersonne(structureForm, structureId, StructureAPersonne.ROLE_EQUIPE);
391
		}
392
 
393
		panneauCentre.layout();
394
	}
395
 
447 jp_milcent 396
	public void clicListeStructure(Structure structure) {
646 jp_milcent 397
		panneauCentre.getContenu().rafraichir(structure);
609 jp_milcent 398
		if (structure != null && structure.getPersonnel() == null) {
646 jp_milcent 399
			selectionnerStructureAPersonne(panneauCentre.getContenu(), structure.getId(), StructureAPersonne.ROLE_EQUIPE);
841 gduche 400
		}
447 jp_milcent 401
	}
402
 
403
	public void clicAjouterStructure() {
580 jp_milcent 404
		afficherFormStructure(null);
447 jp_milcent 405
	}
406
 
407
	public void clicModifierStructure(List<Structure> structureSelection) {
408
		if (structureSelection.size() == 0) {
409
			Info.display("Information", "Veuillez sélectionner une structure.");
410
		} else if (structureSelection.size() > 1) {
411
			Info.display("Information", "Veuillez sélectionner une seule structure à la fois.");
412
		} else if (structureSelection.size() == 1) {
609 jp_milcent 413
			afficherFormStructure(structureSelection.get(0).getId());
447 jp_milcent 414
		} else {
415
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierStructure() du Médiateur.");
416
		}
417
	}
418
 
419
	public void clicSupprimerStructure(final Rafraichissable vue, final List<Structure> structureSelection) {
420
		if (structureSelection.size() == 0) {
421
			Info.display("Information", "Veuillez sélectionner une structure.");
422
		} else if(structureSelection.size() > 0) {
609 jp_milcent 423
			String titre = "Supprimer des structures";
447 jp_milcent 424
			String message = "Êtes vous sur de vouloir supprimer les structures sélectionnées ?";
425
			if (structureSelection.size() == 1) {
609 jp_milcent 426
				titre = "Supprimer une structure";
447 jp_milcent 427
				message = "Êtes vous sur de vouloir supprimer la structure sélectionnée ?";
428
			}
429
 
502 gduche 430
			final Listener<MessageBoxEvent> suppressionEcouteur = new Listener<MessageBoxEvent>() {
431
				public void handleEvent(MessageBoxEvent ce) {
432
					Dialog dialog = (Dialog) ce.getComponent();
433
					Button btn = ce.getButtonClicked();
453 jp_milcent 434
 
435
					if (btn.getText().equals(dialog.yesText))	{
436
						String idStr = "" ;
437
						for(int i = 0 ; i < structureSelection.size() ; i++) {
609 jp_milcent 438
							idStr += structureSelection.get(i).getId()+",";
453 jp_milcent 439
						}
440
						supprimerStructure(vue, idStr);
441
					}
442
				}
443
			};
447 jp_milcent 444
 
609 jp_milcent 445
			MessageBox.confirm(titre, message, suppressionEcouteur);
447 jp_milcent 446
		} else {
447
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerStructure() du Médiateur.");
448
		}
449
	}
450
 
769 jpm 451
	public void selectionnerStructure(Rafraichissable vueARafraichir, String structureId) {
452
		modele.selectionnerStructure(vueARafraichir, getProjetId(), structureId);
447 jp_milcent 453
	}
454
 
775 jpm 455
	public void selectionnerStructureParProjet(Rafraichissable vueARafraichir, String projetId) {
456
		modele.selectionnerStructure(vueARafraichir, projetId, null);
457
	}
458
 
769 jpm 459
	public void ajouterStructure(Rafraichissable vueARafraichir, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
460
		modele.ajouterStructure(vueARafraichir, structure, conservation, valorisation);
447 jp_milcent 461
	}
462
 
769 jpm 463
	public void modifierStructure(Rafraichissable vueARafraichir, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
464
		modele.modifierStructure(vueARafraichir, structureId, structure, conservation, valorisation);
447 jp_milcent 465
	}
453 jp_milcent 466
 
467
	public void supprimerStructure(Rafraichissable vueARafraichir, String IdentifiantsStructureSepareParVirgule) {
769 jpm 468
		modele.supprimerStructure(vueARafraichir, IdentifiantsStructureSepareParVirgule);
453 jp_milcent 469
	}
470
 
447 jp_milcent 471
	//+----------------------------------------------------------------------------------------------------------------+
472
	// GESTION de la relation STRUCTURE A PERSONNE
769 jpm 473
	public void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId) {
474
		modele.selectionnerStructureAPersonne(vueARafraichir, structureId, roleId);
447 jp_milcent 475
	}
476
 
769 jpm 477
	public void ajouterStructureAPersonne(Rafraichissable vueARafraichir, String structureId, StructureAPersonneListe personnelAjoute) {
453 jp_milcent 478
		if (personnelAjoute != null && personnelAjoute.size() > 0) {
479
			for (Iterator<String> it = personnelAjoute.keySet().iterator(); it.hasNext();) {
769 jpm 480
				modele.ajouterStructureAPersonne(vueARafraichir, structureId, (StructureAPersonne) personnelAjoute.get(it.next()));
453 jp_milcent 481
			}
482
		}
483
	}
484
 
769 jpm 485
	public void modifierStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelModifie) {
447 jp_milcent 486
		if (personnelModifie != null && personnelModifie.size() > 0) {
487
			for (Iterator<String> it = personnelModifie.keySet().iterator(); it.hasNext();) {
769 jpm 488
				modele.modifierStructureAPersonne(vueARafraichir, (StructureAPersonne) personnelModifie.get(it.next()));
447 jp_milcent 489
			}
490
		}
491
	}
492
 
769 jpm 493
	public void supprimerStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelSupprime) {
447 jp_milcent 494
		if (personnelSupprime != null && personnelSupprime.size() > 0) {
769 jpm 495
			String idStructureAPersonneSepareParVirgule = "" ;
447 jp_milcent 496
			for (Iterator<String> it = personnelSupprime.keySet().iterator(); it.hasNext();) {
901 jpm 497
				idStructureAPersonneSepareParVirgule += personnelSupprime.get(it.next()).getId();
498
				if (it.hasNext()) {
499
					idStructureAPersonneSepareParVirgule += ",";
500
				}
447 jp_milcent 501
			}
769 jpm 502
			modele.supprimerStructureAPersonne(vueARafraichir, idStructureAPersonneSepareParVirgule);
447 jp_milcent 503
		}
504
	}
505
 
506
	//+----------------------------------------------------------------------------------------------------------------+
507
	//												GESTION des COLLECTIONS
508
	//+----------------------------------------------------------------------------------------------------------------+
509
 
453 jp_milcent 510
	public void afficherListeCollections(CollectionListe collectionsACharger) {
646 jp_milcent 511
		if (!(panneauCentre.getContenu() instanceof CollectionVue)) {
626 gduche 512
			panneauCentre.removeAll();
646 jp_milcent 513
			panneauCentre.add(new CollectionVue(this));
514
		}
626 gduche 515
 
646 jp_milcent 516
		panneauCentre.getContenu().rafraichir(collectionsACharger);
453 jp_milcent 517
	}
518
 
641 jp_milcent 519
	public void afficherFormCollection(String collectionId) {
520
		panneauCentre.removeAll();
883 jpm 521
		CollectionForm collectionForm = new CollectionForm(this, collectionId);
641 jp_milcent 522
		panneauCentre.add(collectionForm);
523
 
524
		panneauCentre.layout();
525
	}
526
 
453 jp_milcent 527
	public void clicListeCollection(Collection collectionCliquee) {
646 jp_milcent 528
		panneauCentre.getContenu().rafraichir(collectionCliquee);
883 jpm 529
		if (collectionCliquee != null) {
530
			selectionnerCollectionAPersonne(panneauCentre.getContenu(), collectionCliquee.getId(), null);
531
			selectionnerCollectionAPublication(panneauCentre.getContenu(), collectionCliquee.getId());
532
		}
453 jp_milcent 533
	}
534
 
447 jp_milcent 535
	public void clicAjouterCollection() {
775 jpm 536
		afficherFormCollection(null);
447 jp_milcent 537
	}
538
 
539
	public void clicModifierCollection(List<Collection> selection) {
641 jp_milcent 540
		if (selection.size() == 0) {
541
			Info.display("Information", "Veuillez sélectionner une collection.");
542
		} else if (selection.size() > 1) {
543
			Info.display("Information", "Veuillez sélectionner une seule collection à la fois.");
544
		} else if (selection.size() == 1) {
545
			afficherFormCollection(selection.get(0).getId());
546
		} else {
547
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierCollection() du Médiateur.");
548
		}
447 jp_milcent 549
	}
550
 
453 jp_milcent 551
	public void clicSupprimerCollection(CollectionListeVue collectionListeVue, List<Collection> collectionsASupprimer) {
775 jpm 552
		// TODO Auto-generated method stub
447 jp_milcent 553
	}
554
 
467 jp_milcent 555
	public void selectionnerCollection(Rafraichissable vueARafraichir, String collectionId) {
556
		modele.selectionnerCollection(vueARafraichir, getProjetId(), collectionId);
453 jp_milcent 557
	}
558
 
775 jpm 559
	public void selectionnerCollectionParProjet(Rafraichissable vueARafraichir, String projetId) {
560
		modele.selectionnerCollection(vueARafraichir, projetId, null);
561
	}
562
 
453 jp_milcent 563
	public void ajouterCollection(Rafraichissable vueARafraichir, Collection collection) {
564
		modele.ajouterCollection(vueARafraichir, getUtilisateurId(), collection);
565
	}
566
 
567
	public void modifierCollection(Rafraichissable vueARafraichir, Collection collection) {
872 jpm 568
		modele.modifierCollection(vueARafraichir, collection);
453 jp_milcent 569
	}
570
 
571
	public void supprimerCollection(Rafraichissable vueARafraichir, String IdentifiantsCollectionSepareParVirgule) {
572
		modele.supprimerCollection(vueARafraichir, getUtilisateurId(), IdentifiantsCollectionSepareParVirgule);
573
	}
574
 
447 jp_milcent 575
	//+----------------------------------------------------------------------------------------------------------------+
875 jpm 576
	// GESTION de la relation COLLECTION A PERSONNE
577
 
578
	public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId) {
579
		modele.selectionnerCollectionAPersonne(vueARafraichir, collectionId, roleId);
580
	}
581
 
582
	public void ajouterCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, CollectionAPersonneListe personnesAjoutees) {
583
		if (personnesAjoutees != null && personnesAjoutees.size() > 0) {
584
			for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {
585
				modele.ajouterCollectionAPersonne(vueARafraichir, collectionId, (CollectionAPersonne) personnesAjoutees.get(it.next()));
586
			}
587
		}
588
	}
589
 
590
	public void modifierCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesModifiees) {
591
		if (personnesModifiees != null && personnesModifiees.size() > 0) {
592
			for (Iterator<String> it = personnesModifiees.keySet().iterator(); it.hasNext();) {
593
				modele.modifierCollectionAPersonne(vueARafraichir, (CollectionAPersonne) personnesModifiees.get(it.next()));
594
			}
595
		}
596
	}
597
 
598
	public void supprimerCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesSupprimees) {
599
		if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
600
			String idCollectionAPersonneSeparesParVirgule = "" ;
601
			for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
901 jpm 602
				idCollectionAPersonneSeparesParVirgule += personnesSupprimees.get(it.next()).getId();
603
				if (it.hasNext()) {
604
					idCollectionAPersonneSeparesParVirgule += ",";
605
				}
875 jpm 606
			}
607
			modele.supprimerCollectionAPersonne(vueARafraichir, idCollectionAPersonneSeparesParVirgule);
608
		}
609
	}
610
 
611
	//+----------------------------------------------------------------------------------------------------------------+
612
	// GESTION de la relation COLLECTION A PUBLICATION
613
 
883 jpm 614
	public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId) {
615
		modele.selectionnerCollectionAPublication(vueARafraichir, collectionId);
616
	}
617
 
618
	public void ajouterCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, CollectionAPublicationListe publicationsAjoutees) {
619
		if (publicationsAjoutees != null && publicationsAjoutees.size() > 0) {
620
			for (Iterator<String> it = publicationsAjoutees.keySet().iterator(); it.hasNext();) {
621
				modele.ajouterCollectionAPublication(vueARafraichir, collectionId, (CollectionAPublication) publicationsAjoutees.get(it.next()));
622
			}
623
		}
624
	}
625
 
626
	public void modifierCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsModifiees) {
627
		if (publicationsModifiees != null && publicationsModifiees.size() > 0) {
628
			for (Iterator<String> it = publicationsModifiees.keySet().iterator(); it.hasNext();) {
629
				modele.modifierCollectionAPublication(vueARafraichir, (CollectionAPublication) publicationsModifiees.get(it.next()));
630
			}
631
		}
632
	}
633
 
907 jpm 634
	public void supprimerCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsSupprimees) {
883 jpm 635
		if (publicationsSupprimees != null && publicationsSupprimees.size() > 0) {
636
			String idCollectionAPublicationSeparesParVirgule = "" ;
637
			for (Iterator<String> it = publicationsSupprimees.keySet().iterator(); it.hasNext();) {
901 jpm 638
				idCollectionAPublicationSeparesParVirgule += publicationsSupprimees.get(it.next()).getId();
639
				if (it.hasNext()) {
640
					idCollectionAPublicationSeparesParVirgule += ",";
641
				}
883 jpm 642
			}
643
			modele.supprimerCollectionAPublication(vueARafraichir, idCollectionAPublicationSeparesParVirgule);
644
		}
645
	}
646
 
875 jpm 647
	//+----------------------------------------------------------------------------------------------------------------+
883 jpm 648
	// GESTION de la relation COLLECTION A PUBLICATION
649
 
650
	//+----------------------------------------------------------------------------------------------------------------+
875 jpm 651
	// GESTION de la relation COLLECTION A COMMENTAIRE
652
 
653
	//+----------------------------------------------------------------------------------------------------------------+
156 jp_milcent 654
	//												GESTION DES PERSONNES
655
	//+----------------------------------------------------------------------------------------------------------------+
656
 
657
	public void clicListePersonne(Personne personne)	{
646 jp_milcent 658
		panneauCentre.getContenu().rafraichir(personne);
69 jpm 659
	}
660
 
278 jp_milcent 661
	public void afficherListePersonnes(PersonneListe personnesACharger)	{
646 jp_milcent 662
		if (!(panneauCentre.getContenu() instanceof PersonneVue))	{
626 gduche 663
			panneauCentre.removeAll();
646 jp_milcent 664
			panneauCentre.add(new PersonneVue(this));
673 aurelien 665
			panneauCentre.setId(ComposantId.PANNEAU_PERSONNE_LISTES);
626 gduche 666
		}
599 gduche 667
 
646 jp_milcent 668
		panneauCentre.getContenu().rafraichir(personnesACharger);
156 jp_milcent 669
	}
670
 
128 gduche 671
	public void clicAjouterPersonne()	{
841 gduche 672
		afficherPersonneForm(null);
128 gduche 673
	}
674
 
285 gduche 675
	public void clicModifierPersonne(Personne personne)	{
841 gduche 676
		afficherPersonneForm(personne);
677
	}
678
 
679
	public void afficherPersonneForm(Personne personne)	{
680
		String personneId = null;
775 jpm 681
		if (personne != null)	{
841 gduche 682
			personneId = personne.getId();
683
		}
684
 
685
		panneauCentre.removeAll();
875 jpm 686
		PublicationForm publicationForm = new PublicationForm(this, personneId);
687
		panneauCentre.add(publicationForm);
841 gduche 688
 
689
		panneauCentre.layout();
285 gduche 690
	}
691
 
315 gduche 692
	public void clicSupprimerPersonne(final Rafraichissable vue,final List<Personne> personneSelection) {
663 gduche 693
 
694
		//Empecher suppression utilisateur
695
		for (int i=0; i < personneSelection.size(); i++)	{
696
			Personne courante = personneSelection.get(i);
697
			if (courante.getId().equals(getUtilisateurId()))	{
772 jpm 698
				Info.display("Information", "Vous ne pouvez pas supprimer votre compte");
663 gduche 699
				personneSelection.remove(courante);
700
			}
701
		}
702
 
245 jp_milcent 703
		if (personneSelection.size() == 0) {
704
			Info.display("Information", "Veuillez sélectionner une personne.");
705
		} else if(personneSelection.size() > 0) {
706
			String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?";
707
			if (personneSelection.size() == 1) {
708
				message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?";
709
			}
315 gduche 710
 
502 gduche 711
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
712
				public void handleEvent(MessageBoxEvent ce) {
713
					Dialog dialog = (Dialog) ce.getComponent();
714
					Button btn = ce.getButtonClicked();
327 jp_milcent 715
 
716
					if (btn.getText().equals(dialog.yesText)) {
772 jpm 717
						String idPersonneSepareParVirgule = "" ;
347 gduche 718
						Iterator<Personne> itPersonne = personneSelection.iterator();
719
						while (itPersonne.hasNext()) {
720
							Personne personneCourante = itPersonne.next();
772 jpm 721
							idPersonneSepareParVirgule += personneCourante.getId();
722
							idPersonneSepareParVirgule +=",";
327 jp_milcent 723
						}
772 jpm 724
						modele.supprimerPersonne(vue, idPersonneSepareParVirgule);
327 jp_milcent 725
					}
726
				}
727
			};
453 jp_milcent 728
 
315 gduche 729
			MessageBox.confirm("Supprimer une personne", message, listenerSuppression);
245 jp_milcent 730
		} else {
731
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur.");
732
		}
733
	}
277 jp_milcent 734
 
775 jpm 735
	public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId)	{
736
		int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
737
		selectionnerPersonne(vue, personne, projetId, 0, nbElements);
738
	}
739
 
740
	public void selectionnerPersonne(Rafraichissable vue, Personne personne, String projetId, int start, int nbElements)	{
741
		String personneId = null;
742
		if (personne != null)	{
743
			personneId = personne.getId();
744
		}
745
		modele.selectionnerPersonne(vue, personneId, projetId, null, start, nbElements);
746
	}
747
 
599 gduche 748
	public void selectionnerPersonneParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) {
749
		modele.selectionnerPersonne(vueARafraichir, null, projetId, nomComplet, 0, -1);
277 jp_milcent 750
	}
245 jp_milcent 751
 
775 jpm 752
	public void selectionnerPersonneParProjet(Rafraichissable vueARafraichir, String projetId) {
753
		modele.selectionnerPersonne(vueARafraichir, null, projetId, null, 0, -1);
754
	}
755
 
389 gduche 756
	public void enregistrerPersonne(Rafraichissable vue, Personne personne){
774 jpm 757
		if (personne.getId() != null && !personne.getId().trim().equals("")) {
429 gduche 758
			modele.modifierPersonne(vue, personne);
759
		}	else {
760
			modele.ajouterPersonne(vue, personne);
761
		}
389 gduche 762
	}
763
 
156 jp_milcent 764
	//+----------------------------------------------------------------------------------------------------------------+
765
	//												GESTION DES PUBLICATIONS
766
	//+----------------------------------------------------------------------------------------------------------------+
767
 
107 aurelien 768
	public void afficherListePublication(PublicationListe nouvelleDonnees) {
673 aurelien 769
		if (!(panneauCentre.getContenu() instanceof PublicationVue))	{
626 gduche 770
			panneauCentre.removeAll();
673 aurelien 771
			PublicationVue publicationVue = new PublicationVue(this) ;
772
			panneauCentre.setId(ComposantId.PANNEAU_PUBLICATION_LISTE);
773
			panneauCentre.add(publicationVue);
774
			panneauCentre.layout(true);
626 gduche 775
		}
776
 
715 aurelien 777
		masquerPopinChargement();
778
 
646 jp_milcent 779
		panneauCentre.getContenu().rafraichir(nouvelleDonnees);
107 aurelien 780
	}
715 aurelien 781
 
775 jpm 782
	public void afficherFormPublication(String publicationId) {
783
		panneauCentre.removeAll();
781 jpm 784
		PublicationForm publicationForm = new PublicationForm(this, publicationId);
775 jpm 785
		panneauCentre.add(publicationForm);
786
 
787
		panneauCentre.layout();
715 aurelien 788
	}
775 jpm 789
 
107 aurelien 790
	public void clicListePublication(Publication publication) {
775 jpm 791
		if (publication != null) {
675 aurelien 792
			panneauCentre.getContenu().rafraichir(publication);
793
		}
107 aurelien 794
	}
795
 
796
	public void clicAjouterPublication() {
775 jpm 797
		afficherFormPublication(null);
107 aurelien 798
	}
156 jp_milcent 799
 
775 jpm 800
	public void clicModifierPublication(List<Publication> selection) {
801
		if (selection.size() == 0) {
802
			Info.display("Information", "Veuillez sélectionner une publication.");
803
		} else if (selection.size() > 1) {
804
			Info.display("Information", "Veuillez sélectionner une seule publication à la fois.");
805
		} else if (selection.size() == 1) {
806
			afficherFormPublication(selection.get(0).getId());
379 jp_milcent 807
		} else {
775 jpm 808
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierPublication() du Médiateur.");
245 jp_milcent 809
		}
810
	}
811
 
315 gduche 812
	public void clicSupprimerPublication(final List<Publication> publicationListe) {
453 jp_milcent 813
		if (publicationListe.size() <= 0) {
315 gduche 814
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null);
379 jp_milcent 815
		} else {
673 aurelien 816
			String message = "Voulez-vous vraiment supprimer ces publications ?";
775 jpm 817
			if (publicationListe.size() == 1) {
245 jp_milcent 818
				message = "Voulez-vous vraiment supprimer cette publication ?";
819
			}
315 gduche 820
 
502 gduche 821
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
822
				public void handleEvent(MessageBoxEvent ce) {
823
					Dialog dialog = (Dialog) ce.getComponent();
824
				    Button btn = ce.getButtonClicked();
315 gduche 825
 
379 jp_milcent 826
				    if (btn.getText().equals(dialog.yesText)) {
764 jpm 827
				    	modele.supprimerPublication(panneauCentre.getContenu(), publicationListe);
315 gduche 828
				    }
829
				}
830
			};
831
 
832
			MessageBox.confirm("Supprimer une publication", message, listenerSuppression);
245 jp_milcent 833
		}
834
	}
709 jp_milcent 835
 
836
	public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId) {
837
		modele.selectionnerPublication(vueARafraichir, publicationId, getProjetId(), null);
838
	}
839
 
840
	public void selectionnerPublicationParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) {
841
		modele.selectionnerPublication(vueARafraichir, null, projetId, nomComplet);
842
	}
843
 
786 jpm 844
	public void ajouterPublication(Rafraichissable vueARafraichir, Publication publication) {
845
		modele.ajouterPublication(vueARafraichir, publication);
245 jp_milcent 846
	}
847
 
786 jpm 848
	public void modifierPublication(Rafraichissable vueARafraichir, Publication publication) {
849
		modele.modifierPublication(vueARafraichir, publication);
245 jp_milcent 850
	}
851
 
453 jp_milcent 852
	public void clicObtenirListeEditeurs(Rafraichissable vueARafraichir) {
775 jpm 853
		selectionnerStructureParProjet(vueARafraichir, null);
245 jp_milcent 854
	}
855
 
453 jp_milcent 856
	public void clicObtenirListeAuteurs(Rafraichissable vueARafraichir) {
775 jpm 857
		selectionnerPersonneParProjet(vueARafraichir, null);
245 jp_milcent 858
	}
859
 
156 jp_milcent 860
	//+----------------------------------------------------------------------------------------------------------------+
822 jpm 861
	// GESTION de la relation PUBLICATION A PERSONNE
862
 
863
	public void selectionnerPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId) {
864
		modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleId);
865
	}
866
 
901 jpm 867
	public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, PublicationAPersonneListe personnesAjoutees, String roleId) {
868
		if (personnesAjoutees != null && personnesAjoutees.size() > 0) {
869
			String idPublicationAPersonneSepareParVirgule = "" ;
870
			for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {
871
				idPublicationAPersonneSepareParVirgule += personnesAjoutees.get(it.next()).getIdPersonne();
872
				if (it.hasNext()) {
873
					idPublicationAPersonneSepareParVirgule += ",";
874
				}
875
			}
876
			modele.ajouterPublicationAPersonne(vueARafraichir, publicationId, idPublicationAPersonneSepareParVirgule, roleId);
877
		}
822 jpm 878
	}
901 jpm 879
 
880
	public void supprimerPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe personnesSupprimees) {
881
		if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
882
			String idPublicationAPersonneSepareParVirgule = "" ;
883
			for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
884
				idPublicationAPersonneSepareParVirgule += personnesSupprimees.get(it.next()).getId();
885
				if (it.hasNext()) {
886
					idPublicationAPersonneSepareParVirgule += ",";
887
				}
888
			}
889
			modele.supprimerPublicationAPersonne(vueARafraichir, idPublicationAPersonneSepareParVirgule);
890
		}
822 jpm 891
	}
892
 
893
	//+----------------------------------------------------------------------------------------------------------------+
447 jp_milcent 894
	//												RAFRAICHISSEMENT
156 jp_milcent 895
	//+----------------------------------------------------------------------------------------------------------------+
896
 
898 gduche 897
	public void rafraichir(Object nouvellesDonnees) {
898
		if (nouvellesDonnees instanceof Utilisateur) {
899
			mettreAJourEtatIdentification((Utilisateur) nouvellesDonnees);
900
		} else if (nouvellesDonnees instanceof Information) {
901
			Information info = (Information) nouvellesDonnees;
902
		} else	{
903
			GWT.log(i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
277 jp_milcent 904
		}
905
	}
281 gduche 906
 
453 jp_milcent 907
	//+----------------------------------------------------------------------------------------------------------------+
908
	//												GESTION du STATUT
909
	//+----------------------------------------------------------------------------------------------------------------+
288 gduche 910
 
332 gduche 911
	public void afficherPopinChargement()	{
912
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).center();
913
	}
453 jp_milcent 914
 
332 gduche 915
	public void masquerPopinChargement()	{
916
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide();
917
	}
836 aurelien 918
 
877 aurelien 919
	public void afficherFormProjet(String projetId) {
920
		panneauCentre.removeAll();
921
		ProjetForm projetForm = new ProjetForm(this, projetId);
922
		panneauCentre.add(projetForm);
923
 
924
		panneauCentre.layout();
925
	}
926
 
836 aurelien 927
	public void afficherListeProjets(ProjetListe projetsACharger)	{
928
		if (!(panneauCentre.getContenu() instanceof ProjetVue))	{
929
			panneauCentre.removeAll();
930
			panneauCentre.add(new ProjetVue(this));
931
			panneauCentre.setId(ComposantId.PANNEAU_PROJET_LISTE);
932
			panneauCentre.layout();
933
		}
934
 
935
		panneauCentre.getContenu().rafraichir(projetsACharger);
936
	}
447 jp_milcent 937
 
836 aurelien 938
 
939
	//+----------------------------------------------------------------------------------------------------------------+
940
	//												GESTION des projets
941
	//+----------------------------------------------------------------------------------------------------------------+
942
	public void clicListeProjet(Projet projet) {
943
		panneauCentre.getContenu().rafraichir(projet);
944
	}
945
 
902 aurelien 946
	public void clicSupprimerProjet(final List<Projet> projetListe) {
947
		if (projetListe.size() <= 0) {
948
			MessageBox.alert("Attention", "Vous devez sélectionner un projet", null);
949
		} else {
950
			String message = "Voulez-vous vraiment supprimer ces projets ?";
951
			if (projetListe.size() == 1) {
952
				message = "Voulez-vous vraiment supprimer ce projet ?";
953
			}
954
 
955
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
956
				public void handleEvent(MessageBoxEvent ce) {
957
					Dialog dialog = (Dialog) ce.getComponent();
958
				    Button btn = ce.getButtonClicked();
959
 
960
				    if (btn.getText().equals(dialog.yesText)) {
961
				    	modele.supprimerProjet(panneauCentre.getContenu(), projetListe);
962
				    }
963
				}
964
			};
965
 
966
			MessageBox.confirm("Supprimer un projet", message, listenerSuppression);
967
		}
836 aurelien 968
 
969
	}
970
 
971
	public void clicModifierProjet(List<Projet> selectedItems) {
877 aurelien 972
		afficherFormProjet(selectedItems.get(0).getId());
973
	}
974
 
975
	public void clicAjouterProjet() {
976
		afficherFormProjet(null);
977
	}
978
 
979
	public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId) {
980
		modele.selectionnerProjet(vueARafraichir, projetId);
981
	}
982
 
983
	public void ajouterProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
892 aurelien 984
		modele.ajouterProjet(vueARafraichir, projetCollecte);
836 aurelien 985
	}
986
 
877 aurelien 987
	public void modifierProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
892 aurelien 988
		modele.modifierProjet(vueARafraichir, projetCollecte);
836 aurelien 989
	}
990
 
277 jp_milcent 991
}