Subversion Repositories eFlore/Applications.coel

Rev

Rev 1763 | Rev 1780 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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