Subversion Repositories eFlore/Applications.coel

Rev

Rev 1909 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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