Subversion Repositories eFlore/Applications.coel

Rev

Rev 1390 | Rev 1442 | 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;
1210 cyprien 8
import org.tela_botanica.client.composants.InfoLogger;
898 gduche 9
import org.tela_botanica.client.composants.LicenceFenetre;
1023 jpm 10
import org.tela_botanica.client.composants.AproposFenetre;
907 jpm 11
import org.tela_botanica.client.configuration.APropos;
12
import org.tela_botanica.client.configuration.Configuration;
358 jp_milcent 13
import org.tela_botanica.client.i18n.Constantes;
466 gduche 14
import org.tela_botanica.client.i18n.ErrorMessages;
119 jpm 15
import org.tela_botanica.client.interfaces.Rafraichissable;
156 jp_milcent 16
import org.tela_botanica.client.modeles.Information;
327 jp_milcent 17
import org.tela_botanica.client.modeles.MenuApplicationId;
61 jpm 18
import org.tela_botanica.client.modeles.Utilisateur;
1014 gduche 19
import org.tela_botanica.client.modeles.Valeur;
1292 cyprien 20
import org.tela_botanica.client.modeles.ValeurListe;
935 jpm 21
import org.tela_botanica.client.modeles.collection.Collection;
989 jpm 22
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
23
import org.tela_botanica.client.modeles.collection.CollectionACommentaireAsyncDao;
24
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
935 jpm 25
import org.tela_botanica.client.modeles.collection.CollectionAPersonne;
26
import org.tela_botanica.client.modeles.collection.CollectionAPersonneListe;
27
import org.tela_botanica.client.modeles.collection.CollectionAPublication;
28
import org.tela_botanica.client.modeles.collection.CollectionAPublicationListe;
29
import org.tela_botanica.client.modeles.collection.CollectionListe;
985 jpm 30
import org.tela_botanica.client.modeles.commentaire.Commentaire;
31
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
935 jpm 32
import org.tela_botanica.client.modeles.personne.Personne;
33
import org.tela_botanica.client.modeles.personne.PersonneListe;
34
import org.tela_botanica.client.modeles.projet.Projet;
35
import org.tela_botanica.client.modeles.projet.ProjetListe;
36
import org.tela_botanica.client.modeles.publication.Publication;
37
import org.tela_botanica.client.modeles.publication.PublicationAPersonne;
38
import org.tela_botanica.client.modeles.publication.PublicationAPersonneListe;
39
import org.tela_botanica.client.modeles.publication.PublicationListe;
40
import org.tela_botanica.client.modeles.structure.Structure;
41
import org.tela_botanica.client.modeles.structure.StructureAPersonne;
42
import org.tela_botanica.client.modeles.structure.StructureAPersonneListe;
43
import org.tela_botanica.client.modeles.structure.StructureConservation;
44
import org.tela_botanica.client.modeles.structure.StructureListe;
45
import org.tela_botanica.client.modeles.structure.StructureValorisation;
1324 gduche 46
import org.tela_botanica.client.synchronisation.Sequenceur;
1426 cyprien 47
import org.tela_botanica.client.util.Debug;
936 jpm 48
import org.tela_botanica.client.vues.ContenuVue;
444 jp_milcent 49
import org.tela_botanica.client.vues.EnteteVue;
641 jp_milcent 50
import org.tela_botanica.client.vues.Formulaire;
1210 cyprien 51
import org.tela_botanica.client.vues.FenetreJournal;
982 jpm 52
import org.tela_botanica.client.vues.NavigationVue;
332 gduche 53
import org.tela_botanica.client.vues.PopupChargement;
443 jp_milcent 54
import org.tela_botanica.client.vues.StatutVue;
1292 cyprien 55
import org.tela_botanica.client.vues.MenuVue;
912 jpm 56
import org.tela_botanica.client.vues.accueil.AccueilVue;
934 jpm 57
import org.tela_botanica.client.vues.collection.CollectionForm;
58
import org.tela_botanica.client.vues.collection.CollectionListeVue;
59
import org.tela_botanica.client.vues.collection.CollectionVue;
989 jpm 60
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
985 jpm 61
import org.tela_botanica.client.vues.commentaire.CommentaireVue;
935 jpm 62
import org.tela_botanica.client.vues.personne.PersonneForm;
63
import org.tela_botanica.client.vues.personne.PersonneVue;
64
import org.tela_botanica.client.vues.projet.ProjetForm;
65
import org.tela_botanica.client.vues.projet.ProjetVue;
66
import org.tela_botanica.client.vues.publication.PublicationForm;
67
import org.tela_botanica.client.vues.publication.PublicationVue;
68
import org.tela_botanica.client.vues.structure.StructureForm;
69
import org.tela_botanica.client.vues.structure.StructureVue;
467 jp_milcent 70
 
60 jpm 71
import com.extjs.gxt.ui.client.Registry;
72
import com.extjs.gxt.ui.client.Style.LayoutRegion;
1292 cyprien 73
import com.extjs.gxt.ui.client.data.DataProxy;
315 gduche 74
import com.extjs.gxt.ui.client.event.Listener;
502 gduche 75
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
60 jpm 76
import com.extjs.gxt.ui.client.util.Margins;
1292 cyprien 77
import com.extjs.gxt.ui.client.widget.Component;
315 gduche 78
import com.extjs.gxt.ui.client.widget.Dialog;
1329 cyprien 79
import com.extjs.gxt.ui.client.widget.Info;
315 gduche 80
import com.extjs.gxt.ui.client.widget.MessageBox;
60 jpm 81
import com.extjs.gxt.ui.client.widget.Viewport;
315 gduche 82
import com.extjs.gxt.ui.client.widget.button.Button;
60 jpm 83
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
84
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
1329 cyprien 85
import com.gargoylesoftware.htmlunit.AlertHandler;
91 jpm 86
import com.google.gwt.core.client.GWT;
599 gduche 87
import com.google.gwt.i18n.client.Dictionary;
60 jpm 88
import com.google.gwt.user.client.Window;
89
import com.google.gwt.user.client.ui.RootPanel;
90
 
277 jp_milcent 91
public class Mediateur implements Rafraichissable {
60 jpm 92
 
358 jp_milcent 93
	private Viewport viewport;
119 jpm 94
	private Modele modele = null;
582 jp_milcent 95
	public static final Constantes i18nC = getI18nConstante();
96
	public static final ErrorMessages i18nM = getI18nMessage();
1367 cyprien 97
	public static final boolean DEBUG = true;
119 jpm 98
 
444 jp_milcent 99
	private EnteteVue panneauNord = null;
982 jpm 100
	private NavigationVue panneauOuest = null;
444 jp_milcent 101
	private ContenuVue panneauCentre = null;
443 jp_milcent 102
	private StatutVue panneauSud = null;
1210 cyprien 103
	private FenetreJournal fenetreJournal = null;
60 jpm 104
 
358 jp_milcent 105
	private IdentificationFenetre fenetreIdentification = null;
1041 gduche 106
	private int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage"));
1156 jpm 107
 
60 jpm 108
	public Mediateur() {
109
		// Enregistrement du Médiateur dans le Registre
110
		Registry.register(RegistreId.MEDIATEUR, this);
765 jpm 111
 
112
		//Initialisation du Registre
113
		initialiserRegistre();
466 gduche 114
 
60 jpm 115
		// Création du Modèle qui s'enregistre lui même dans le Registre
119 jpm 116
		modele = new Modele();
535 jp_milcent 117
 
60 jpm 118
		// Création du Viewport qui contient la disposition globale de l'application
119
		viewport = new Viewport();
120
		viewport.setLayout(new BorderLayout());
552 jp_milcent 121
 
60 jpm 122
		// Création des différents panneaux
123
	    creerPanneauNord();
124
	    creerPanneauOuest();
125
	    creerPanneauCentral();
358 jp_milcent 126
	    creerPanneauSud();
1210 cyprien 127
	    fenetreJournal = new FenetreJournal(this);
535 jp_milcent 128
 
129
		// Connection de l'utilisateur
130
		connecterUtilisateur(null, null);
131
 
60 jpm 132
		// Retour à GWT du Viewport une fois constuit
133
		RootPanel.get().add(viewport);
134
	}
135
 
156 jp_milcent 136
	//+----------------------------------------------------------------------------------------------------------------+
535 jp_milcent 137
	//												GESTION de l'I18N et du REGISTRE
138
	//+----------------------------------------------------------------------------------------------------------------+
582 jp_milcent 139
	protected static Constantes getI18nConstante() {
535 jp_milcent 140
		return GWT.create(Constantes.class);
141
	}
142
 
582 jp_milcent 143
	protected static ErrorMessages getI18nMessage() {
535 jp_milcent 144
		return GWT.create(ErrorMessages.class);
145
	}
146
 
147
	protected void initialiserRegistre() {
1107 jpm 148
		APropos apropos = new APropos();
907 jpm 149
 
1107 jpm 150
		Registry.register(RegistreId.APPLI_NOM, apropos.getAppliNom());
151
		Registry.register(RegistreId.APPLI_CODE, apropos.getAppliCode());
1108 jpm 152
		Registry.register(RegistreId.APPLI_VERSION, apropos.getAppliVersionCode());
153
		Registry.register(RegistreId.APPLI_VERSION_NOM, apropos.getAppliVersionNom());
1107 jpm 154
 
1023 jpm 155
		Registry.register(RegistreId.APPLI_DEVELOPPEURS, apropos.getDeveloppeurs());
156
		Registry.register(RegistreId.APPLI_TRADUCTEURS, apropos.getTraducteurs());
1390 jpm 157
		Registry.register(RegistreId.APPLI_TESTEURS, apropos.getTesteurs());
1023 jpm 158
		Registry.register(RegistreId.APPLI_LICENCE, apropos.getLicence());
1390 jpm 159
 
907 jpm 160
		Registry.register(RegistreId.APPLI_REVISION, apropos.getRevisionGlobale());
1390 jpm 161
		Registry.register(RegistreId.JREST_REVISION, apropos.getRevisionGlobaleJrest());
907 jpm 162
		Registry.register(RegistreId.APPLI_COMPILATION_JAVA_VERSION, apropos.getVersionJavaCompilation());
163
		Registry.register(RegistreId.APPLI_COMPILATION_DATE_HEURE, apropos.getDateHeureCompilation());
535 jp_milcent 164
 
165
		Registry.register(RegistreId.CONFIG, new Configuration());
537 jp_milcent 166
		Registry.register(RegistreId.POPUP_CHARGEMENT, new PopupChargement(this));
766 jpm 167
		Registry.register(RegistreId.UTILISATEUR_COURANT, new Utilisateur());
535 jp_milcent 168
		Registry.register(RegistreId.PROJET_COURANT, new Projet());
169
	}
170
 
171
	//+----------------------------------------------------------------------------------------------------------------+
156 jp_milcent 172
	//												GESTION des PANNEAUX PRINCIPAUX
173
	//+----------------------------------------------------------------------------------------------------------------+
119 jpm 174
 
60 jpm 175
	private void creerPanneauNord() {
444 jp_milcent 176
		panneauNord = new EnteteVue(this);
60 jpm 177
 
178
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
179
		regionNord.setCollapsible(true);
180
		regionNord.setFloatable(true);
181
		regionNord.setSplit(false);
182
		regionNord.setMargins(new Margins(5, 5, 0, 5));
183
 
184
		viewport.add(panneauNord, regionNord);
185
	}
186
 
187
	private void creerPanneauOuest() {
982 jpm 188
		panneauOuest = new NavigationVue(this);
60 jpm 189
 
1373 cyprien 190
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 241);
60 jpm 191
		regionOuest.setSplit(true);
192
		regionOuest.setCollapsible(true);
193
		regionOuest.setMargins(new Margins(5));
194
 
195
		viewport.add(panneauOuest, regionOuest);
196
	}
1369 cyprien 197
 
198
	public String getFiltreProjet() {
199
		return panneauOuest.getFiltre().getProjet();
200
	}
60 jpm 201
 
202
	private void creerPanneauCentral() {
444 jp_milcent 203
		panneauCentre = new ContenuVue(this);
60 jpm 204
 
205
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
206
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
207
 
208
		viewport.add(panneauCentre, regionCentre);
209
	}
358 jp_milcent 210
 
211
	private void creerPanneauSud() {
443 jp_milcent 212
		panneauSud = new StatutVue();
358 jp_milcent 213
 
369 jp_milcent 214
		BorderLayoutData regionSud = new BorderLayoutData(LayoutRegion.SOUTH, 20);
358 jp_milcent 215
		regionSud.setCollapsible(true);
216
		regionSud.setFloatable(true);
217
		regionSud.setSplit(false);
218
		regionSud.setMargins(new Margins(0));
219
 
220
		viewport.add(panneauSud, regionSud);
221
	}
60 jpm 222
 
369 jp_milcent 223
	public void actualiserPanneauCentral() {
224
		panneauCentre.layout();
225
	}
226
 
1210 cyprien 227
	public Rafraichissable obtenirFenetreJournal()	{
228
		return this.fenetreJournal;
229
	}
230
 
231
	public void ouvrirFenetreJournal()	{
232
		fenetreJournal.show();
233
	}
234
 
235
	public StatutVue obtenirPanneauSud()	{
236
		return this.panneauSud;
237
	}
238
 
156 jp_milcent 239
	//+----------------------------------------------------------------------------------------------------------------+
240
	//												GESTION du MENU
241
	//+----------------------------------------------------------------------------------------------------------------+
242
 
327 jp_milcent 243
	public void clicMenu(String codeMenuClique) {
1210 cyprien 244
 
358 jp_milcent 245
		activerChargement(codeMenuClique);
982 jpm 246
		panneauOuest.getMenu().selectionMenu(codeMenuClique);
1210 cyprien 247
 
248
		if (codeMenuClique.equals(MenuApplicationId.ACCUEIL)) {
910 jpm 249
			afficherAccueil();
250
		} else if (codeMenuClique.equals(MenuApplicationId.PROJET)) {
1324 gduche 251
			selectionnerProjet(panneauCentre, null, null);
910 jpm 252
		} else if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {
1324 gduche 253
			selectionnerStructure(panneauCentre, null, null);
553 jp_milcent 254
		} else if (codeMenuClique.equals(MenuApplicationId.COLLECTION)) {
1367 cyprien 255
			selectionnerCollection(panneauCentre, null, null, null);
553 jp_milcent 256
		} else if (codeMenuClique.equals(MenuApplicationId.PERSONNE)) {
1324 gduche 257
			selectionnerPersonne(panneauCentre, null, getProjetId(), null);
327 jp_milcent 258
		} else if (codeMenuClique.equals(MenuApplicationId.PUBLICATION)) {
1324 gduche 259
			selectionnerPublication(panneauCentre, null, null);
985 jpm 260
		} else if (codeMenuClique.equals(MenuApplicationId.COMMENTAIRE)) {
1367 cyprien 261
			selectionnerCommentaire(panneauCentre, null, null);
379 jp_milcent 262
		} else {
841 gduche 263
			GWT.log(i18nM.nonImplemente(codeMenuClique), null);
60 jpm 264
		}
265
		panneauCentre.layout();
266
	}
1324 gduche 267
 
358 jp_milcent 268
	public void activerChargement(String message) {
1155 jpm 269
		afficherPopinChargement();
270
		panneauCentre.disable();
369 jp_milcent 271
		panneauSud.showBusy(i18nC.chargement()+" "+message);
358 jp_milcent 272
	}
273
 
274
	public void desactiverChargement() {
275
		masquerPopinChargement();
1155 jpm 276
		panneauCentre.enable();
358 jp_milcent 277
		panneauSud.clear();
278
	}
646 jp_milcent 279
 
156 jp_milcent 280
	//+----------------------------------------------------------------------------------------------------------------+
281
	//												GESTION DES FENÊTRES
282
	//+----------------------------------------------------------------------------------------------------------------+
60 jpm 283
 
61 jpm 284
	public void ouvrirAide() {
285
		AideFenetre aideFenetre = new AideFenetre();
286
		aideFenetre.show();
66 jpm 287
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
288
		//aideFenetre.el().fadeIn(FxConfig.NONE);
61 jpm 289
	}
290
 
291
	public void ouvrirParametres() {
1023 jpm 292
		AproposFenetre parametresFenetre = new AproposFenetre();
66 jpm 293
		parametresFenetre.show();
61 jpm 294
	}
295
 
296
	public void ouvrirIdentification() {
1017 jpm 297
		fenetreIdentification = new IdentificationFenetre(this);
358 jp_milcent 298
		fenetreIdentification.show();
61 jpm 299
	}
300
 
989 jpm 301
	public void ouvrirUrlExterne(String id) {
61 jpm 302
		if (id.equals(ComposantId.MENU_CEL)) {
989 jpm 303
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("cel"), "Carnet en ligne", "");
61 jpm 304
		} else if (id.equals(ComposantId.MENU_BEL)) {
989 jpm 305
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("cel"), "Biblio en ligne", "");
306
		} else if (id.equals(ComposantId.MENU_BOGUE)) {
307
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("bogue"), "Bogue", "");
308
		} else if (id.equals(ComposantId.MENU_COMMENTAIRE)) {
309
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getUrl("commentaire"), "Commentaire", "");
61 jpm 310
		}
311
	}
312
 
898 gduche 313
	public void afficherFenetreLicence(IdentificationFenetre vue)	{
314
		LicenceFenetre lf = new LicenceFenetre(vue);
315
	}
316
 
317
	public void accepterLicence(Rafraichissable vue)	{
318
		modele.accepterLicence(vue);
319
	}
156 jp_milcent 320
	//+----------------------------------------------------------------------------------------------------------------+
321
	//												GESTION de l'UTILISATEUR et de l'IDENTIFICATION
322
	//+----------------------------------------------------------------------------------------------------------------+
245 jp_milcent 323
	/**
324
	 * Retourne l'identifiant de l'utilisateur courrant de l'application.
325
	 */
156 jp_milcent 326
	public String getUtilisateurId() {
277 jp_milcent 327
		String id = null;
328
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
329
		if (!utilisateurCourant.getId().equals("")) {
330
			id = utilisateurCourant.getId();
331
		}
332
		return id;
156 jp_milcent 333
	}
334
 
912 jpm 335
	public Utilisateur getUtilisateur() {
336
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
337
		return utilisateurCourant;
338
	}
339
 
65 jpm 340
	public void connecterUtilisateur(String login, String mdp) {
277 jp_milcent 341
		modele.connecterUtilisateur(this, login, mdp);
64 jpm 342
	}
343
 
65 jpm 344
	public void deconnecterUtilisateur() {
277 jp_milcent 345
		modele.deconnecterUtilisateur(this);
64 jpm 346
	}
65 jpm 347
 
932 jpm 348
	public void repandreEtatIdentification(Utilisateur utilisateur) {
156 jp_milcent 349
		// Mise à jour du registre
277 jp_milcent 350
		Registry.register(RegistreId.UTILISATEUR_COURANT, utilisateur);
932 jpm 351
		// Propagation de l'information de mise à jour de l'utilisateur
352
		repandreInfoMiseAJourUtilisateur();
353
	}
354
 
355
	public void repandreInfoMiseAJourUtilisateur() {
912 jpm 356
		// Création de l'information de mise à jour de l'utilisateur
357
		Information info = new Information("maj_utilisateur");
358
 
359
		// Rafraichissement de la fenêtre d'Identification
941 jpm 360
		if (fenetreIdentification != null && fenetreIdentification.isVisible()) {
912 jpm 361
			fenetreIdentification.rafraichir(info);
362
		}
898 gduche 363
 
912 jpm 364
		// Rafraichissement du panneau Nord
365
		panneauNord.rafraichir(info);
1292 cyprien 366
 
912 jpm 367
		// Rafraichissement du panneau Centre
368
		if (panneauCentre != null) {
369
			panneauCentre.rafraichir(info);
932 jpm 370
		}
912 jpm 371
	}
1292 cyprien 372
 
912 jpm 373
	public void modifierUtilisateur()	{
374
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
375
		panneauNord.rafraichir(utilisateurCourant);
376
		modele.modifierUtilisateur(this, utilisateurCourant);
61 jpm 377
	}
1292 cyprien 378
 
156 jp_milcent 379
	//+----------------------------------------------------------------------------------------------------------------+
447 jp_milcent 380
	//												GESTION DES VALEURS ET LISTES
381
	//+----------------------------------------------------------------------------------------------------------------+
1367 cyprien 382
 
383
	/** Cette méthode est un "wrapper" **/
1324 gduche 384
	public void obtenirListeValeurEtRafraichir(Rafraichissable vueARafraichir, String listeId, Sequenceur sequenceur)	{
385
		obtenirListeValeurEtRafraichir(vueARafraichir, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), sequenceur);
1292 cyprien 386
	}
1367 cyprien 387
 
1324 gduche 388
	public void obtenirListeValeurEtRafraichir(Rafraichissable vueARafraichir, int listeId, Sequenceur sequenceur)	{
1367 cyprien 389
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  ValeurListe");
1324 gduche 390
		Integer numeroSequence = null;
391
		if (sequenceur != null)	{
392
			numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
393
			vueARafraichir = sequenceur;
394
		}
395
		modele.obtenirListeValeurs(vueARafraichir, listeId, numeroSequence);
453 jp_milcent 396
	}
1367 cyprien 397
 
1324 gduche 398
	public void obtenirListeValeurEtRafraichir(Rafraichissable vueARafraichir, String nomListe, boolean pagination, String recherche, int start, int nbElements, Sequenceur sequenceur)	{
1367 cyprien 399
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  ValeurListe");
1324 gduche 400
		Integer numeroSequence = null;
401
		if (sequenceur != null)	{
402
			numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
403
			vueARafraichir = sequenceur;
404
		}
405
		modele.obtenirListeValeurs(vueARafraichir, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(nomListe), pagination, recherche, start, nbElements, numeroSequence);
406
	}
1367 cyprien 407
 
408
	public void obtenirValeurEtRafraichir(Rafraichissable vueARafraichir, String listeId, String identifiantValeur, Sequenceur sequenceur)	{
409
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  ValeurListe");
1324 gduche 410
		Integer numeroSequence = null;
411
		if (sequenceur != null)	{
1367 cyprien 412
			numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
413
			vueARafraichir = sequenceur;
1324 gduche 414
		}
1373 cyprien 415
		modele.obtenirValeur(vueARafraichir, "identifiant", ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), identifiantValeur, numeroSequence);
453 jp_milcent 416
	}
1367 cyprien 417
 
418
	public void obtenirListeRegionsEtRafraichir(Rafraichissable vueARafraichir, String strListeId, String strPays)	{
419
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  obtenirListeRegions");
420
		modele.obtenirListeRegion(vueARafraichir, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(strListeId), strPays+".__");
453 jp_milcent 421
	}
1367 cyprien 422
 
447 jp_milcent 423
	//+----------------------------------------------------------------------------------------------------------------+
910 jpm 424
	//												GESTION des APPLETS de l'ACCUEIL
425
	//+----------------------------------------------------------------------------------------------------------------+
426
 
427
	public void afficherAccueil() {
1210 cyprien 428
		if (!(panneauCentre.getContenu() instanceof AccueilVue)) {
910 jpm 429
			panneauCentre.removeAll();
430
			panneauCentre.add(new AccueilVue(this));
431
		}
1210 cyprien 432
		else {
433
			desactiverChargement();
434
		}
910 jpm 435
	}
436
 
437
	//+----------------------------------------------------------------------------------------------------------------+
447 jp_milcent 438
	//												GESTION des PROJETS
439
	//+----------------------------------------------------------------------------------------------------------------+
440
 
928 jpm 441
	public void afficherFormProjet(String projetId) {
442
		panneauCentre.removeAll();
443
		ProjetForm projetForm = new ProjetForm(this, projetId);
444
		panneauCentre.add(projetForm);
445
 
446
		panneauCentre.layout();
447
	}
448
 
449
	public void afficherListeProjets(ProjetListe projetsACharger)	{
450
		if (!(panneauCentre.getContenu() instanceof ProjetVue))	{
451
			panneauCentre.removeAll();
452
			panneauCentre.add(new ProjetVue(this));
453
			panneauCentre.setId(ComposantId.PANNEAU_PROJET_LISTE);
454
			panneauCentre.layout();
455
		}
456
 
457
		panneauCentre.getContenu().rafraichir(projetsACharger);
1088 gduche 458
		mettreFiltreAJour(projetsACharger);
928 jpm 459
	}
460
 
1088 gduche 461
	public void mettreFiltreAJour(ProjetListe projetsACharger) {
462
		panneauOuest.getFiltre().rafraichir(projetsACharger);
463
	}
464
 
465
	public void mettreFiltreAJour(List<Projet> projetsACharger) {
466
		panneauOuest.getFiltre().rafraichir(projetsACharger);
467
	}
468
 
928 jpm 469
	public void clicListeProjet(Projet projet) {
470
		panneauCentre.getContenu().rafraichir(projet);
471
	}
472
 
473
	public void clicSupprimerProjet(final List<Projet> projetListe) {
474
		if (projetListe.size() <= 0) {
475
			MessageBox.alert("Attention", "Vous devez sélectionner un projet", null);
476
		} else {
477
			String message = "Voulez-vous vraiment supprimer ces projets ?";
478
			if (projetListe.size() == 1) {
479
				message = "Voulez-vous vraiment supprimer ce projet ?";
480
			}
481
 
482
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
483
				public void handleEvent(MessageBoxEvent ce) {
484
					Dialog dialog = (Dialog) ce.getComponent();
485
				    Button btn = ce.getButtonClicked();
486
 
487
				    if (btn.getText().equals(dialog.yesText)) {
488
				    	modele.supprimerProjet(panneauCentre.getContenu(), projetListe);
489
				    }
490
				}
491
			};
492
 
493
			MessageBox.confirm("Supprimer un projet", message, listenerSuppression);
494
		}
495
 
496
	}
497
 
498
	public void clicModifierProjet(List<Projet> projetsSelectionnes) {
499
		if (projetsSelectionnes.size() == 0) {
1210 cyprien 500
			InfoLogger.display("Information", "Veuillez sélectionner un projet.");
928 jpm 501
		} else if (projetsSelectionnes.size() > 1) {
1210 cyprien 502
			InfoLogger.display("Information", "Veuillez sélectionner un seul projet à la fois.");
928 jpm 503
		} else if (projetsSelectionnes.size() == 1) {
504
			afficherFormProjet(projetsSelectionnes.get(0).getId());
505
		} else {
1210 cyprien 506
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierProjet() du Médiateur.");
928 jpm 507
		}
508
	}
509
 
510
	public void clicAjouterProjet() {
511
		afficherFormProjet(null);
512
	}
513
 
1329 cyprien 514
	/****************************************************************************************************
515
	/** selectionnerProjet(Rafraichissable vueARafraichir, String recherche, int start, int nbElements)
516
	/****************************************************************************************************
517
	 * Action :
518
	 * --------
519
	 * -	Récupère un nombre défini de projets en s'aidant du nom partiel ou complet du projet.
520
	 *
521
	 * Description des paramètres :
522
	 * ----------------------------
523
	 *  -	'vueARafraichir' référence l'objet à mettre à jour après réception des données.
524
	 *  -	'recherche' est une chaîne de caractères représentant tout ou partie du nom d'un projet.
525
	 *  		Si la chaîne est vide, alors tous les projets sont recherchés.
526
	 *  -	'start' et 'nbElements' sont les paramètres indispensables à la pagination. 'start'
527
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'nbElements' le nombre
528
	 *  		d'éléments à collecter.
529
	 *
530
	 * Préconditions :
531
	 * ---------------
532
	 *  -	'vueARafraichir' doit être non NULL et référencer un objet implémentant l'interface
533
	 *  		'Rafraichissable'
534
	 *  -	'recherche' doit être non NULL.
535
	 *  -	'start' doit être supérieur ou égal à zéro. 'nbElements' doit être supérieur à zéro.
536
	 *
537
	 *****************************************************************************************************/
1367 cyprien 538
	public void selectionnerProjet(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur) {
539
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Projet");
540
		Integer numeroSequence = null;
541
		if (sequenceur != null)	{
542
			numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
543
			vueARafraichir = sequenceur;
544
		}
545
		modele.selectionnerProjet(vueARafraichir, recherche, start, nbElements, numeroSequence);
1329 cyprien 546
	}
547
 
1367 cyprien 548
	/** Cette méthode est un "wrapper" **/
1324 gduche 549
	public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, Sequenceur sequenceur) {
1367 cyprien 550
		selectionnerProjet(vueARafraichir, projetId, null, 0, this.nbElements, sequenceur);
928 jpm 551
	}
1045 gduche 552
 
1367 cyprien 553
	public void selectionnerProjet(Rafraichissable vueARafraichir, String projetId, String nom, int start, int nbElements, Sequenceur sequenceur) {
554
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Projet");
555
		Integer numeroSequence = null;
556
		if (sequenceur != null)	{
557
			numeroSequence = sequenceur.lancerRequeteSynchrone(vueARafraichir);
558
			vueARafraichir = sequenceur;
559
		}
560
		modele.selectionnerProjet(vueARafraichir, projetId, nom, start, nbElements, numeroSequence);
1045 gduche 561
	}
928 jpm 562
 
1367 cyprien 563
	/** AJOUTER **/
928 jpm 564
	public void ajouterProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
565
		modele.ajouterProjet(vueARafraichir, projetCollecte);
566
	}
567
 
1367 cyprien 568
	/** MODIFIER **/
928 jpm 569
	public void modifierProjet(Rafraichissable vueARafraichir, Projet projetCollecte) {
570
		modele.modifierProjet(vueARafraichir, projetCollecte);
571
	}
572
 
573
	//+----------------------------------------------------------------------------------------------------------------+
574
	// SELECTION : projet
447 jp_milcent 575
	/**
576
	 * Retourne l'identifiant du projet courrant de l'application.
577
	 */
578
	public String getProjetId() {
579
		String id = null;
580
		Projet projetCourant = (Projet) Registry.get(RegistreId.PROJET_COURANT);
581
		if (projetCourant != null && !projetCourant.getId().equals("")) {
582
			id = projetCourant.getId();
583
		}
584
		return id;
585
	}
928 jpm 586
 
447 jp_milcent 587
	public void selectionnerProjetCourant(Projet projetSelectionne) {
588
		Registry.register(RegistreId.PROJET_COURANT, projetSelectionne);
1109 jpm 589
		if (panneauCentre.getContenu() instanceof AccueilVue)	{
590
			desactiverChargement();
591
		} else if (panneauCentre.getContenu() instanceof ProjetVue)	{
1324 gduche 592
			selectionnerProjet(panneauCentre.getContenu(), null, null);
646 jp_milcent 593
		} else if (panneauCentre.getContenu() instanceof StructureVue)	{
1324 gduche 594
			selectionnerStructure(panneauCentre.getContenu(), null, null);
646 jp_milcent 595
		} else if (panneauCentre.getContenu() instanceof CollectionVue)	{
1367 cyprien 596
			selectionnerCollection(panneauCentre.getContenu(), null, null, null);
928 jpm 597
		} else if (panneauCentre.getContenu() instanceof PersonneVue) {
1324 gduche 598
			selectionnerPersonne(panneauCentre.getContenu(), null, getProjetId(), null);
928 jpm 599
		} else if (panneauCentre.getContenu() instanceof PublicationVue) {
1324 gduche 600
			selectionnerPublication(panneauCentre.getContenu(), null, null);
987 jpm 601
		} else if (panneauCentre.getContenu() instanceof CommentaireVue) {
1367 cyprien 602
			selectionnerCommentaire(panneauCentre.getContenu(), null, null);
447 jp_milcent 603
		}
604
	}
605
 
928 jpm 606
 
447 jp_milcent 607
	//+----------------------------------------------------------------------------------------------------------------+
608
	//												GESTION DES STRUCTURES
609
	//+----------------------------------------------------------------------------------------------------------------+
610
 
453 jp_milcent 611
	public void afficherListeStructures(StructureListe structuresACharger) {
646 jp_milcent 612
		if (!(panneauCentre.getContenu() instanceof StructureVue))	{
626 gduche 613
			panneauCentre.removeAll();
646 jp_milcent 614
			panneauCentre.add(new StructureVue(this));
626 gduche 615
		}
646 jp_milcent 616
		panneauCentre.getContenu().rafraichir(structuresACharger);
453 jp_milcent 617
	}
618
 
580 jp_milcent 619
	public void afficherFormStructure(String structureId) {
641 jp_milcent 620
		String mode = Formulaire.MODE_AJOUTER;
580 jp_milcent 621
		if (structureId != null) {
641 jp_milcent 622
			mode = Formulaire.MODE_MODIFIER;
580 jp_milcent 623
		}
624
 
625
		panneauCentre.removeAll();
1324 gduche 626
		Sequenceur sequenceur = new Sequenceur();
627
		StructureForm structureForm = new StructureForm(this, mode, sequenceur);
580 jp_milcent 628
		panneauCentre.add(structureForm);
629
 
641 jp_milcent 630
		if (mode.equals(Formulaire.MODE_MODIFIER)) {
1324 gduche 631
			selectionnerStructure(structureForm, structureId, sequenceur);
632
			selectionnerStructureAPersonne(structureForm, structureId, StructureAPersonne.ROLE_EQUIPE, sequenceur);
580 jp_milcent 633
		}
634
 
635
		panneauCentre.layout();
636
	}
637
 
447 jp_milcent 638
	public void clicListeStructure(Structure structure) {
646 jp_milcent 639
		panneauCentre.getContenu().rafraichir(structure);
609 jp_milcent 640
		if (structure != null && structure.getPersonnel() == null) {
1324 gduche 641
			selectionnerStructureAPersonne(panneauCentre.getContenu(), structure.getId(), StructureAPersonne.ROLE_EQUIPE, null);
919 jpm 642
		}
447 jp_milcent 643
	}
644
 
645
	public void clicAjouterStructure() {
580 jp_milcent 646
		afficherFormStructure(null);
447 jp_milcent 647
	}
648
 
649
	public void clicModifierStructure(List<Structure> structureSelection) {
650
		if (structureSelection.size() == 0) {
1210 cyprien 651
			InfoLogger.display("Information", "Veuillez sélectionner une structure.");
447 jp_milcent 652
		} else if (structureSelection.size() > 1) {
1210 cyprien 653
			InfoLogger.display("Information", "Veuillez sélectionner une seule structure à la fois.");
447 jp_milcent 654
		} else if (structureSelection.size() == 1) {
609 jp_milcent 655
			afficherFormStructure(structureSelection.get(0).getId());
447 jp_milcent 656
		} else {
1210 cyprien 657
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierStructure() du Médiateur.");
447 jp_milcent 658
		}
659
	}
660
 
661
	public void clicSupprimerStructure(final Rafraichissable vue, final List<Structure> structureSelection) {
662
		if (structureSelection.size() == 0) {
1210 cyprien 663
			InfoLogger.display("Information", "Veuillez sélectionner une structure.");
447 jp_milcent 664
		} else if(structureSelection.size() > 0) {
609 jp_milcent 665
			String titre = "Supprimer des structures";
447 jp_milcent 666
			String message = "Êtes vous sur de vouloir supprimer les structures sélectionnées ?";
667
			if (structureSelection.size() == 1) {
609 jp_milcent 668
				titre = "Supprimer une structure";
447 jp_milcent 669
				message = "Êtes vous sur de vouloir supprimer la structure sélectionnée ?";
670
			}
671
 
502 gduche 672
			final Listener<MessageBoxEvent> suppressionEcouteur = new Listener<MessageBoxEvent>() {
673
				public void handleEvent(MessageBoxEvent ce) {
674
					Dialog dialog = (Dialog) ce.getComponent();
675
					Button btn = ce.getButtonClicked();
453 jp_milcent 676
 
677
					if (btn.getText().equals(dialog.yesText))	{
678
						String idStr = "" ;
679
						for(int i = 0 ; i < structureSelection.size() ; i++) {
609 jp_milcent 680
							idStr += structureSelection.get(i).getId()+",";
453 jp_milcent 681
						}
923 jpm 682
						supprimerStructure(vue, idStr);
453 jp_milcent 683
					}
684
				}
685
			};
447 jp_milcent 686
 
609 jp_milcent 687
			MessageBox.confirm(titre, message, suppressionEcouteur);
447 jp_milcent 688
		} else {
1210 cyprien 689
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerStructure() du Médiateur.");
447 jp_milcent 690
		}
691
	}
1329 cyprien 692
 
693
	/****************************************************************************************************
694
	/** selectionnerStructure(Rafraichissable vueARafraichir, String recherche, int start, int nbElements)
695
	/****************************************************************************************************
696
	 * Action :
697
	 * --------
698
	 * -	Récupère un nombre défini de structures en s'aidant du nom partiel ou complet de la structure.
699
	 *
700
	 * Description des paramètres :
701
	 * ----------------------------
702
	 *  -	'vueARafraichir' référence l'objet à mettre à jour après réception des données.
703
	 *  -	'recherche' est une chaîne de caractères représentant tout ou partie du nom d'une structure.
704
	 *  		Si la chaîne est vide, alors toutes les structures sont recherchées.
705
	 *  -	'start' et 'nbElements' sont les paramètres indispensables à la pagination. 'start'
706
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'nbElements' le nombre
707
	 *  		d'éléments à collecter.
708
	 *
709
	 * Préconditions :
710
	 * ---------------
711
	 *  -	'vueARafraichir' doit être non NULL et référencer un objet implémentant l'interface
712
	 *  		'Rafraichissable'
713
	 *  -	'recherche' doit être non NULL.
714
	 *  -	'start' doit être supérieur ou égal à zéro. 'nbElements' doit être supérieur à zéro.
715
	 *
716
	 *****************************************************************************************************/
1367 cyprien 717
	public void selectionnerStructure(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur) {
718
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Structure");
719
		Integer seqId = null;
720
		if (sequenceur!=null)	{
721
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
722
			vueARafraichir = sequenceur;
723
		}
1329 cyprien 724
		modele.selectionnerStructure(vueARafraichir, recherche, start, nbElements, seqId);
725
	}
447 jp_milcent 726
 
1324 gduche 727
	public void selectionnerStructure(Rafraichissable vueARafraichir, String structureId, Sequenceur sequenceur) {
1367 cyprien 728
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Structure");
1324 gduche 729
		Integer seqId = null;
730
		if (sequenceur!=null)	{
731
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
732
			vueARafraichir = sequenceur;
733
		}
734
		modele.selectionnerStructure(vueARafraichir, getProjetId(), structureId, null, 0, nbElements, seqId);
447 jp_milcent 735
	}
736
 
1367 cyprien 737
	public void selectionnerStructure(Rafraichissable vueARafraichir, String structureId, String projetId, String nom, int start, int nbElements, Sequenceur sequenceur)	{
738
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Structure");
739
		Integer seqId = null;
740
		if (sequenceur!=null)	{
741
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
742
			vueARafraichir = sequenceur;
743
		}
744
		modele.selectionnerStructure(vueARafraichir, getProjetId(), structureId, nom, start, nbElements, seqId);
1040 gduche 745
	}
746
 
1367 cyprien 747
	public void selectionnerStructureParProjet(Rafraichissable vueARafraichir, String projetId, Sequenceur sequenceur) {
748
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Structure");
749
		Integer seqId = null;
750
		if (sequenceur!=null)	{
751
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
752
			vueARafraichir = sequenceur;
753
		}
754
		modele.selectionnerStructure(vueARafraichir, projetId, null, null, 0, -1, seqId);
775 jpm 755
	}
756
 
1367 cyprien 757
	/** AJOUTER **/
769 jpm 758
	public void ajouterStructure(Rafraichissable vueARafraichir, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
759
		modele.ajouterStructure(vueARafraichir, structure, conservation, valorisation);
447 jp_milcent 760
	}
761
 
1367 cyprien 762
	/** MODIFIER **/
769 jpm 763
	public void modifierStructure(Rafraichissable vueARafraichir, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
764
		modele.modifierStructure(vueARafraichir, structureId, structure, conservation, valorisation);
447 jp_milcent 765
	}
453 jp_milcent 766
 
1367 cyprien 767
	/** SUPPRIMER **/
453 jp_milcent 768
	public void supprimerStructure(Rafraichissable vueARafraichir, String IdentifiantsStructureSepareParVirgule) {
769 jpm 769
		modele.supprimerStructure(vueARafraichir, IdentifiantsStructureSepareParVirgule);
453 jp_milcent 770
	}
771
 
447 jp_milcent 772
	//+----------------------------------------------------------------------------------------------------------------+
773
	// GESTION de la relation STRUCTURE A PERSONNE
1324 gduche 774
	public void selectionnerStructureAPersonne(Rafraichissable vueARafraichir, String structureId, String roleId, Sequenceur sequenceur) {
1367 cyprien 775
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  StructureAPersonne");
1324 gduche 776
		Integer seqId = null;
1367 cyprien 777
		if (sequenceur!=null)	{
1324 gduche 778
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
779
			vueARafraichir = sequenceur;
780
		}
781
		modele.selectionnerStructureAPersonne(vueARafraichir, structureId, roleId, seqId);
447 jp_milcent 782
	}
783
 
1367 cyprien 784
	/** AJOUTER **/
769 jpm 785
	public void ajouterStructureAPersonne(Rafraichissable vueARafraichir, String structureId, StructureAPersonneListe personnelAjoute) {
453 jp_milcent 786
		if (personnelAjoute != null && personnelAjoute.size() > 0) {
787
			for (Iterator<String> it = personnelAjoute.keySet().iterator(); it.hasNext();) {
769 jpm 788
				modele.ajouterStructureAPersonne(vueARafraichir, structureId, (StructureAPersonne) personnelAjoute.get(it.next()));
453 jp_milcent 789
			}
790
		}
791
	}
792
 
1367 cyprien 793
	/** MODIFIER **/
769 jpm 794
	public void modifierStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelModifie) {
447 jp_milcent 795
		if (personnelModifie != null && personnelModifie.size() > 0) {
796
			for (Iterator<String> it = personnelModifie.keySet().iterator(); it.hasNext();) {
769 jpm 797
				modele.modifierStructureAPersonne(vueARafraichir, (StructureAPersonne) personnelModifie.get(it.next()));
447 jp_milcent 798
			}
799
		}
800
	}
801
 
1367 cyprien 802
	/** SUPPRIMER **/
769 jpm 803
	public void supprimerStructureAPersonne(Rafraichissable vueARafraichir, StructureAPersonneListe personnelSupprime) {
447 jp_milcent 804
		if (personnelSupprime != null && personnelSupprime.size() > 0) {
769 jpm 805
			String idStructureAPersonneSepareParVirgule = "" ;
923 jpm 806
			Iterator<String> it = personnelSupprime.keySet().iterator();
807
			while (it.hasNext()) {
901 jpm 808
				idStructureAPersonneSepareParVirgule += personnelSupprime.get(it.next()).getId();
923 jpm 809
				idStructureAPersonneSepareParVirgule += (it.hasNext()) ? "," : "";
447 jp_milcent 810
			}
923 jpm 811
			supprimerStructureAPersonne(vueARafraichir, idStructureAPersonneSepareParVirgule);
447 jp_milcent 812
		}
813
	}
923 jpm 814
 
815
	public void supprimerStructureAPersonne(Rafraichissable vueARafraichir, String idStructureAPersonneSeparesParVirgule) {
816
		modele.supprimerStructureAPersonne(vueARafraichir, idStructureAPersonneSeparesParVirgule);
817
	}
818
 
819
	public void supprimerStructureAPersonne(final Rafraichissable vueARafraichir, final List<Structure> structuresListe) {
820
		if (structuresListe.size() != 0) {
821
			String idStructureSepareParVirgule = "" ;
822
			Iterator<Structure> it = structuresListe.iterator();
823
			while (it.hasNext()) {
824
				Structure structure = it.next();
825
				idStructureSepareParVirgule += structure.getId();
826
				idStructureSepareParVirgule += it.hasNext() ? "," : "";
827
			}
828
			supprimerStructureAPersonne(vueARafraichir, idStructureSepareParVirgule);
829
		}
830
	}
831
 
447 jp_milcent 832
	//+----------------------------------------------------------------------------------------------------------------+
833
	//												GESTION des COLLECTIONS
834
	//+----------------------------------------------------------------------------------------------------------------+
835
 
453 jp_milcent 836
	public void afficherListeCollections(CollectionListe collectionsACharger) {
646 jp_milcent 837
		if (!(panneauCentre.getContenu() instanceof CollectionVue)) {
626 gduche 838
			panneauCentre.removeAll();
646 jp_milcent 839
			panneauCentre.add(new CollectionVue(this));
840
		}
626 gduche 841
 
646 jp_milcent 842
		panneauCentre.getContenu().rafraichir(collectionsACharger);
453 jp_milcent 843
	}
844
 
641 jp_milcent 845
	public void afficherFormCollection(String collectionId) {
846
		panneauCentre.removeAll();
883 jpm 847
		CollectionForm collectionForm = new CollectionForm(this, collectionId);
641 jp_milcent 848
		panneauCentre.add(collectionForm);
849
 
850
		panneauCentre.layout();
851
	}
852
 
453 jp_milcent 853
	public void clicListeCollection(Collection collectionCliquee) {
646 jp_milcent 854
		panneauCentre.getContenu().rafraichir(collectionCliquee);
883 jpm 855
		if (collectionCliquee != null) {
1367 cyprien 856
			selectionnerCollectionAPersonne(panneauCentre.getContenu(), collectionCliquee.getId(), null, null);
857
			selectionnerCollectionAPublication(panneauCentre.getContenu(), collectionCliquee.getId(), null);
858
			selectionnerCollectionACommentaire(panneauCentre.getContenu(), collectionCliquee.getId(), null);
883 jpm 859
		}
453 jp_milcent 860
	}
861
 
447 jp_milcent 862
	public void clicAjouterCollection() {
775 jpm 863
		afficherFormCollection(null);
447 jp_milcent 864
	}
865
 
866
	public void clicModifierCollection(List<Collection> selection) {
641 jp_milcent 867
		if (selection.size() == 0) {
1210 cyprien 868
			InfoLogger.display("Information", "Veuillez sélectionner une collection.");
641 jp_milcent 869
		} else if (selection.size() > 1) {
1210 cyprien 870
			InfoLogger.display("Information", "Veuillez sélectionner une seule collection à la fois.");
641 jp_milcent 871
		} else if (selection.size() == 1) {
872
			afficherFormCollection(selection.get(0).getId());
873
		} else {
1210 cyprien 874
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierCollection() du Médiateur.");
641 jp_milcent 875
		}
447 jp_milcent 876
	}
877
 
968 jpm 878
	public void clicSupprimerCollection(CollectionListeVue collectionListeVue, final List<Collection> collectionsASupprimer) {
879
		if (collectionsASupprimer.size() <= 0) {
880
			MessageBox.alert("Attention", "Vous devez sélectionner au moins une collection", null);
881
		} else {
882
			String message = "Voulez-vous vraiment supprimer ces collections ?";
883
			if (collectionsASupprimer.size() == 1) {
884
				message = "Voulez-vous vraiment supprimer cette collection ?";
885
			}
886
 
887
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
888
				public void handleEvent(MessageBoxEvent ce) {
889
					Dialog dialog = (Dialog) ce.getComponent();
890
				    Button btn = ce.getButtonClicked();
891
 
892
				    if (btn.getText().equals(dialog.yesText)) {
893
				    	supprimerCollection(panneauCentre.getContenu(), collectionsASupprimer);
894
				    }
895
				}
896
			};
897
 
898
			MessageBox.confirm("Supprimer une collection", message, listenerSuppression);
899
		}
447 jp_milcent 900
	}
901
 
1367 cyprien 902
	/** Cette méthode est un "wrapper" **/
903
	public void selectionnerCollection(Rafraichissable vueARafraichir, String collectionId, String nom, Sequenceur sequenceur) {
904
		selectionnerCollection(vueARafraichir, collectionId, nom, 0, nbElements, sequenceur);
453 jp_milcent 905
	}
906
 
1367 cyprien 907
	public void selectionnerCollection(Rafraichissable vueARafraichir, String collectionId, String nom, int start, int nbElements, Sequenceur sequenceur)	{
908
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Collection");
909
		Integer seqId = null;
910
		if (sequenceur!=null)	{
911
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
912
			vueARafraichir = sequenceur;
913
		}
914
		modele.selectionnerCollection(vueARafraichir, getProjetId(), collectionId, nom, start, nbElements, seqId);
1041 gduche 915
	}
916
 
1367 cyprien 917
	public void selectionnerCollectionParProjet(Rafraichissable vueARafraichir, String projetId, Sequenceur sequenceur) {
918
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Collection");
919
		Integer seqId = null;
920
		if (sequenceur!=null)	{
921
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
922
			vueARafraichir = sequenceur;
923
		}
924
		modele.selectionnerCollection(vueARafraichir, projetId, null, null, 0, -1, seqId);
775 jpm 925
	}
926
 
1329 cyprien 927
	/****************************************************************************************************
928
	/** selectionnerCollection(Rafraichissable vueARafraichir, String recherche, int start, int nbElements)
929
	/****************************************************************************************************
930
	 * Action :
931
	 * --------
932
	 * -	Récupère un nombre défini de collections en s'aidant du nom partiel ou complet de la collection.
933
	 *
934
	 * Description des paramètres :
935
	 * ----------------------------
936
	 *  -	'vueARafraichir' référence l'objet à mettre à jour après réception des données.
937
	 *  -	'recherche' est une chaîne de caractères représentant tout ou partie du nom d'une collection.
938
	 *  		Si la chaîne est vide, alors toutes les collections sont recherchées.
939
	 *  -	'start' et 'nbElements' sont les paramètres indispensables à la pagination. 'start'
940
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'nbElements' le nombre
941
	 *  		d'éléments à collecter.
942
	 *
943
	 * Préconditions :
944
	 * ---------------
945
	 *  -	'vueARafraichir' doit être non NULL et référencer un objet implémentant l'interface
946
	 *  		'Rafraichissable'
947
	 *  -	'recherche' doit être non NULL.
948
	 *  -	'start' doit être supérieur ou égal à zéro. 'nbElements' doit être supérieur à zéro.
949
	 *
950
	 *****************************************************************************************************/
1367 cyprien 951
	public void selectionnerCollection(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur)	{
952
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Collection");
953
		Integer seqId = null;
954
		if (sequenceur!=null)	{
955
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
956
			vueARafraichir = sequenceur;
957
		}
958
		modele.selectionnerCollection(vueARafraichir, recherche, start, nbElements, seqId);
1426 cyprien 959
	}
960
	/*
961
	public void selectionnerCollection(Rafraichissable vueARafraichir, Integer id, int start, int nbElements, Sequenceur sequenceur)	{
962
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Collection");
963
		Integer seqId = null;
964
		if (sequenceur!=null)	{
965
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
966
			vueARafraichir = sequenceur;
967
		}
968
		modele.selectionnerCollection(vueARafraichir, id, start, nbElements, seqId);
969
	}	*/
1329 cyprien 970
 
1367 cyprien 971
	/** AJOUTER **/
453 jp_milcent 972
	public void ajouterCollection(Rafraichissable vueARafraichir, Collection collection) {
968 jpm 973
		modele.ajouterCollection(vueARafraichir, collection);
453 jp_milcent 974
	}
975
 
1367 cyprien 976
	/** MODIFIER **/
453 jp_milcent 977
	public void modifierCollection(Rafraichissable vueARafraichir, Collection collection) {
872 jpm 978
		modele.modifierCollection(vueARafraichir, collection);
453 jp_milcent 979
	}
980
 
1367 cyprien 981
	/** SUPPRIMER **/
968 jpm 982
	public void supprimerCollection(Rafraichissable vueARafraichir, List<Collection> collectionsListe) {
983
		if (collectionsListe != null && collectionsListe.size() > 0) {
984
			String idCollectionSeparesParVirgule = "" ;
985
			Iterator<Collection> it = collectionsListe.iterator();
986
			while (it.hasNext()) {
987
				idCollectionSeparesParVirgule += it.next().getId();
988
				if (it.hasNext()) {
989
					idCollectionSeparesParVirgule += ",";
990
				}
991
			}
992
			modele.supprimerCollection(vueARafraichir, idCollectionSeparesParVirgule);
993
			modele.supprimerCollectionAPersonne(vueARafraichir, idCollectionSeparesParVirgule);
994
			modele.supprimerCollectionAPublication(vueARafraichir, idCollectionSeparesParVirgule);
995
			//modele.supprimerCollectionACommentaire(vueARafraichir, idCollectionSeparesParVirgule);
996
		}
997
 
453 jp_milcent 998
	}
999
 
447 jp_milcent 1000
	//+----------------------------------------------------------------------------------------------------------------+
875 jpm 1001
	// GESTION de la relation COLLECTION A PERSONNE
1002
 
1367 cyprien 1003
	public void selectionnerCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, String roleId, Sequenceur sequenceur) {
1004
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  CollectionAPersonne");
1005
		Integer seqId = null;
1006
		if (sequenceur!=null)	{
1007
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1008
			vueARafraichir = sequenceur;
1009
		}
1010
		modele.selectionnerCollectionAPersonne(vueARafraichir, collectionId, roleId, seqId);
875 jpm 1011
	}
1012
 
1367 cyprien 1013
	/** AJOUTER **/
875 jpm 1014
	public void ajouterCollectionAPersonne(Rafraichissable vueARafraichir, String collectionId, CollectionAPersonneListe personnesAjoutees) {
1015
		if (personnesAjoutees != null && personnesAjoutees.size() > 0) {
1016
			for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {
1017
				modele.ajouterCollectionAPersonne(vueARafraichir, collectionId, (CollectionAPersonne) personnesAjoutees.get(it.next()));
1018
			}
1019
		}
1020
	}
1021
 
1367 cyprien 1022
	/** MODIFIER **/
875 jpm 1023
	public void modifierCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesModifiees) {
1024
		if (personnesModifiees != null && personnesModifiees.size() > 0) {
1025
			for (Iterator<String> it = personnesModifiees.keySet().iterator(); it.hasNext();) {
1026
				modele.modifierCollectionAPersonne(vueARafraichir, (CollectionAPersonne) personnesModifiees.get(it.next()));
1027
			}
1028
		}
1029
	}
1030
 
1367 cyprien 1031
	/** SUPPRIMER **/
875 jpm 1032
	public void supprimerCollectionAPersonne(Rafraichissable vueARafraichir, CollectionAPersonneListe personnesSupprimees) {
1033
		if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
1034
			String idCollectionAPersonneSeparesParVirgule = "" ;
1035
			for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
901 jpm 1036
				idCollectionAPersonneSeparesParVirgule += personnesSupprimees.get(it.next()).getId();
1037
				if (it.hasNext()) {
1038
					idCollectionAPersonneSeparesParVirgule += ",";
1039
				}
875 jpm 1040
			}
1041
			modele.supprimerCollectionAPersonne(vueARafraichir, idCollectionAPersonneSeparesParVirgule);
1042
		}
1043
	}
1044
 
1045
	//+----------------------------------------------------------------------------------------------------------------+
1046
	// GESTION de la relation COLLECTION A PUBLICATION
1047
 
1367 cyprien 1048
	public void selectionnerCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, Sequenceur sequenceur) {
1049
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  CollectionAPublication");
1050
		Integer seqId = null;
1051
		if (sequenceur!=null)	{
1052
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1053
			vueARafraichir = sequenceur;
1054
		}
1055
		modele.selectionnerCollectionAPublication(vueARafraichir, collectionId, seqId);
883 jpm 1056
	}
1057
 
1058
	public void ajouterCollectionAPublication(Rafraichissable vueARafraichir, String collectionId, CollectionAPublicationListe publicationsAjoutees) {
1059
		if (publicationsAjoutees != null && publicationsAjoutees.size() > 0) {
1060
			for (Iterator<String> it = publicationsAjoutees.keySet().iterator(); it.hasNext();) {
1061
				modele.ajouterCollectionAPublication(vueARafraichir, collectionId, (CollectionAPublication) publicationsAjoutees.get(it.next()));
1062
			}
1063
		}
1064
	}
1065
 
1066
	public void modifierCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsModifiees) {
1067
		if (publicationsModifiees != null && publicationsModifiees.size() > 0) {
1068
			for (Iterator<String> it = publicationsModifiees.keySet().iterator(); it.hasNext();) {
1069
				modele.modifierCollectionAPublication(vueARafraichir, (CollectionAPublication) publicationsModifiees.get(it.next()));
1070
			}
1071
		}
1072
	}
1073
 
907 jpm 1074
	public void supprimerCollectionAPublication(Rafraichissable vueARafraichir, CollectionAPublicationListe publicationsSupprimees) {
883 jpm 1075
		if (publicationsSupprimees != null && publicationsSupprimees.size() > 0) {
1076
			String idCollectionAPublicationSeparesParVirgule = "" ;
1077
			for (Iterator<String> it = publicationsSupprimees.keySet().iterator(); it.hasNext();) {
901 jpm 1078
				idCollectionAPublicationSeparesParVirgule += publicationsSupprimees.get(it.next()).getId();
1079
				if (it.hasNext()) {
1080
					idCollectionAPublicationSeparesParVirgule += ",";
1081
				}
883 jpm 1082
			}
1083
			modele.supprimerCollectionAPublication(vueARafraichir, idCollectionAPublicationSeparesParVirgule);
1084
		}
1085
	}
941 jpm 1086
 
875 jpm 1087
	//+----------------------------------------------------------------------------------------------------------------+
1088
	// GESTION de la relation COLLECTION A COMMENTAIRE
1089
 
1367 cyprien 1090
	public void selectionnerCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, Sequenceur sequenceur) {
1091
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  CollectionACommentaire");
1092
		Integer seqId = null;
1093
		if (sequenceur!=null)	{
1094
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1095
			vueARafraichir = sequenceur;
1096
		}
1097
		modele.selectionnerCollectionACommentaire(vueARafraichir, collectionId, seqId);
989 jpm 1098
	}
1099
 
1367 cyprien 1100
	/** AJOUTER **/
997 jpm 1101
	public void ajouterCollectionACommentaire(Rafraichissable vueARafraichir, String collectionId, CollectionACommentaireListe commentairesAjoutees) {
989 jpm 1102
		if (commentairesAjoutees != null && commentairesAjoutees.size() > 0) {
1103
			for (Iterator<String> it = commentairesAjoutees.keySet().iterator(); it.hasNext();) {
997 jpm 1104
				modele.ajouterCollectionACommentaire(vueARafraichir, collectionId, (CollectionACommentaire) commentairesAjoutees.get(it.next()));
989 jpm 1105
			}
1106
		}
1107
	}
1108
 
1367 cyprien 1109
	/** MODIFIER **/
989 jpm 1110
	public void modifierCollectionACommentaire(Rafraichissable vueARafraichir, CollectionACommentaireListe commentairesModifiees) {
1111
		if (commentairesModifiees != null && commentairesModifiees.size() > 0) {
1112
			for (Iterator<String> it = commentairesModifiees.keySet().iterator(); it.hasNext();) {
1113
				modele.modifierCollectionACommentaire(vueARafraichir, (CollectionACommentaire) commentairesModifiees.get(it.next()));
1114
			}
1115
		}
1116
	}
1117
 
1367 cyprien 1118
	/** SUPPRIMER **/
989 jpm 1119
	public void supprimerCollectionACommentaire(Rafraichissable vueARafraichir, CollectionACommentaireListe commentairesSupprimees) {
1120
		if (commentairesSupprimees != null && commentairesSupprimees.size() > 0) {
1121
			String idCollectionACommentaireSeparesParVirgule = "" ;
1122
			for (Iterator<String> it = commentairesSupprimees.keySet().iterator(); it.hasNext();) {
1123
				idCollectionACommentaireSeparesParVirgule += commentairesSupprimees.get(it.next()).getId();
1124
				if (it.hasNext()) {
1125
					idCollectionACommentaireSeparesParVirgule += ",";
1126
				}
1127
			}
1128
			modele.supprimerCollectionACommentaire(vueARafraichir, idCollectionACommentaireSeparesParVirgule, CollectionACommentaireAsyncDao.SUPPRESSION_PAR_COLLECTION);
1129
		}
1130
	}
875 jpm 1131
	//+----------------------------------------------------------------------------------------------------------------+
156 jp_milcent 1132
	//												GESTION DES PERSONNES
1133
	//+----------------------------------------------------------------------------------------------------------------+
1134
 
278 jp_milcent 1135
	public void afficherListePersonnes(PersonneListe personnesACharger)	{
646 jp_milcent 1136
		if (!(panneauCentre.getContenu() instanceof PersonneVue))	{
626 gduche 1137
			panneauCentre.removeAll();
646 jp_milcent 1138
			panneauCentre.add(new PersonneVue(this));
673 aurelien 1139
			panneauCentre.setId(ComposantId.PANNEAU_PERSONNE_LISTES);
626 gduche 1140
		}
599 gduche 1141
 
646 jp_milcent 1142
		panneauCentre.getContenu().rafraichir(personnesACharger);
156 jp_milcent 1143
	}
918 jpm 1144
 
1145
	public void afficherFormPersonne(String personneId)	{
1146
		panneauCentre.removeAll();
1147
		PersonneForm personneForm = new PersonneForm(this, personneId);
1148
		panneauCentre.add(personneForm);
1149
 
1150
		panneauCentre.layout();
1151
	}
156 jp_milcent 1152
 
918 jpm 1153
	public void clicListePersonne(Personne personne)	{
1154
		panneauCentre.getContenu().rafraichir(personne);
1155
	}
1156
 
128 gduche 1157
	public void clicAjouterPersonne()	{
918 jpm 1158
		afficherFormPersonne(null);
128 gduche 1159
	}
1160
 
918 jpm 1161
	public void clicModifierPersonne(List<Personne> selection)	{
1162
		if (selection.size() == 0) {
1210 cyprien 1163
			InfoLogger.display("Information", "Veuillez sélectionner une personne.");
918 jpm 1164
		} else if (selection.size() > 1) {
1210 cyprien 1165
			InfoLogger.display("Information", "Veuillez sélectionner une seule personne à la fois.");
918 jpm 1166
		} else if (selection.size() == 1) {
1167
			afficherFormPersonne(selection.get(0).getId());
1168
		} else {
1210 cyprien 1169
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierPersonne() du Médiateur.");
918 jpm 1170
		}
841 gduche 1171
	}
1172
 
285 gduche 1173
 
919 jpm 1174
	public void clicSupprimerPersonne(final Rafraichissable vue, final List<Personne> personneSelection) {
663 gduche 1175
		//Empecher suppression utilisateur
1176
		for (int i=0; i < personneSelection.size(); i++)	{
1177
			Personne courante = personneSelection.get(i);
1178
			if (courante.getId().equals(getUtilisateurId()))	{
1210 cyprien 1179
				InfoLogger.display("Information", "Vous ne pouvez pas supprimer votre compte");
663 gduche 1180
				personneSelection.remove(courante);
1181
			}
1182
		}
1183
 
245 jp_milcent 1184
		if (personneSelection.size() == 0) {
1210 cyprien 1185
			InfoLogger.display("Information", "Veuillez sélectionner une personne.");
245 jp_milcent 1186
		} else if(personneSelection.size() > 0) {
1187
			String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?";
1188
			if (personneSelection.size() == 1) {
1189
				message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?";
1190
			}
315 gduche 1191
 
502 gduche 1192
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
1193
				public void handleEvent(MessageBoxEvent ce) {
1194
					Dialog dialog = (Dialog) ce.getComponent();
1195
					Button btn = ce.getButtonClicked();
327 jp_milcent 1196
 
1197
					if (btn.getText().equals(dialog.yesText)) {
772 jpm 1198
						String idPersonneSepareParVirgule = "" ;
347 gduche 1199
						Iterator<Personne> itPersonne = personneSelection.iterator();
1200
						while (itPersonne.hasNext()) {
1201
							Personne personneCourante = itPersonne.next();
772 jpm 1202
							idPersonneSepareParVirgule += personneCourante.getId();
1203
							idPersonneSepareParVirgule +=",";
327 jp_milcent 1204
						}
772 jpm 1205
						modele.supprimerPersonne(vue, idPersonneSepareParVirgule);
327 jp_milcent 1206
					}
1207
				}
1208
			};
453 jp_milcent 1209
 
315 gduche 1210
			MessageBox.confirm("Supprimer une personne", message, listenerSuppression);
245 jp_milcent 1211
		} else {
1210 cyprien 1212
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur.");
245 jp_milcent 1213
		}
1214
	}
277 jp_milcent 1215
 
1329 cyprien 1216
	/****************************************************************************************************
1217
	/** selectionnerPersonne(Rafraichissable vueARafraichir, String recherche, int start, int nbElements)
1218
	/****************************************************************************************************
1219
	 * Action :
1220
	 * --------
1221
	 * -	Récupère un nombre défini de personnes en s'aidant du nom partiel ou complet de la personne.
1222
	 *
1223
	 * Description des paramètres :
1224
	 * ----------------------------
1225
	 *  -	'vueARafraichir' référence l'objet à mettre à jour après réception des données.
1226
	 *  -	'recherche' est une chaîne de caractères représentant tout ou partie du nom d'une personne.
1227
	 *  		Si la chaîne est vide, alors toutes les personnes sont recherchées.
1228
	 *  -	'start' et 'nbElements' sont les paramètres indispensables à la pagination. 'start'
1229
	 *  		est le paramètre qui décrit le numéro du tuple de départ et 'nbElements' le nombre
1230
	 *  		d'éléments à collecter.
1231
	 *
1232
	 * Préconditions :
1233
	 * ---------------
1234
	 *  -	'vueARafraichir' doit être non NULL et référencer un objet implémentant l'interface
1235
	 *  		'Rafraichissable'
1236
	 *  -	'recherche' doit être non NULL.
1237
	 *  -	'start' doit être supérieur ou égal à zéro. 'nbElements' doit être supérieur à zéro.
1238
	 *
1239
	 *****************************************************************************************************/
1367 cyprien 1240
	public void selectionnerPersonne(Rafraichissable vueARafraichir, String recherche, int start, int nbElements, Sequenceur sequenceur) {
1241
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Personne");
1242
		Integer seqId = null;
1243
		if (sequenceur!=null)	{
1244
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1245
			vueARafraichir = sequenceur;
1246
		}
1247
		modele.selectionnerPersonne(vueARafraichir, recherche, start, nbElements, seqId);
1329 cyprien 1248
	}
1249
 
1367 cyprien 1250
	/** Cette méthode est un "wrapper" **/
1324 gduche 1251
	public void selectionnerPersonne(Rafraichissable vueARafraichir, Personne personne, String projetId, Sequenceur sequenceur)	{
1367 cyprien 1252
		selectionnerPersonne(vueARafraichir, personne, projetId, 0, nbElements, sequenceur);
775 jpm 1253
	}
1254
 
1324 gduche 1255
	public void selectionnerPersonne(Rafraichissable vueARafraichir, Personne personne, String projetId, int start, int nbElements, Sequenceur sequenceur)	{
1367 cyprien 1256
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Personne");
1324 gduche 1257
		Integer seqId = null;
1258
		if (sequenceur!=null)	{
1259
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1260
			vueARafraichir = sequenceur;
1261
		}
1262
		String personneId = null;
1263
		String personneNom = null;
1264
		if (personne != null)	{
1265
			personneId = personne.getId();
1266
			personneNom = personne.getNom();
1267
		}
1268
		modele.selectionnerPersonne(vueARafraichir, personneId, projetId, personneNom, start, nbElements, seqId);
1269
	}
1270
 
1426 cyprien 1271
	public void selectionnerPersonne(Rafraichissable vueARafraichir, String idPersonne, Sequenceur sequenceur)	{
1272
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Personne");
1273
		Integer seqId = null;
1274
		if (sequenceur!=null)	{
1275
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1276
			vueARafraichir = sequenceur;
1277
		}
1278
		modele.selectionnerPersonne(vueARafraichir, idPersonne, null, null, -1, nbElements, seqId);
1279
	}
1280
 
1367 cyprien 1281
	public void selectionnerPersonneParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet, Sequenceur sequenceur) {
1282
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Personne");
1283
		Integer seqId = null;
1284
		if (sequenceur!=null)	{
1285
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1286
			vueARafraichir = sequenceur;
775 jpm 1287
		}
1367 cyprien 1288
		modele.selectionnerPersonne(vueARafraichir, null, projetId, nomComplet, 0, -1, seqId);
775 jpm 1289
	}
1290
 
1367 cyprien 1291
	public void selectionnerPersonneParProjet(Rafraichissable vueARafraichir, String projetId, Sequenceur sequenceur) {
1292
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Personne");
1293
		Integer seqId = null;
1294
		if (sequenceur!=null)	{
1295
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1296
			vueARafraichir = sequenceur;
1297
		}
1298
		modele.selectionnerPersonne(vueARafraichir, null, projetId, null, 0, -1, seqId);
277 jp_milcent 1299
	}
245 jp_milcent 1300
 
1367 cyprien 1301
	/** ENREGISTRER **/
389 gduche 1302
	public void enregistrerPersonne(Rafraichissable vue, Personne personne){
774 jpm 1303
		if (personne.getId() != null && !personne.getId().trim().equals("")) {
429 gduche 1304
			modele.modifierPersonne(vue, personne);
1305
		}	else {
1324 gduche 1306
			modele.ajouterPersonne(vue, personne);
429 gduche 1307
		}
389 gduche 1308
	}
1309
 
156 jp_milcent 1310
	//+----------------------------------------------------------------------------------------------------------------+
1311
	//												GESTION DES PUBLICATIONS
1312
	//+----------------------------------------------------------------------------------------------------------------+
1313
 
107 aurelien 1314
	public void afficherListePublication(PublicationListe nouvelleDonnees) {
673 aurelien 1315
		if (!(panneauCentre.getContenu() instanceof PublicationVue))	{
626 gduche 1316
			panneauCentre.removeAll();
918 jpm 1317
			panneauCentre.add(new PublicationVue(this));
626 gduche 1318
		}
1319
 
646 jp_milcent 1320
		panneauCentre.getContenu().rafraichir(nouvelleDonnees);
107 aurelien 1321
	}
715 aurelien 1322
 
775 jpm 1323
	public void afficherFormPublication(String publicationId) {
1324
		panneauCentre.removeAll();
781 jpm 1325
		PublicationForm publicationForm = new PublicationForm(this, publicationId);
775 jpm 1326
		panneauCentre.add(publicationForm);
1327
 
1328
		panneauCentre.layout();
715 aurelien 1329
	}
775 jpm 1330
 
107 aurelien 1331
	public void clicListePublication(Publication publication) {
775 jpm 1332
		if (publication != null) {
675 aurelien 1333
			panneauCentre.getContenu().rafraichir(publication);
1334
		}
107 aurelien 1335
	}
1336
 
1337
	public void clicAjouterPublication() {
775 jpm 1338
		afficherFormPublication(null);
107 aurelien 1339
	}
156 jp_milcent 1340
 
775 jpm 1341
	public void clicModifierPublication(List<Publication> selection) {
1342
		if (selection.size() == 0) {
1210 cyprien 1343
			InfoLogger.display("Information", "Veuillez sélectionner une publication.");
775 jpm 1344
		} else if (selection.size() > 1) {
1210 cyprien 1345
			InfoLogger.display("Information", "Veuillez sélectionner une seule publication à la fois.");
775 jpm 1346
		} else if (selection.size() == 1) {
1347
			afficherFormPublication(selection.get(0).getId());
379 jp_milcent 1348
		} else {
1210 cyprien 1349
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierPublication() du Médiateur.");
245 jp_milcent 1350
		}
1351
	}
1352
 
315 gduche 1353
	public void clicSupprimerPublication(final List<Publication> publicationListe) {
453 jp_milcent 1354
		if (publicationListe.size() <= 0) {
315 gduche 1355
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null);
379 jp_milcent 1356
		} else {
673 aurelien 1357
			String message = "Voulez-vous vraiment supprimer ces publications ?";
775 jpm 1358
			if (publicationListe.size() == 1) {
245 jp_milcent 1359
				message = "Voulez-vous vraiment supprimer cette publication ?";
1360
			}
315 gduche 1361
 
502 gduche 1362
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
1363
				public void handleEvent(MessageBoxEvent ce) {
1364
					Dialog dialog = (Dialog) ce.getComponent();
1365
				    Button btn = ce.getButtonClicked();
315 gduche 1366
 
379 jp_milcent 1367
				    if (btn.getText().equals(dialog.yesText)) {
919 jpm 1368
				    	supprimerPublication(panneauCentre.getContenu(), publicationListe);
315 gduche 1369
				    }
1370
				}
1371
			};
1372
 
1373
			MessageBox.confirm("Supprimer une publication", message, listenerSuppression);
245 jp_milcent 1374
		}
1375
	}
709 jp_milcent 1376
 
1367 cyprien 1377
	/** Cette méthode est un "wrapper" */
1324 gduche 1378
	public void selectionnerPublication(Rafraichissable vueARafraichir, String publicationId, Sequenceur sequenceur) {
1367 cyprien 1379
		selectionnerPublication(vueARafraichir, getProjetId(), publicationId, null, 0, nbElements, sequenceur);
709 jp_milcent 1380
	}
1381
 
1367 cyprien 1382
	/** Cette méthode est un "wrapper" */
709 jp_milcent 1383
	public void selectionnerPublicationParNomComplet(Rafraichissable vueARafraichir, String projetId, String nomComplet) {
1324 gduche 1384
		selectionnerPublication(vueARafraichir, projetId, null, nomComplet, 0, nbElements, null);
709 jp_milcent 1385
	}
1386
 
1367 cyprien 1387
	public void selectionnerPublication(Rafraichissable vueARafraichir, String projetId, String publicationId, String nomComplet, int pageCourante, int nbElements, Sequenceur sequenceur) {
1388
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Publication");
1389
		Integer seqId = null;
1390
		if (sequenceur!=null)	{
1391
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1392
			vueARafraichir = sequenceur;
1393
		}
1324 gduche 1394
		modele.selectionnerPublication(vueARafraichir, publicationId, projetId, nomComplet, nbElements, pageCourante, seqId);
1046 gduche 1395
	}
1367 cyprien 1396
 
1397
	/** AJOUTER **/
1324 gduche 1398
	public void ajouterPublication(Rafraichissable vueARafraichir, Publication publication, Integer seqId) {
1399
		modele.ajouterPublication(vueARafraichir, publication, seqId);
245 jp_milcent 1400
	}
1401
 
1367 cyprien 1402
	/** MODIFIER **/
1324 gduche 1403
	public void modifierPublication(Rafraichissable vueARafraichir, Publication publication, Integer seqId) {
1404
		modele.modifierPublication(vueARafraichir, publication, seqId);
245 jp_milcent 1405
	}
919 jpm 1406
 
1367 cyprien 1407
	/** SUPPRIMER **/
1324 gduche 1408
	public void supprimerPublication(Rafraichissable vueARafraichir, List<Publication> publicationsListe) {
919 jpm 1409
		if (publicationsListe != null && publicationsListe.size() > 0) {
1410
			String idPublicationSeparesParVirgule = "" ;
1411
			Iterator<Publication> it = publicationsListe.iterator();
1412
			while (it.hasNext()) {
1413
				idPublicationSeparesParVirgule += it.next().getId();
1414
				if (it.hasNext()) {
1415
					idPublicationSeparesParVirgule += ",";
1416
				}
1417
			}
1418
			modele.supprimerPublication(vueARafraichir, idPublicationSeparesParVirgule);
1419
			modele.supprimerPublicationAPersonne(vueARafraichir, idPublicationSeparesParVirgule);
1420
		}
1421
	}
245 jp_milcent 1422
 
453 jp_milcent 1423
	public void clicObtenirListeEditeurs(Rafraichissable vueARafraichir) {
1367 cyprien 1424
		selectionnerStructureParProjet(vueARafraichir, null, null);
245 jp_milcent 1425
	}
1426
 
453 jp_milcent 1427
	public void clicObtenirListeAuteurs(Rafraichissable vueARafraichir) {
1367 cyprien 1428
		selectionnerPersonneParProjet(vueARafraichir, null, null);
245 jp_milcent 1429
	}
1430
 
156 jp_milcent 1431
	//+----------------------------------------------------------------------------------------------------------------+
822 jpm 1432
	// GESTION de la relation PUBLICATION A PERSONNE
1433
 
1324 gduche 1434
	public void selectionnerPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, String roleId, Sequenceur sequenceur) {
1367 cyprien 1435
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  PublicationAPersonne");
1324 gduche 1436
		Integer seqId = null;
1437
		if (sequenceur != null)	{
1438
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1439
			vueARafraichir = sequenceur;
1440
		}
1441
		modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleId, seqId);
822 jpm 1442
	}
1443
 
1367 cyprien 1444
	public void selectionnerPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, String personnesId, List<Valeur> roleId, Sequenceur sequenceur) {
1445
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  PublicationAPersonne");
1446
		Integer seqId = null;
1447
		if (sequenceur != null)	{
1448
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1449
			vueARafraichir = sequenceur;
1450
		}
1451
 
1014 gduche 1452
		String roleIds = "";
1453
		Iterator<Valeur> itRole = roleId.iterator();
1454
		while (itRole.hasNext())	{
1455
			roleIds+= itRole.next().getId();
1456
			if (itRole.hasNext())	{
1457
				roleIds+=",";
1458
			}
1459
		}
1367 cyprien 1460
		modele.selectionPublicationAPersonne(vueARafraichir, publicationId, personnesId, roleIds, seqId);
1014 gduche 1461
	}
1426 cyprien 1462
 
1367 cyprien 1463
	/** AJOUTER **/
1426 cyprien 1464
	// Lier une publication à plusieurs personnes
1324 gduche 1465
	public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, PublicationAPersonneListe personnesAjoutees, String roleId, Integer seqId) {
901 jpm 1466
		if (personnesAjoutees != null && personnesAjoutees.size() > 0) {
1467
			String idPublicationAPersonneSepareParVirgule = "" ;
1426 cyprien 1468
			String ordreAuteursSepareParVirgule = "";
901 jpm 1469
			for (Iterator<String> it = personnesAjoutees.keySet().iterator(); it.hasNext();) {
1426 cyprien 1470
				PublicationAPersonne publi = personnesAjoutees.get(it.next());
1471
				idPublicationAPersonneSepareParVirgule += publi.getIdPersonne();
1472
				ordreAuteursSepareParVirgule += publi.getOrdreAuteurs();
901 jpm 1473
				if (it.hasNext()) {
1474
					idPublicationAPersonneSepareParVirgule += ",";
1426 cyprien 1475
					ordreAuteursSepareParVirgule += ",";
901 jpm 1476
				}
1477
			}
1426 cyprien 1478
			modele.ajouterPublicationAPersonne(vueARafraichir, publicationId, idPublicationAPersonneSepareParVirgule, ordreAuteursSepareParVirgule, roleId, seqId);
1324 gduche 1479
		}
822 jpm 1480
	}
901 jpm 1481
 
1426 cyprien 1482
	/** AJOUTER **/
1483
	// Lier plusieurs publication à une personne
1484
	public void ajouterPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe listePublications, String personneId, String roleId, Integer seqId) {
1485
		if (listePublications!=null && listePublications.size()>0)	{
1486
			String idsPubli = "";
1487
			String rolesIds = "";
1488
			String ordreAuteurs = "";
1489
			for (Iterator<String> it = listePublications.keySet().iterator(); it.hasNext();) {
1490
				PublicationAPersonne publiAPersonne = listePublications.get(it.next());
1491
				idsPubli += publiAPersonne.getId();
1492
				rolesIds += publiAPersonne.getRole();
1493
				ordreAuteurs += publiAPersonne.getOrdreAuteurs();
1494
				if (it.hasNext()) {
1495
					idsPubli += ",";
1496
					rolesIds += ",";
1497
					ordreAuteurs += ",";
1498
				}
1499
			}
1500
			modele.ajouterPublicationAPersonne(vueARafraichir, idsPubli, personneId, ordreAuteurs, rolesIds, seqId);
1501
		}
1502
	}
1503
 
1504
	/** MODIFIER **/
1505
	public void modifierPublicationAPersonne(Rafraichissable vueARafraichir, String publicationId, PublicationAPersonneListe personnesModifiees, String roleId, Integer seqId) {
1506
		if (personnesModifiees != null && personnesModifiees.size() > 0) {
1507
			String idPublicationAPersonneSepareParVirgule = "" ;
1508
			String ordreAuteursSepareParVirgule = "";
1509
			for (Iterator<String> it = personnesModifiees.keySet().iterator(); it.hasNext();) {
1510
				PublicationAPersonne publi = personnesModifiees.get(it.next());
1511
				idPublicationAPersonneSepareParVirgule += publi.getIdPersonne();
1512
				ordreAuteursSepareParVirgule += publi.getOrdreAuteurs();
1513
				if (it.hasNext()) {
1514
					idPublicationAPersonneSepareParVirgule += ",";
1515
					ordreAuteursSepareParVirgule += ",";
1516
				}
1517
			}
1518
			modele.modifierPublicationAPersonne(vueARafraichir, publicationId, idPublicationAPersonneSepareParVirgule, ordreAuteursSepareParVirgule, roleId, seqId);
1519
		}
1520
	}
1367 cyprien 1521
 
1522
	/** SUPPRIMER **/
1324 gduche 1523
	public void supprimerPublicationAPersonne(Rafraichissable vueARafraichir, PublicationAPersonneListe personnesSupprimees) {
1426 cyprien 1524
 
901 jpm 1525
		if (personnesSupprimees != null && personnesSupprimees.size() > 0) {
1526
			String idPublicationAPersonneSepareParVirgule = "" ;
1527
			for (Iterator<String> it = personnesSupprimees.keySet().iterator(); it.hasNext();) {
1528
				idPublicationAPersonneSepareParVirgule += personnesSupprimees.get(it.next()).getId();
1529
				if (it.hasNext()) {
1530
					idPublicationAPersonneSepareParVirgule += ",";
1531
				}
1532
			}
1426 cyprien 1533
 
968 jpm 1534
			modele.supprimerPublicationAPersonne(vueARafraichir, idPublicationAPersonneSepareParVirgule);
1324 gduche 1535
		}
822 jpm 1536
	}
1537
 
1538
	//+----------------------------------------------------------------------------------------------------------------+
985 jpm 1539
	//												GESTION DES COMMENTAIRES
1540
	//+----------------------------------------------------------------------------------------------------------------+
1541
 
1542
	public void afficherListeCommentaire(CommentaireListe nouvelleDonnees) {
1543
		if (!(panneauCentre.getContenu() instanceof CommentaireVue)) {
1544
			panneauCentre.removeAll();
1545
			panneauCentre.add(new CommentaireVue(this));
1546
		}
1547
 
1548
		panneauCentre.getContenu().rafraichir(nouvelleDonnees);
1549
	}
1550
 
1551
	public void afficherFormCommentaire(String commentaireId) {
1552
		panneauCentre.removeAll();
989 jpm 1553
		CommentaireForm commentaireForm = new CommentaireForm(this, commentaireId);
985 jpm 1554
		panneauCentre.add(commentaireForm);
1555
 
1556
		panneauCentre.layout();
1557
	}
1558
 
1559
	public void clicListeCommentaire(Commentaire commentaire) {
1560
		if (commentaire != null) {
1561
			panneauCentre.getContenu().rafraichir(commentaire);
1562
		}
1563
	}
1564
 
1565
	public void clicAjouterCommentaire() {
1566
		afficherFormCommentaire(null);
1567
	}
1568
 
1569
	public void clicModifierCommentaire(List<Commentaire> selection) {
1570
		if (selection.size() == 0) {
1210 cyprien 1571
			InfoLogger.display("Information", "Veuillez sélectionner un commentaire.");
985 jpm 1572
		} else if (selection.size() > 1) {
1210 cyprien 1573
			InfoLogger.display("Information", "Veuillez sélectionner un seul commentaire à la fois.");
985 jpm 1574
		} else if (selection.size() == 1) {
1575
			afficherFormCommentaire(selection.get(0).getId());
1576
		} else {
1210 cyprien 1577
			InfoLogger.display("Erreur", "Une erreur est survenue dans la méthode clicModifierCommentaire() du Médiateur.");
985 jpm 1578
		}
1579
	}
1580
 
1581
	public void clicSupprimerCommentaire(final List<Commentaire> commentaireListe) {
1582
		if (commentaireListe.size() <= 0) {
1583
			MessageBox.alert("Attention", "Vous devez sélectionner un commentaire", null);
1584
		} else {
1585
			String message = "Voulez-vous vraiment supprimer ces commentaires ?";
1586
			if (commentaireListe.size() == 1) {
1587
				message = "Voulez-vous vraiment supprimer ce commentaire ?";
1588
			}
1589
 
1590
			final Listener<MessageBoxEvent> listenerSuppression = new Listener<MessageBoxEvent>() {
1591
				public void handleEvent(MessageBoxEvent ce) {
1592
					Dialog dialog = (Dialog) ce.getComponent();
1593
				    Button btn = ce.getButtonClicked();
1594
 
1595
				    if (btn.getText().equals(dialog.yesText)) {
1596
				    	supprimerCommentaire(panneauCentre.getContenu(), commentaireListe);
1597
				    }
1598
				}
1599
			};
1600
 
1601
			MessageBox.confirm("Supprimer un commentaire", message, listenerSuppression);
1602
		}
1603
	}
1604
 
1367 cyprien 1605
	/** Cette méthode est un wrapper **/
1606
	public void selectionnerCommentaire(Rafraichissable vueARafraichir, String commentaireId, Sequenceur sequenceur) {
1607
		selectionnerCommentaire(vueARafraichir, commentaireId, null, 0, nbElements, sequenceur);
985 jpm 1608
	}
1367 cyprien 1609
 
1610
	public void selectionnerCommentaire(Rafraichissable vueARafraichir, String commentaireId, String titre, int pageCourante, int nbElements, Sequenceur sequenceur) {
1611
		if (Mediateur.DEBUG) System.out.println("MEDIATEUR - selectionner  Commentaire");
1612
		Integer seqId = null;
1613
		if (sequenceur != null)	{
1614
			seqId = sequenceur.lancerRequeteSynchrone(vueARafraichir);
1615
			vueARafraichir = sequenceur;
1616
		}
1617
		modele.selectionnerCommentaire(vueARafraichir, commentaireId, getProjetId(), titre, pageCourante, nbElements, seqId);
1048 gduche 1618
	}
985 jpm 1619
 
1367 cyprien 1620
	/** Cette méthode est un wrapper **/
1621
	public void selectionnerCommentaireParTitre(Rafraichissable vueARafraichir, String titre, Sequenceur sequenceur) {
1622
		selectionnerCommentaire(vueARafraichir, null, titre, 0, nbElements, sequenceur);
997 jpm 1623
	}
1624
 
1367 cyprien 1625
	/** AJOUTER **/
985 jpm 1626
	public void ajouterCommentaire(Rafraichissable vueARafraichir, Commentaire commentaire) {
1627
		modele.ajouterCommentaire(vueARafraichir, commentaire);
1628
	}
1629
 
1367 cyprien 1630
	/** MODIFIER **/
985 jpm 1631
	public void modifierCommentaire(Rafraichissable vueARafraichir, Commentaire commentaire) {
1632
		modele.modifierCommentaire(vueARafraichir, commentaire);
1633
	}
1634
 
1367 cyprien 1635
	/** SUPPRIMER **/
985 jpm 1636
	public void supprimerCommentaire(Rafraichissable vueARafraichir, List<Commentaire> commentairesListe) {
1637
		if (commentairesListe != null && commentairesListe.size() > 0) {
1638
			String idCommentaireSeparesParVirgule = "" ;
1639
			Iterator<Commentaire> it = commentairesListe.iterator();
1640
			while (it.hasNext()) {
1641
				idCommentaireSeparesParVirgule += it.next().getId();
1642
				if (it.hasNext()) {
1643
					idCommentaireSeparesParVirgule += ",";
1644
				}
1645
			}
1646
			modele.supprimerCommentaire(vueARafraichir, idCommentaireSeparesParVirgule);
989 jpm 1647
			modele.supprimerCollectionACommentaire(vueARafraichir, idCommentaireSeparesParVirgule, CollectionACommentaireAsyncDao.SUPPRESSION_PAR_COMMENTAIRE);
985 jpm 1648
		}
1649
	}
1650
 
1651
	//+----------------------------------------------------------------------------------------------------------------+
447 jp_milcent 1652
	//												RAFRAICHISSEMENT
156 jp_milcent 1653
	//+----------------------------------------------------------------------------------------------------------------+
1654
 
898 gduche 1655
	public void rafraichir(Object nouvellesDonnees) {
1656
		if (nouvellesDonnees instanceof Utilisateur) {
932 jpm 1657
			repandreEtatIdentification((Utilisateur) nouvellesDonnees);
1658
		} else if (nouvellesDonnees instanceof Information) {
1659
			Information info = (Information) nouvellesDonnees;
1660
			if (info.getType().equals("modification_personne")) {
1661
				repandreInfoMiseAJourUtilisateur();
1662
			}
1663
		} else {
898 gduche 1664
			GWT.log(i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
277 jp_milcent 1665
		}
1666
	}
281 gduche 1667
 
453 jp_milcent 1668
	//+----------------------------------------------------------------------------------------------------------------+
1669
	//												GESTION du STATUT
1670
	//+----------------------------------------------------------------------------------------------------------------+
288 gduche 1671
 
332 gduche 1672
	public void afficherPopinChargement()	{
1673
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).center();
1674
	}
453 jp_milcent 1675
 
332 gduche 1676
	public void masquerPopinChargement()	{
1677
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide();
1678
	}
1063 gduche 1679
 
1680
	public String obtenirClasseContenu()	{
1681
		String classeContenu = null;
1682
		if (panneauCentre.getContenu() != null)	{
1683
			classeContenu = panneauCentre.getContenu().getClass().toString();
1684
		}
1685
		return classeContenu;
1686
	}
447 jp_milcent 1687
 
277 jp_milcent 1688
}