Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 444 Rev 447
1
package org.tela_botanica.client;
1
package org.tela_botanica.client;
2
 
2
 
3
import java.util.Iterator;
3
import java.util.Iterator;
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.composants.AideFenetre;
6
import org.tela_botanica.client.composants.AideFenetre;
7
import org.tela_botanica.client.composants.IdentificationFenetre;
7
import org.tela_botanica.client.composants.IdentificationFenetre;
8
import org.tela_botanica.client.composants.ParametreFenetre;
8
import org.tela_botanica.client.composants.ParametreFenetre;
9
import org.tela_botanica.client.i18n.Constantes;
9
import org.tela_botanica.client.i18n.Constantes;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
-
 
11
import org.tela_botanica.client.modeles.Collection;
11
import org.tela_botanica.client.modeles.Configuration;
12
import org.tela_botanica.client.modeles.Configuration;
12
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.MenuApplicationId;
14
import org.tela_botanica.client.modeles.MenuApplicationId;
14
import org.tela_botanica.client.modeles.Personne;
15
import org.tela_botanica.client.modeles.Personne;
15
import org.tela_botanica.client.modeles.PersonneListe;
16
import org.tela_botanica.client.modeles.PersonneListe;
16
import org.tela_botanica.client.modeles.Projet;
17
import org.tela_botanica.client.modeles.Projet;
17
import org.tela_botanica.client.modeles.ProjetListe;
18
import org.tela_botanica.client.modeles.ProjetListe;
18
import org.tela_botanica.client.modeles.Publication;
19
import org.tela_botanica.client.modeles.Publication;
19
import org.tela_botanica.client.modeles.PublicationListe;
20
import org.tela_botanica.client.modeles.PublicationListe;
20
import org.tela_botanica.client.modeles.Structure;
21
import org.tela_botanica.client.modeles.Structure;
21
import org.tela_botanica.client.modeles.StructureAPersonne;
22
import org.tela_botanica.client.modeles.StructureAPersonne;
22
import org.tela_botanica.client.modeles.StructureAPersonneListe;
23
import org.tela_botanica.client.modeles.StructureAPersonneListe;
23
import org.tela_botanica.client.modeles.StructureConservation;
24
import org.tela_botanica.client.modeles.StructureConservation;
24
import org.tela_botanica.client.modeles.StructureListe;
25
import org.tela_botanica.client.modeles.StructureListe;
25
import org.tela_botanica.client.modeles.StructureValorisation;
26
import org.tela_botanica.client.modeles.StructureValorisation;
26
import org.tela_botanica.client.modeles.Utilisateur;
27
import org.tela_botanica.client.modeles.Utilisateur;
27
import org.tela_botanica.client.modeles.ValeurListe;
28
import org.tela_botanica.client.modeles.ValeurListe;
-
 
29
import org.tela_botanica.client.vues.CollectionListeVue;
28
import org.tela_botanica.client.vues.ContenuVue;
30
import org.tela_botanica.client.vues.ContenuVue;
29
import org.tela_botanica.client.vues.EnteteVue;
31
import org.tela_botanica.client.vues.EnteteVue;
30
import org.tela_botanica.client.vues.PersonneForm;
32
import org.tela_botanica.client.vues.PersonneForm;
31
import org.tela_botanica.client.vues.PublicationForm;
33
import org.tela_botanica.client.vues.PublicationForm;
32
import org.tela_botanica.client.vues.StructureForm;
34
import org.tela_botanica.client.vues.StructureForm;
33
import org.tela_botanica.client.vues.PersonneDetailVue;
35
import org.tela_botanica.client.vues.PersonneDetailVue;
34
import org.tela_botanica.client.vues.PersonneVue;
36
import org.tela_botanica.client.vues.PersonneVue;
35
import org.tela_botanica.client.vues.PopupChargement;
37
import org.tela_botanica.client.vues.PopupChargement;
36
import org.tela_botanica.client.vues.PublicationDetailVue;
38
import org.tela_botanica.client.vues.PublicationDetailVue;
37
import org.tela_botanica.client.vues.PublicationVue;
39
import org.tela_botanica.client.vues.PublicationVue;
38
import org.tela_botanica.client.vues.StatutVue;
40
import org.tela_botanica.client.vues.StatutVue;
39
import org.tela_botanica.client.vues.StructureDetailVue;
41
import org.tela_botanica.client.vues.StructureDetailVue;
40
import org.tela_botanica.client.vues.StructureVue;
42
import org.tela_botanica.client.vues.StructureVue;
41
import org.tela_botanica.client.vues.MenuVue;
43
import org.tela_botanica.client.vues.MenuVue;
42
 
44
 
43
import com.extjs.gxt.ui.client.Registry;
45
import com.extjs.gxt.ui.client.Registry;
44
import com.extjs.gxt.ui.client.Style.LayoutRegion;
46
import com.extjs.gxt.ui.client.Style.LayoutRegion;
45
import com.extjs.gxt.ui.client.event.ComponentEvent;
47
import com.extjs.gxt.ui.client.event.ComponentEvent;
46
import com.extjs.gxt.ui.client.event.Listener;
48
import com.extjs.gxt.ui.client.event.Listener;
47
import com.extjs.gxt.ui.client.util.Margins;
49
import com.extjs.gxt.ui.client.util.Margins;
48
import com.extjs.gxt.ui.client.widget.Dialog;
50
import com.extjs.gxt.ui.client.widget.Dialog;
49
import com.extjs.gxt.ui.client.widget.Info;
51
import com.extjs.gxt.ui.client.widget.Info;
50
import com.extjs.gxt.ui.client.widget.MessageBox;
52
import com.extjs.gxt.ui.client.widget.MessageBox;
51
import com.extjs.gxt.ui.client.widget.StatusBar;
53
import com.extjs.gxt.ui.client.widget.StatusBar;
52
import com.extjs.gxt.ui.client.widget.Viewport;
54
import com.extjs.gxt.ui.client.widget.Viewport;
53
import com.extjs.gxt.ui.client.widget.button.Button;
55
import com.extjs.gxt.ui.client.widget.button.Button;
54
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
56
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
55
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
57
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
56
import com.google.gwt.core.client.GWT;
58
import com.google.gwt.core.client.GWT;
57
import com.google.gwt.user.client.Window;
59
import com.google.gwt.user.client.Window;
58
import com.google.gwt.user.client.ui.RootPanel;
60
import com.google.gwt.user.client.ui.RootPanel;
59
 
61
 
60
public class Mediateur implements Rafraichissable {
62
public class Mediateur implements Rafraichissable {
61
	
63
	
62
	private Viewport viewport;
64
	private Viewport viewport;
63
	private Modele modele = null;
65
	private Modele modele = null;
64
	public Constantes i18nC;
66
	public Constantes i18nC;
65
	
67
	
66
	private EnteteVue panneauNord = null;
68
	private EnteteVue panneauNord = null;
67
	private MenuVue panneauOuest = null;
69
	private MenuVue panneauOuest = null;
68
	private ContenuVue panneauCentre = null;
70
	private ContenuVue panneauCentre = null;
69
	private StatutVue panneauSud = null;
71
	private StatutVue panneauSud = null;
70
	private Rafraichissable contenuPanneauCentre = null;
72
	private Rafraichissable contenuPanneauCentre = null;
71
	
73
	
72
	private IdentificationFenetre fenetreIdentification = null;
74
	private IdentificationFenetre fenetreIdentification = null;
73
	
75
	
74
	public Mediateur() {
76
	public Mediateur() {
75
		// Enregistrement du Médiateur dans le Registre
77
		// Enregistrement du Médiateur dans le Registre
76
		Registry.register(RegistreId.MEDIATEUR, this);
78
		Registry.register(RegistreId.MEDIATEUR, this);
77
		// Gestion de l'i18n
79
		// Gestion de l'i18n
78
		i18nC = GWT.create(Constantes.class);
80
		i18nC = GWT.create(Constantes.class);
79
		// Création du Modèle qui s'enregistre lui même dans le Registre
81
		// Création du Modèle qui s'enregistre lui même dans le Registre
80
		modele = new Modele();
82
		modele = new Modele();
81
	    // Création de l'utilisateur courrant
83
	    // Création de l'utilisateur courrant
82
		Registry.register(RegistreId.UTILISATEUR_COURANT, new Utilisateur(null, false));
84
		Registry.register(RegistreId.UTILISATEUR_COURANT, new Utilisateur(null, false));
83
		this.connecterUtilisateur(null, null);
85
		this.connecterUtilisateur(null, null);
84
	    // Création du projet courrant
86
	    // Création du projet courrant
85
		Registry.register(RegistreId.PROJET_COURANT, new Projet());
87
		Registry.register(RegistreId.PROJET_COURANT, new Projet());
86
		
88
		
87
		// Création du Viewport qui contient la disposition globale de l'application
89
		// Création du Viewport qui contient la disposition globale de l'application
88
		viewport = new Viewport();
90
		viewport = new Viewport();
89
		viewport.setLayout(new BorderLayout());
91
		viewport.setLayout(new BorderLayout());
90
		
92
		
91
		// Création des différents panneaux
93
		// Création des différents panneaux
92
	    creerPanneauNord();
94
	    creerPanneauNord();
93
	    creerPanneauOuest();
95
	    creerPanneauOuest();
94
	    creerPanneauCentral();
96
	    creerPanneauCentral();
95
	    creerPanneauSud();
97
	    creerPanneauSud();
96
 
98
 
97
		// Registry utile car présent partout!
99
		// Registry utile car présent partout!
98
		Registry.register(RegistreId.VIEWPORT, viewport);
100
		Registry.register(RegistreId.VIEWPORT, viewport);
99
		Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);
101
		Registry.register(RegistreId.PANNEAU_OUEST, panneauOuest);
100
		Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);
102
		Registry.register(RegistreId.PANNEAU_CENTRE, panneauCentre);
101
		Registry.register(RegistreId.PANNEAU_SUD, panneauSud);
103
		Registry.register(RegistreId.PANNEAU_SUD, panneauSud);
102
 
104
 
103
		// Chargement du menu
105
		// Chargement du menu
104
		chargeMenuApplication();
106
		chargeMenuApplication();
105
		
107
		
106
		// Retour à GWT du Viewport une fois constuit
108
		// Retour à GWT du Viewport une fois constuit
107
		RootPanel.get().add(viewport);
109
		RootPanel.get().add(viewport);
108
		
110
		
109
		masquerPopinChargement(); 
111
		masquerPopinChargement(); 
110
	}
112
	}
111
	
113
	
112
	//+----------------------------------------------------------------------------------------------------------------+
114
	//+----------------------------------------------------------------------------------------------------------------+
113
	//												GESTION des PANNEAUX PRINCIPAUX
115
	//												GESTION des PANNEAUX PRINCIPAUX
114
	//+----------------------------------------------------------------------------------------------------------------+
116
	//+----------------------------------------------------------------------------------------------------------------+
115
	
117
	
116
	private void creerPanneauNord() {
118
	private void creerPanneauNord() {
117
		panneauNord = new EnteteVue(this);
119
		panneauNord = new EnteteVue(this);
118
		
120
		
119
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);  
121
		BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);  
120
		regionNord.setCollapsible(true);
122
		regionNord.setCollapsible(true);
121
		regionNord.setFloatable(true);
123
		regionNord.setFloatable(true);
122
		regionNord.setSplit(false);
124
		regionNord.setSplit(false);
123
		regionNord.setMargins(new Margins(5, 5, 0, 5));
125
		regionNord.setMargins(new Margins(5, 5, 0, 5));
124
		
126
		
125
		viewport.add(panneauNord, regionNord);
127
		viewport.add(panneauNord, regionNord);
126
	}
128
	}
127
	
129
	
128
	private void creerPanneauOuest() {
130
	private void creerPanneauOuest() {
129
		panneauOuest = new MenuVue(this); 
131
		panneauOuest = new MenuVue(this); 
130
		
132
		
131
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);  
133
		BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);  
132
		regionOuest.setSplit(true);
134
		regionOuest.setSplit(true);
133
		regionOuest.setCollapsible(true);  
135
		regionOuest.setCollapsible(true);  
134
		regionOuest.setMargins(new Margins(5));
136
		regionOuest.setMargins(new Margins(5));
135
 
137
 
136
		viewport.add(panneauOuest, regionOuest);
138
		viewport.add(panneauOuest, regionOuest);
137
	}
139
	}
138
 
140
 
139
	private void creerPanneauCentral() {
141
	private void creerPanneauCentral() {
140
		panneauCentre = new ContenuVue(this);
142
		panneauCentre = new ContenuVue(this);
141
 
143
 
142
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);  
144
		BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);  
143
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
145
		regionCentre.setMargins(new Margins(5, 5, 5, 0));
144
 
146
 
145
		viewport.add(panneauCentre, regionCentre);
147
		viewport.add(panneauCentre, regionCentre);
146
	}
148
	}
147
	
149
	
148
	private void creerPanneauSud() {
150
	private void creerPanneauSud() {
149
		panneauSud = new StatutVue();
151
		panneauSud = new StatutVue();
150
		
152
		
151
		BorderLayoutData regionSud = new BorderLayoutData(LayoutRegion.SOUTH, 20); 
153
		BorderLayoutData regionSud = new BorderLayoutData(LayoutRegion.SOUTH, 20); 
152
		regionSud.setCollapsible(true);
154
		regionSud.setCollapsible(true);
153
		regionSud.setFloatable(true);
155
		regionSud.setFloatable(true);
154
		regionSud.setSplit(false);
156
		regionSud.setSplit(false);
155
		regionSud.setMargins(new Margins(0));
157
		regionSud.setMargins(new Margins(0));
156
		
158
		
157
		viewport.add(panneauSud, regionSud);
159
		viewport.add(panneauSud, regionSud);
158
	}
160
	}
159
 
161
 
160
	public void actualiserPanneauCentral() {
162
	public void actualiserPanneauCentral() {
161
		System.out.println(panneauCentre);
163
		System.out.println(panneauCentre);
162
		panneauCentre.layout();
164
		panneauCentre.layout();
163
	}
165
	}
164
	
166
	
165
	//+----------------------------------------------------------------------------------------------------------------+
167
	//+----------------------------------------------------------------------------------------------------------------+
166
	//												GESTION du MENU
168
	//												GESTION du MENU
167
	//+----------------------------------------------------------------------------------------------------------------+
169
	//+----------------------------------------------------------------------------------------------------------------+
168
	
170
	
169
	public void chargeMenuApplication() {
171
	public void chargeMenuApplication() {
170
		((MenuVue) Registry.get(RegistreId.PANNEAU_OUEST)).chargerMenus();		
172
		((MenuVue) Registry.get(RegistreId.PANNEAU_OUEST)).chargerMenus();		
171
	}
173
	}
172
 
174
 
173
	public void clicMenu(String codeMenuClique) {
175
	public void clicMenu(String codeMenuClique) {
174
		activerChargement(codeMenuClique);
176
		activerChargement(codeMenuClique);
175
		panneauCentre.removeAll();
177
		panneauCentre.removeAll();
176
		if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {
178
		if (codeMenuClique.equals(MenuApplicationId.STRUCTURE)) {
177
			modele.selectionnerStructure(panneauCentre, getProjetId(), null);
179
			modele.selectionnerStructure(panneauCentre, getProjetId(), null);
178
		} else if (codeMenuClique.equals(MenuApplicationId.PUBLICATION)) {
180
		} else if (codeMenuClique.equals(MenuApplicationId.PUBLICATION)) {
179
			modele.selectionnerPublications(panneauCentre);
181
			modele.selectionnerPublications(panneauCentre);
180
		} else if (codeMenuClique.equals(MenuApplicationId.PERSONNE)) { 
182
		} else if (codeMenuClique.equals(MenuApplicationId.PERSONNE)) { 
181
			
183
			
182
			modele.selectionnerPersonne(panneauCentre, null, getProjetId(), null);
184
			modele.selectionnerPersonne(panneauCentre, null, getProjetId(), null);
183
		} else {
185
		} else {
184
			GWT.log("Non implémenté! Menu id : "+codeMenuClique, null);
186
			GWT.log("Non implémenté! Menu id : "+codeMenuClique, null);
185
		}
187
		}
186
		panneauCentre.layout();
188
		panneauCentre.layout();
187
	}
189
	}
188
	
190
	
189
	public void activerChargement(String message) {
191
	public void activerChargement(String message) {
190
		afficherPopinChargement(); 
192
		afficherPopinChargement(); 
191
		panneauSud.showBusy(i18nC.chargement()+" "+message);
193
		panneauSud.showBusy(i18nC.chargement()+" "+message);
192
	}
194
	}
193
	
195
	
194
	public void desactiverChargement() {
196
	public void desactiverChargement() {
195
		masquerPopinChargement();
197
		masquerPopinChargement();
196
		panneauSud.clear();
198
		panneauSud.clear();
197
	}
199
	}
198
	
200
	
199
	//+----------------------------------------------------------------------------------------------------------------+
201
	//+----------------------------------------------------------------------------------------------------------------+
200
	//												GESTION DES FENÊTRES
202
	//												GESTION DES FENÊTRES
201
	//+----------------------------------------------------------------------------------------------------------------+
203
	//+----------------------------------------------------------------------------------------------------------------+
202
 
204
 
203
	public void ouvrirAide() {
205
	public void ouvrirAide() {
204
		AideFenetre aideFenetre = new AideFenetre();
206
		AideFenetre aideFenetre = new AideFenetre();
205
		aideFenetre.show();
207
		aideFenetre.show();
206
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
208
		// FIXME : apparament le fade In/Fade Out pose problème sur les navigateurs...
207
		//aideFenetre.el().fadeIn(FxConfig.NONE);
209
		//aideFenetre.el().fadeIn(FxConfig.NONE);
208
	}
210
	}
209
 
211
 
210
	public void ouvrirParametres() {
212
	public void ouvrirParametres() {
211
		ParametreFenetre parametresFenetre = new ParametreFenetre();
213
		ParametreFenetre parametresFenetre = new ParametreFenetre();
212
		parametresFenetre.show();
214
		parametresFenetre.show();
213
	}
215
	}
214
 
216
 
215
	public void ouvrirIdentification() {
217
	public void ouvrirIdentification() {
216
		fenetreIdentification = new IdentificationFenetre();
218
		fenetreIdentification = new IdentificationFenetre();
217
		fenetreIdentification.show();
219
		fenetreIdentification.show();
218
	}
220
	}
219
 
221
 
220
	public void ouvrirApplis(String id) {
222
	public void ouvrirApplis(String id) {
221
		if (id.equals(ComposantId.MENU_CEL)) {
223
		if (id.equals(ComposantId.MENU_CEL)) {
222
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
224
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Carnet en ligne", "");
223
		} else if (id.equals(ComposantId.MENU_BEL)) {
225
		} else if (id.equals(ComposantId.MENU_BEL)) {
224
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Biblio en ligne", "");
226
			Window.open(((Configuration) Registry.get(RegistreId.CONFIG)).getCelUrl(), "Biblio en ligne", "");
225
		}
227
		}
226
	}
228
	}
227
 
229
 
228
	//+----------------------------------------------------------------------------------------------------------------+
230
	//+----------------------------------------------------------------------------------------------------------------+
229
	//												GESTION de l'UTILISATEUR et de l'IDENTIFICATION
231
	//												GESTION de l'UTILISATEUR et de l'IDENTIFICATION
230
	//+----------------------------------------------------------------------------------------------------------------+
232
	//+----------------------------------------------------------------------------------------------------------------+
231
	/**
233
	/**
232
	 * Retourne l'identifiant de l'utilisateur courrant de l'application.
234
	 * Retourne l'identifiant de l'utilisateur courrant de l'application.
233
	 */
235
	 */
234
	public String getUtilisateurId() {
236
	public String getUtilisateurId() {
235
		String id = null;
237
		String id = null;
236
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
238
		Utilisateur utilisateurCourant = (Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT);
237
		if (!utilisateurCourant.getId().equals("")) {
239
		if (!utilisateurCourant.getId().equals("")) {
238
			id = utilisateurCourant.getId();
240
			id = utilisateurCourant.getId();
239
		}
241
		}
240
		return id;
242
		return id;
241
	}
243
	}
242
	
244
	
243
	public void connecterUtilisateur(String login, String mdp) {
245
	public void connecterUtilisateur(String login, String mdp) {
244
		modele.connecterUtilisateur(this, login, mdp);
246
		modele.connecterUtilisateur(this, login, mdp);
245
	}
247
	}
246
	
248
	
247
	public void deconnecterUtilisateur() {
249
	public void deconnecterUtilisateur() {
248
		modele.deconnecterUtilisateur(this);
250
		modele.deconnecterUtilisateur(this);
249
	}
251
	}
250
	
252
	
251
	public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
253
	public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
252
		// Mise à jour du registre
254
		// Mise à jour du registre
253
		Registry.register(RegistreId.UTILISATEUR_COURANT, utilisateur);
255
		Registry.register(RegistreId.UTILISATEUR_COURANT, utilisateur);
254
		// Création de l'information de mise à jour de l'utilisateur
256
		// Création de l'information de mise à jour de l'utilisateur
255
		Information info = new Information("maj_utilisateur");
257
		Information info = new Information("maj_utilisateur");
256
 
258
 
257
		// Rafraichissement de la fenêtre d'Identification
259
		// Rafraichissement de la fenêtre d'Identification
258
		if (fenetreIdentification != null) {
260
		if (fenetreIdentification != null) {
259
			fenetreIdentification.rafraichir(info);
261
			fenetreIdentification.rafraichir(info);
260
		}
262
		}
261
		
263
		
262
		// Rafraichissement du panneau Nord
264
		// Rafraichissement du panneau Nord
263
		panneauNord.rafraichir(info);
265
		panneauNord.rafraichir(info);
264
 
266
 
265
		// Rafraichissement du panneau Centre
267
		// Rafraichissement du panneau Centre
266
		if (contenuPanneauCentre != null) {
268
		if (contenuPanneauCentre != null) {
267
			contenuPanneauCentre.rafraichir(info);
269
			contenuPanneauCentre.rafraichir(info);
268
		}
270
		}
269
	}
271
	}
270
 
272
 
271
	//+----------------------------------------------------------------------------------------------------------------+
273
	//+----------------------------------------------------------------------------------------------------------------+
-
 
274
	//												GESTION DES VALEURS ET LISTES
-
 
275
	//+----------------------------------------------------------------------------------------------------------------+
-
 
276
 
-
 
277
	public void afficherListeValeurs(ValeurListe nouvelleDonnees) {
-
 
278
		if (panneauCentre.getId().equals(ComposantId.PANNEAU_STRUCTURE_FORM)) {
-
 
279
			((StructureForm) panneauCentre.getItem(0)).rafraichir(nouvelleDonnees);
-
 
280
		} else {
-
 
281
			GWT.log("Aucun panneau trouvé pour afficher la liste de valeur", null);
-
 
282
		}
-
 
283
	}
-
 
284
 
-
 
285
	
-
 
286
	//+----------------------------------------------------------------------------------------------------------------+
-
 
287
	//												GESTION des PROJETS
-
 
288
	//+----------------------------------------------------------------------------------------------------------------+
-
 
289
	
-
 
290
	/**
-
 
291
	 * Retourne l'identifiant du projet courrant de l'application.
-
 
292
	 */
-
 
293
	public String getProjetId() {
-
 
294
		String id = null;
-
 
295
		Projet projetCourant = (Projet) Registry.get(RegistreId.PROJET_COURANT);
-
 
296
		if (projetCourant != null && !projetCourant.getId().equals("")) {
-
 
297
			id = projetCourant.getId();
-
 
298
		}
-
 
299
		return id;
-
 
300
	}
-
 
301
	
-
 
302
	//Greg : ajout d'un écouteur pour le changement liste projet
-
 
303
	public void selectionnerProjets(Rafraichissable vue)	{
-
 
304
		modele.selectionnerProjets(vue);
-
 
305
	}
-
 
306
	
-
 
307
	public void afficherListeProjets(ProjetListe projets)	{
-
 
308
		panneauOuest.rafraichir(projets);
-
 
309
	}
-
 
310
	
-
 
311
	public void selectionnerProjetCourant(Projet projetSelectionne) {
-
 
312
		Registry.register(RegistreId.PROJET_COURANT, projetSelectionne);
-
 
313
		if (contenuPanneauCentre instanceof PersonneVue)	{
-
 
314
			modele.selectionnerPersonne(contenuPanneauCentre, null, getProjetId(), null);
-
 
315
			//FIXME Le rafraichissement du panneau ne se fait pas!
-
 
316
		} else if (contenuPanneauCentre instanceof StructureVue)	{
-
 
317
			modele.obtenirListeStructures(contenuPanneauCentre, getProjetId());
-
 
318
		}
-
 
319
	}
-
 
320
	
-
 
321
	//+----------------------------------------------------------------------------------------------------------------+
-
 
322
	//												GESTION DES STRUCTURES
-
 
323
	//+----------------------------------------------------------------------------------------------------------------+
-
 
324
 
-
 
325
	public void clicListeStructure(Structure structure) {
-
 
326
		contenuPanneauCentre.rafraichir(structure);
-
 
327
		if (structure.getPersonnel() == null) {
-
 
328
			selectionnerStructureAPersonne(contenuPanneauCentre, structure.getId(), StructureAPersonne.ROLE_EQUIPE);
-
 
329
		} else {
-
 
330
			GWT.log("OK personnel déjà chargé", null);
-
 
331
		}
-
 
332
	}
-
 
333
 
-
 
334
	public void afficherListeStructures(StructureListe structuresACharger) {
-
 
335
		// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacher
-
 
336
		StructureVue institutionVue = new StructureVue(this);
-
 
337
		panneauCentre.add(institutionVue);
-
 
338
		panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_LISTE);
-
 
339
		contenuPanneauCentre = institutionVue;
-
 
340
		institutionVue.rafraichir(structuresACharger);
-
 
341
	}
-
 
342
	
-
 
343
	public void clicAjouterStructure() {
-
 
344
		panneauCentre.removeAll();
-
 
345
		StructureForm structureForm = new StructureForm(this, StructureForm.MODE_AJOUTER);
-
 
346
		panneauCentre.add(structureForm);
-
 
347
		panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_FORM);
-
 
348
		panneauCentre.layout();
-
 
349
	}
-
 
350
	
-
 
351
	public void clicModifierStructure(List<Structure> structureSelection) {
-
 
352
		if (structureSelection.size() == 0) {
-
 
353
			Info.display("Information", "Veuillez sélectionner une structure.");
-
 
354
		} else if (structureSelection.size() > 1) {
-
 
355
			Info.display("Information", "Veuillez sélectionner une seule structure à la fois.");
-
 
356
		} else if (structureSelection.size() == 1) {
-
 
357
			panneauCentre.removeAll();
-
 
358
			StructureForm structureForm = new StructureForm(this, StructureForm.MODE_MODIFIER);
-
 
359
			panneauCentre.add(structureForm);
-
 
360
			panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_FORM);
-
 
361
			
-
 
362
			selectionnerStructure(structureForm, structureSelection.get(0).getId());
-
 
363
			selectionnerStructureAPersonne(structureForm, structureSelection.get(0).getId(), StructureAPersonne.ROLE_EQUIPE);
-
 
364
			
-
 
365
			panneauCentre.layout();
-
 
366
		} else {
-
 
367
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierStructure() du Médiateur.");
-
 
368
		}
-
 
369
		
-
 
370
	}
-
 
371
	
-
 
372
	public void clicSupprimerStructure(final Rafraichissable vue, final List<Structure> structureSelection) {
-
 
373
		if (structureSelection.size() == 0) {
-
 
374
			Info.display("Information", "Veuillez sélectionner une structure.");
-
 
375
		} else if(structureSelection.size() > 0) {
-
 
376
			String message = "Êtes vous sur de vouloir supprimer les structures sélectionnées ?";
-
 
377
			if (structureSelection.size() == 1) {
-
 
378
				message = "Êtes vous sur de vouloir supprimer la structure sélectionnée ?";
-
 
379
			}
-
 
380
			
-
 
381
			
-
 
382
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
-
 
383
				
-
 
384
			       public void handleEvent(ComponentEvent ce) {  
-
 
385
			    	   
-
 
386
			    	   Dialog dialog = (Dialog) ce.component;
-
 
387
			    	   Button btn = dialog.getButtonPressed();  
-
 
388
			    	   
-
 
389
			    	   if (btn.getText().equals(dialog.yesText))	{
-
 
390
			    		   	String idStr = "" ;
-
 
391
							for(int i = 0 ; i < structureSelection.size() ; i++) {
-
 
392
								idStr += structureSelection.get(i).getId()+"," ; 
-
 
393
							}
-
 
394
							modele.supprimerStructure(vue, getUtilisateurId(), idStr); 
-
 
395
					       }
-
 
396
				      }
-
 
397
				     };
-
 
398
				     
-
 
399
			MessageBox.confirm("Supprimer une structure", message, listenerSuppression);
-
 
400
			
-
 
401
		} else {
-
 
402
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerStructure() du Médiateur.");
-
 
403
		}
-
 
404
	}
-
 
405
	
-
 
406
	public void selectionnerStructure(Rafraichissable vue, String structureId) {
-
 
407
		GWT.log("Structure : "+structureId, null);
-
 
408
		modele.selectionnerStructure(vue, null, structureId);
-
 
409
	}
-
 
410
	
-
 
411
	/**
-
 
412
	 * TODO : afficher un message du type "Structure ajoutée".  
-
 
413
	 * Lance la creation d'une structure
-
 
414
	 * @param les données de la structure saisie
-
 
415
	 */
-
 
416
	public void ajouterStructure(Rafraichissable vue, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
-
 
417
		modele.ajouterStructure(vue, getUtilisateurId(), structure, conservation, valorisation);
-
 
418
	}
-
 
419
	
-
 
420
	public void modifierStructure(Rafraichissable vue, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
-
 
421
		modele.modifierStructure(vue, getUtilisateurId(), structureId, structure, conservation, valorisation);
-
 
422
	}
-
 
423
 
-
 
424
	//+----------------------------------------------------------------------------------------------------------------+
-
 
425
	// GESTION de la relation STRUCTURE A PERSONNE
-
 
426
	public void selectionnerStructureAPersonne(Rafraichissable vue, String structureId, String roleId) {
-
 
427
		GWT.log("Structure : "+structureId, null);
-
 
428
		modele.selectionnerStructureAPersonne(vue, getUtilisateurId(), null, structureId, roleId);
-
 
429
	}
-
 
430
	
-
 
431
	public void modifierStructureAPersonne(Rafraichissable vue, StructureAPersonneListe personnelModifie) {
-
 
432
		if (personnelModifie != null && personnelModifie.size() > 0) {
-
 
433
			GWT.log("Mediateur :modif", null);
-
 
434
			for (Iterator<String> it = personnelModifie.keySet().iterator(); it.hasNext();) {
-
 
435
				modele.modifierStructureAPersonne(vue, getUtilisateurId(), (StructureAPersonne) personnelModifie.get(it.next()));
-
 
436
			}
-
 
437
		}
-
 
438
	}
-
 
439
	
-
 
440
	public void ajouterStructureAPersonne(Rafraichissable vue, String structureId, StructureAPersonneListe personnelAjoute) {
-
 
441
		if (personnelAjoute != null && personnelAjoute.size() > 0) {
-
 
442
			for (Iterator<String> it = personnelAjoute.keySet().iterator(); it.hasNext();) {
-
 
443
				modele.ajouterStructureAPersonne(vue, getUtilisateurId(), structureId, (StructureAPersonne) personnelAjoute.get(it.next()));
-
 
444
			}
-
 
445
		}
-
 
446
	}
-
 
447
	
-
 
448
	public void supprimerStructureAPersonne(Rafraichissable vue, StructureAPersonneListe personnelSupprime) {
-
 
449
		if (personnelSupprime != null && personnelSupprime.size() > 0) {
-
 
450
			String idStrAPer = "" ;
-
 
451
			for (Iterator<String> it = personnelSupprime.keySet().iterator(); it.hasNext();) {
-
 
452
					idStrAPer += personnelSupprime.get(it.next()).getId()+"," ;
-
 
453
			}
-
 
454
			modele.supprimerStructureAPersonne(vue, getUtilisateurId(), idStrAPer);
-
 
455
		}
-
 
456
	}
-
 
457
 
-
 
458
	//+----------------------------------------------------------------------------------------------------------------+
-
 
459
	//												GESTION des COLLECTIONS
-
 
460
	//+----------------------------------------------------------------------------------------------------------------+
-
 
461
	
-
 
462
	public void clicAjouterCollection() {
-
 
463
		// TODO Auto-generated method stub
-
 
464
		
-
 
465
	}
-
 
466
 
-
 
467
	public void clicModifierCollection(List<Collection> selection) {
-
 
468
		// TODO Auto-generated method stub
-
 
469
		
-
 
470
	}
-
 
471
 
-
 
472
	public void clicSupprimerCollection(CollectionListeVue collectionListeVue,
-
 
473
			List<Collection> collectionsASupprimer) {
-
 
474
		// TODO Auto-generated method stub
-
 
475
		
-
 
476
	}
-
 
477
 
-
 
478
	//+----------------------------------------------------------------------------------------------------------------+
272
	//												GESTION DES PERSONNES
479
	//												GESTION DES PERSONNES
273
	//+----------------------------------------------------------------------------------------------------------------+
480
	//+----------------------------------------------------------------------------------------------------------------+
274
 
481
 
275
	public void clicListePersonne(Personne personne)	{
482
	public void clicListePersonne(Personne personne)	{
276
		((PersonneDetailVue) Registry.get(RegistreId.PANNEAU_PERSONNE_DETAIL)).rafraichir(personne);
483
		((PersonneDetailVue) Registry.get(RegistreId.PANNEAU_PERSONNE_DETAIL)).rafraichir(personne);
277
		
484
		
278
	}
485
	}
279
 
486
 
280
	public void afficherListePersonnes(PersonneListe personnesACharger)	{
487
	public void afficherListePersonnes(PersonneListe personnesACharger)	{
281
		
488
		
282
		PersonneVue personneVue = new PersonneVue();
489
		PersonneVue personneVue = new PersonneVue();
283
		contenuPanneauCentre = personneVue;
490
		contenuPanneauCentre = personneVue;
284
		panneauCentre.add(personneVue);
491
		panneauCentre.add(personneVue);
285
		
492
		
286
		contenuPanneauCentre.rafraichir(personnesACharger);
493
		contenuPanneauCentre.rafraichir(personnesACharger);
287
		//contenuPanneauCentre.layout();
494
		//contenuPanneauCentre.layout();
288
	}
495
	}
289
 
496
 
290
	public void clicAjouterPersonne()	{
497
	public void clicAjouterPersonne()	{
291
		
498
		
292
		afficherPopinChargement();
499
		afficherPopinChargement();
293
		 
500
		 
294
		panneauCentre.removeAll();
501
		panneauCentre.removeAll();
295
		PersonneForm formulairePersonneVue = new PersonneForm();
502
		PersonneForm formulairePersonneVue = new PersonneForm();
296
		contenuPanneauCentre = formulairePersonneVue;
503
		contenuPanneauCentre = formulairePersonneVue;
297
		panneauCentre.add(formulairePersonneVue);
504
		panneauCentre.add(formulairePersonneVue);
298
		panneauCentre.layout();
505
		panneauCentre.layout();
299
	}
506
	}
300
	
507
	
301
	public void clicModifierPersonne(Personne personne)	{
508
	public void clicModifierPersonne(Personne personne)	{
302
		if (personne!=null)	{
509
		if (personne!=null)	{
303
			panneauCentre.removeAll();
510
			panneauCentre.removeAll();
304
			PersonneForm formulairePersonneVue = new PersonneForm();
511
			PersonneForm formulairePersonneVue = new PersonneForm();
305
			contenuPanneauCentre = formulairePersonneVue;
512
			contenuPanneauCentre = formulairePersonneVue;
306
			panneauCentre.add(formulairePersonneVue);
513
			panneauCentre.add(formulairePersonneVue);
307
			
514
			
308
			selectionnerPersonne(formulairePersonneVue, personne);
515
			selectionnerPersonne(formulairePersonneVue, personne);
309
			
516
			
310
			panneauCentre.layout();			
517
			panneauCentre.layout();			
311
			
518
			
312
 
519
 
313
		}
520
		}
314
	}
521
	}
315
	
522
	
316
	public void selectionnerPersonne(Rafraichissable vue, Personne personne)	{
523
	public void selectionnerPersonne(Rafraichissable vue, Personne personne)	{
317
		modele.selectionnerPersonne(vue, personne.getId(), null, null);
524
		modele.selectionnerPersonne(vue, personne.getId(), null, null);
318
	}
525
	}
319
	
526
	
320
	public void clicSupprimerPersonne(final Rafraichissable vue,final List<Personne> personneSelection) {
527
	public void clicSupprimerPersonne(final Rafraichissable vue,final List<Personne> personneSelection) {
321
		
528
		
322
		String ids = "" ;
529
		String ids = "" ;
323
		
530
		
324
		if (personneSelection.size() == 0) {
531
		if (personneSelection.size() == 0) {
325
			Info.display("Information", "Veuillez sélectionner une personne.");
532
			Info.display("Information", "Veuillez sélectionner une personne.");
326
		} else if(personneSelection.size() > 0) {
533
		} else if(personneSelection.size() > 0) {
327
			String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?";
534
			String message = "Êtes vous sur de vouloir supprimer les personnes sélectionnées ?";
328
			if (personneSelection.size() == 1) {
535
			if (personneSelection.size() == 1) {
329
				message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?";
536
				message = "Êtes vous sur de vouloir supprimer la personne sélectionnée ?";
330
			}
537
			}
331
			
538
			
332
			
539
			
333
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
540
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
334
				
541
				
335
				public void handleEvent(ComponentEvent ce) {
542
				public void handleEvent(ComponentEvent ce) {
336
					Dialog dialog = (Dialog) ce.component;
543
					Dialog dialog = (Dialog) ce.component;
337
					Button btn = dialog.getButtonPressed();  
544
					Button btn = dialog.getButtonPressed();  
338
 
545
 
339
					if (btn.getText().equals(dialog.yesText)) {
546
					if (btn.getText().equals(dialog.yesText)) {
340
						String idStr = "" ;
547
						String idStr = "" ;
341
						Iterator<Personne> itPersonne = personneSelection.iterator();
548
						Iterator<Personne> itPersonne = personneSelection.iterator();
342
						while (itPersonne.hasNext()) {
549
						while (itPersonne.hasNext()) {
343
							Personne personneCourante = itPersonne.next();
550
							Personne personneCourante = itPersonne.next();
344
							idStr += personneCourante.getId();
551
							idStr += personneCourante.getId();
345
							idStr +=",";
552
							idStr +=",";
346
						}
553
						}
347
						modele.supprimerPersonne(vue, idStr);  
554
						modele.supprimerPersonne(vue, idStr);  
348
					}
555
					}
349
				}
556
				}
350
			};
557
			};
351
				     
558
				     
352
			MessageBox.confirm("Supprimer une personne", message, listenerSuppression);
559
			MessageBox.confirm("Supprimer une personne", message, listenerSuppression);
353
		} else {
560
		} else {
354
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur.");
561
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerPersonne() du Médiateur.");
355
		}
562
		}
356
	}
563
	}
357
 
564
 
358
	public void selectionnerPersonneParNomComplet(Rafraichissable vue, String projetId, String nomComplet) {
565
	public void selectionnerPersonneParNomComplet(Rafraichissable vue, String projetId, String nomComplet) {
359
		modele.selectionnerPersonne(vue, null, projetId, nomComplet);
566
		modele.selectionnerPersonne(vue, null, projetId, nomComplet);
360
	}
567
	}
361
	
568
	
362
	public void enregistrerPersonne(Rafraichissable vue, Personne personne){
569
	public void enregistrerPersonne(Rafraichissable vue, Personne personne){
363
		if (personne.getId()!=null && !personne.getId().trim().equals("")) {	
570
		if (personne.getId()!=null && !personne.getId().trim().equals("")) {	
364
			modele.modifierPersonne(vue, personne);
571
			modele.modifierPersonne(vue, personne);
365
		}	else {
572
		}	else {
366
			modele.ajouterPersonne(vue, personne);
573
			modele.ajouterPersonne(vue, personne);
367
		}
574
		}
368
		
575
		
369
	}
576
	}
370
	
577
	
371
	//+----------------------------------------------------------------------------------------------------------------+
578
	//+----------------------------------------------------------------------------------------------------------------+
372
	//												GESTION DES VALEURS ET LISTES
-
 
373
	//+----------------------------------------------------------------------------------------------------------------+
-
 
374
 
-
 
375
	public void afficherListeValeurs(ValeurListe nouvelleDonnees) {
-
 
376
		if (panneauCentre.getId().equals(ComposantId.PANNEAU_STRUCTURE_FORM)) {
-
 
377
			((StructureForm) panneauCentre.getItem(0)).rafraichir(nouvelleDonnees);
-
 
378
		} else {
-
 
379
			GWT.log("Aucun panneau trouvé pour afficher la liste de valeur", null);
-
 
380
		}
-
 
381
	}
-
 
382
 
-
 
383
	//+----------------------------------------------------------------------------------------------------------------+
-
 
384
	//												GESTION DES PUBLICATIONS
579
	//												GESTION DES PUBLICATIONS
385
	//+----------------------------------------------------------------------------------------------------------------+
580
	//+----------------------------------------------------------------------------------------------------------------+
386
 
581
 
387
	public void afficherListePublication(PublicationListe nouvelleDonnees) {
582
	public void afficherListePublication(PublicationListe nouvelleDonnees) {
388
		PublicationVue publicationVue = new PublicationVue() ;
583
		PublicationVue publicationVue = new PublicationVue() ;
389
		panneauCentre.removeAll();
584
		panneauCentre.removeAll();
390
		panneauCentre.add(publicationVue);
585
		panneauCentre.add(publicationVue);
391
		contenuPanneauCentre = publicationVue;
586
		contenuPanneauCentre = publicationVue;
392
		publicationVue.rafraichir(nouvelleDonnees);
587
		publicationVue.rafraichir(nouvelleDonnees);
393
		
588
		
394
	}
589
	}
395
 
590
 
396
	public void clicListePublication(Publication publication) {
591
	public void clicListePublication(Publication publication) {
397
		panneauCentre.rafraichir(publication);	
592
		panneauCentre.rafraichir(publication);	
398
	}
593
	}
399
 
594
 
400
	public void clicAjouterPublication() {
595
	public void clicAjouterPublication() {
401
		panneauCentre.removeAll();
596
		panneauCentre.removeAll();
402
		PublicationForm publicationForm = new PublicationForm();
597
		PublicationForm publicationForm = new PublicationForm();
403
		panneauCentre.add(publicationForm);
598
		panneauCentre.add(publicationForm);
404
		panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION);
599
		panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION);
405
		panneauCentre.layout();
600
		panneauCentre.layout();
406
	}
601
	}
407
	
602
	
408
	public void clicModifierPublication(List<Publication> publicationListe) {
603
	public void clicModifierPublication(List<Publication> publicationListe) {
409
		if(publicationListe.size() <= 0) {
604
		if(publicationListe.size() <= 0) {
410
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null);
605
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null);
411
		} else {
606
		} else {
412
			Publication pubAModifier = publicationListe.get(publicationListe.size() -1);
607
			Publication pubAModifier = publicationListe.get(publicationListe.size() -1);
413
			panneauCentre.removeAll();
608
			panneauCentre.removeAll();
414
			PublicationForm publicationForm = new PublicationForm();
609
			PublicationForm publicationForm = new PublicationForm();
415
			panneauCentre.add(publicationForm);
610
			panneauCentre.add(publicationForm);
416
			panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION);
611
			panneauCentre.setId(ComposantId.PANNEAU_FORM_PUBLICATION);
417
			panneauCentre.layout();
612
			panneauCentre.layout();
418
			publicationForm.rafraichir(pubAModifier);
613
			publicationForm.rafraichir(pubAModifier);
419
		}
614
		}
420
	}
615
	}
421
	
616
	
422
	public void clicSupprimerPublication(final List<Publication> publicationListe) {
617
	public void clicSupprimerPublication(final List<Publication> publicationListe) {
423
		if(publicationListe.size() <= 0) {
618
		if(publicationListe.size() <= 0) {
424
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null); 
619
			MessageBox.alert("Attention", "Vous devez sélectionner une publication", null); 
425
		} else {
620
		} else {
426
			String message = "" ;
621
			String message = "" ;
427
			if(publicationListe.size() == 1) {
622
			if(publicationListe.size() == 1) {
428
				message = "Voulez-vous vraiment supprimer cette publication ?";
623
				message = "Voulez-vous vraiment supprimer cette publication ?";
429
			}
624
			}
430
			else {
625
			else {
431
				message = "Voulez-vous vraiment supprimer ces publication ?";
626
				message = "Voulez-vous vraiment supprimer ces publication ?";
432
			}
627
			}
433
			
628
			
434
			
629
			
435
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
630
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
436
				public void handleEvent(ComponentEvent ce) {  
631
				public void handleEvent(ComponentEvent ce) {  
437
				    	   
632
				    	   
438
					Dialog dialog = (Dialog) ce.component;
633
					Dialog dialog = (Dialog) ce.component;
439
				    Button btn = dialog.getButtonPressed();  
634
				    Button btn = dialog.getButtonPressed();  
440
				    	   
635
				    	   
441
				    if (btn.getText().equals(dialog.yesText)) {
636
				    if (btn.getText().equals(dialog.yesText)) {
442
				    	modele.supprimerPublication(contenuPanneauCentre, getUtilisateurId(),publicationListe);  
637
				    	modele.supprimerPublication(contenuPanneauCentre, getUtilisateurId(),publicationListe);  
443
				    }
638
				    }
444
				}
639
				}
445
			};
640
			};
446
				     
641
				     
447
			MessageBox.confirm("Supprimer une publication", message, listenerSuppression);
642
			MessageBox.confirm("Supprimer une publication", message, listenerSuppression);
448
		}
643
		}
449
		
644
		
450
	}
645
	}
451
 
646
 
452
	public void ajouterPublication(PublicationForm publicationForm, Publication publi) {
647
	public void ajouterPublication(PublicationForm publicationForm, Publication publi) {
453
		modele.ajouterPublication(contenuPanneauCentre, getUtilisateurId(),publi);
648
		modele.ajouterPublication(contenuPanneauCentre, getUtilisateurId(),publi);
454
	}
649
	}
455
	
650
	
456
	public void modifierPublication(PublicationForm publicationForm, Publication publi) {
651
	public void modifierPublication(PublicationForm publicationForm, Publication publi) {
457
		modele.modifierPublication(contenuPanneauCentre, getUtilisateurId(),publi);
652
		modele.modifierPublication(contenuPanneauCentre, getUtilisateurId(),publi);
458
	}
653
	}
459
 
654
 
460
	public void clicObtenirListeEditeurs(Rafraichissable vue) {
655
	public void clicObtenirListeEditeurs(Rafraichissable vue) {
461
		modele.selectionnerStructure(vue, null, null);
656
		modele.selectionnerStructure(vue, null, null);
462
	}
657
	}
463
 
658
 
464
	public void clicObtenirListeAuteurs(Rafraichissable vue) {
659
	public void clicObtenirListeAuteurs(Rafraichissable vue) {
465
		modele.selectionnerPersonne(vue, null, null, null);
660
		modele.selectionnerPersonne(vue, null, null, null);
466
	}
661
	}
467
	
662
	
468
	//+----------------------------------------------------------------------------------------------------------------+
663
	//+----------------------------------------------------------------------------------------------------------------+
469
	//												GESTION DES STRUCTURES
-
 
470
	//+----------------------------------------------------------------------------------------------------------------+
-
 
471
 
-
 
472
	public void clicListeStructure(Structure structure) {
-
 
473
		contenuPanneauCentre.rafraichir(structure);
-
 
474
		if (structure.getPersonnel() == null) {
-
 
475
			selectionnerStructureAPersonne(contenuPanneauCentre, structure.getId(), StructureAPersonne.ROLE_EQUIPE);
-
 
476
		} else {
-
 
477
			GWT.log("OK personnel déjà chargé", null);
-
 
478
		}
-
 
479
	}
-
 
480
 
-
 
481
	public void afficherListeStructures(StructureListe structuresACharger) {
-
 
482
		// TODO : créer dès l'initialisation de l'application InsitutionVue et la cacher
-
 
483
		StructureVue institutionVue = new StructureVue(this);
-
 
484
		panneauCentre.add(institutionVue);
-
 
485
		panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_LISTE);
-
 
486
		contenuPanneauCentre = institutionVue;
-
 
487
		institutionVue.rafraichir(structuresACharger);
-
 
488
	}
-
 
489
	
-
 
490
	public void clicAjouterStructure() {
-
 
491
		panneauCentre.removeAll();
-
 
492
		StructureForm structureForm = new StructureForm(this, StructureForm.MODE_AJOUTER);
-
 
493
		panneauCentre.add(structureForm);
-
 
494
		panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_FORM);
-
 
495
		panneauCentre.layout();
-
 
496
	}
-
 
497
	
-
 
498
	public void clicModifierStructure(List<Structure> structureSelection) {
-
 
499
		if (structureSelection.size() == 0) {
-
 
500
			Info.display("Information", "Veuillez sélectionner une structure.");
-
 
501
		} else if (structureSelection.size() > 1) {
-
 
502
			Info.display("Information", "Veuillez sélectionner une seule structure à la fois.");
-
 
503
		} else if (structureSelection.size() == 1) {
-
 
504
			panneauCentre.removeAll();
-
 
505
			StructureForm structureForm = new StructureForm(this, StructureForm.MODE_MODIFIER);
-
 
506
			panneauCentre.add(structureForm);
-
 
507
			panneauCentre.setId(ComposantId.PANNEAU_STRUCTURE_FORM);
-
 
508
			
-
 
509
			selectionnerStructure(structureForm, structureSelection.get(0).getId());
-
 
510
			selectionnerStructureAPersonne(structureForm, structureSelection.get(0).getId(), StructureAPersonne.ROLE_EQUIPE);
-
 
511
			
-
 
512
			panneauCentre.layout();
-
 
513
		} else {
-
 
514
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicModifierStructure() du Médiateur.");
-
 
515
		}
-
 
516
		
-
 
517
	}
-
 
518
	
-
 
519
	public void clicSupprimerStructure(final Rafraichissable vue, final List<Structure> structureSelection) {
-
 
520
		if (structureSelection.size() == 0) {
-
 
521
			Info.display("Information", "Veuillez sélectionner une structure.");
-
 
522
		} else if(structureSelection.size() > 0) {
-
 
523
			String message = "Êtes vous sur de vouloir supprimer les structures sélectionnées ?";
-
 
524
			if (structureSelection.size() == 1) {
-
 
525
				message = "Êtes vous sur de vouloir supprimer la structure sélectionnée ?";
-
 
526
			}
-
 
527
			
-
 
528
			
-
 
529
			final Listener listenerSuppression = new Listener<ComponentEvent>() { 
-
 
530
				
-
 
531
			       public void handleEvent(ComponentEvent ce) {  
-
 
532
			    	   
-
 
533
			    	   Dialog dialog = (Dialog) ce.component;
-
 
534
			    	   Button btn = dialog.getButtonPressed();  
-
 
535
			    	   
-
 
536
			    	   if (btn.getText().equals(dialog.yesText))	{
-
 
537
			    		   	String idStr = "" ;
-
 
538
							for(int i = 0 ; i < structureSelection.size() ; i++) {
-
 
539
								idStr += structureSelection.get(i).getId()+"," ; 
-
 
540
							}
-
 
541
							modele.supprimerStructure(vue, getUtilisateurId(), idStr); 
-
 
542
					       }
-
 
543
				      }
-
 
544
				     };
-
 
545
				     
-
 
546
			MessageBox.confirm("Supprimer une structure", message, listenerSuppression);
-
 
547
			
-
 
548
		} else {
-
 
549
			Info.display("Erreur", "Une erreur est survenue dans la méthode clicSupprimerStructure() du Médiateur.");
-
 
550
		}
-
 
551
	}
-
 
552
	
-
 
553
	public void selectionnerStructure(Rafraichissable vue, String structureId) {
-
 
554
		GWT.log("Structure : "+structureId, null);
-
 
555
		modele.selectionnerStructure(vue, null, structureId);
-
 
556
	}
-
 
557
	
-
 
558
	/**
-
 
559
	 * TODO : afficher un message du type "Structure ajoutée".  
-
 
560
	 * Lance la creation d'une structure
-
 
561
	 * @param les données de la structure saisie
-
 
562
	 */
-
 
563
	public void ajouterStructure(Rafraichissable vue, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
-
 
564
		modele.ajouterStructure(vue, getUtilisateurId(), structure, conservation, valorisation);
-
 
565
	}
-
 
566
	
-
 
567
	public void modifierStructure(Rafraichissable vue, String structureId, Structure structure, StructureConservation conservation, StructureValorisation valorisation) {
-
 
568
		modele.modifierStructure(vue, getUtilisateurId(), structureId, structure, conservation, valorisation);
-
 
569
	}
-
 
570
 
-
 
571
	//+----------------------------------------------------------------------------------------------------------------+
-
 
572
	// GESTION de la relation STRUCTURE A PERSONNE
-
 
573
	public void selectionnerStructureAPersonne(Rafraichissable vue, String structureId, String roleId) {
-
 
574
		GWT.log("Structure : "+structureId, null);
-
 
575
		modele.selectionnerStructureAPersonne(vue, getUtilisateurId(), null, structureId, roleId);
-
 
576
	}
-
 
577
	
-
 
578
	public void modifierStructureAPersonne(Rafraichissable vue, StructureAPersonneListe personnelModifie) {
-
 
579
		if (personnelModifie != null && personnelModifie.size() > 0) {
-
 
580
			GWT.log("Mediateur :modif", null);
-
 
581
			for (Iterator<String> it = personnelModifie.keySet().iterator(); it.hasNext();) {
-
 
582
				modele.modifierStructureAPersonne(vue, getUtilisateurId(), (StructureAPersonne) personnelModifie.get(it.next()));
-
 
583
			}
-
 
584
		}
-
 
585
	}
-
 
586
	
-
 
587
	public void ajouterStructureAPersonne(Rafraichissable vue, String structureId, StructureAPersonneListe personnelAjoute) {
-
 
588
		if (personnelAjoute != null && personnelAjoute.size() > 0) {
-
 
589
			for (Iterator<String> it = personnelAjoute.keySet().iterator(); it.hasNext();) {
-
 
590
				modele.ajouterStructureAPersonne(vue, getUtilisateurId(), structureId, (StructureAPersonne) personnelAjoute.get(it.next()));
-
 
591
			}
-
 
592
		}
-
 
593
	}
-
 
594
	
-
 
595
	public void supprimerStructureAPersonne(Rafraichissable vue, StructureAPersonneListe personnelSupprime) {
-
 
596
		if (personnelSupprime != null && personnelSupprime.size() > 0) {
-
 
597
			String idStrAPer = "" ;
-
 
598
			for (Iterator<String> it = personnelSupprime.keySet().iterator(); it.hasNext();) {
-
 
599
					idStrAPer += personnelSupprime.get(it.next()).getId()+"," ;
-
 
600
			}
-
 
601
			modele.supprimerStructureAPersonne(vue, getUtilisateurId(), idStrAPer);
-
 
602
		}
-
 
603
	}
-
 
604
 
-
 
605
	//+----------------------------------------------------------------------------------------------------------------+
-
 
606
	//												GESTION des PROJETS
-
 
607
	//+----------------------------------------------------------------------------------------------------------------+
-
 
608
	
-
 
609
	/**
-
 
610
	 * Retourne l'identifiant du projet courrant de l'application.
-
 
611
	 */
-
 
612
	public String getProjetId() {
-
 
613
		String id = null;
-
 
614
		Projet projetCourant = (Projet) Registry.get(RegistreId.PROJET_COURANT);
-
 
615
		if (projetCourant != null && !projetCourant.getId().equals("")) {
-
 
616
			id = projetCourant.getId();
-
 
617
		}
-
 
618
		return id;
-
 
619
	}
-
 
620
	
-
 
621
	//Greg : ajout d'un écouteur pour le changement liste projet
-
 
622
	public void selectionnerProjets(Rafraichissable vue)	{
-
 
623
		modele.selectionnerProjets(vue);
-
 
624
	}
-
 
625
	
-
 
626
	public void afficherListeProjets(ProjetListe projets)	{
-
 
627
		panneauOuest.rafraichir(projets);
-
 
628
	}
-
 
629
	
-
 
630
	public void selectionnerProjetCourant(Projet projetSelectionne) {
-
 
631
		Registry.register(RegistreId.PROJET_COURANT, projetSelectionne);
-
 
632
		if (contenuPanneauCentre instanceof PersonneVue)	{
-
 
633
			modele.selectionnerPersonne(contenuPanneauCentre, null, getProjetId(), null);
-
 
634
			//FIXME Le rafraichissement du panneau ne se fait pas!
-
 
635
		} else if (contenuPanneauCentre instanceof StructureVue)	{
-
 
636
			modele.obtenirListeStructures(contenuPanneauCentre, getProjetId());
-
 
637
		}
-
 
638
	}
-
 
639
	
-
 
640
	//+----------------------------------------------------------------------------------------------------------------+
-
 
641
	//	RAFRAICHISSEMENT
664
	//												RAFRAICHISSEMENT
642
	//+----------------------------------------------------------------------------------------------------------------+
665
	//+----------------------------------------------------------------------------------------------------------------+
643
	
666
	
644
	public void rafraichir(Object nouvelleDonnees) {
667
	public void rafraichir(Object nouvelleDonnees) {
645
		if (nouvelleDonnees instanceof Utilisateur) {
668
		if (nouvelleDonnees instanceof Utilisateur) {
646
			mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);
669
			mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);
647
		} else {
670
		} else {
648
			GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null);
671
			GWT.log("Pas de correspondance dans la méthode rafraichir() de la classe "+this.getClass(), null);
649
		}
672
		}
650
	}
673
	}
651
	
674
	
652
	/**
675
	/**
653
	 * Récupère la liste et rafraichit la vue donnée
676
	 * Récupère la liste et rafraichit la vue donnée
654
	 * 
677
	 * 
655
	 * @param la vue à rafraichir
678
	 * @param la vue à rafraichir
656
	 * @param l'id de la liste à récupérer
679
	 * @param l'id de la liste à récupérer
657
	 * */
680
	 * */
658
	public void obtenirListeValeurEtRafraichir(Rafraichissable vue, String listeId)	{
681
	public void obtenirListeValeurEtRafraichir(Rafraichissable vue, String listeId)	{
659
		modele.obtenirListeValeurs(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId));
682
		modele.obtenirListeValeurs(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId));
660
	}
683
	}
661
	
684
	
662
	public void obtenirValeurEtRafraichir(Rafraichissable vue, String listeId, String identifiantValeur)	{
685
	public void obtenirValeurEtRafraichir(Rafraichissable vue, String listeId, String identifiantValeur)	{
663
		modele.obtenirValeur(vue, "abv", ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), identifiantValeur);
686
		modele.obtenirValeur(vue, "abv", ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(listeId), identifiantValeur);
664
	}
687
	}
665
	
688
	
666
	public void obtenirListeRegionsEtRafraichir(Rafraichissable vue, String strListeId, String strPays)	{
689
	public void obtenirListeRegionsEtRafraichir(Rafraichissable vue, String strListeId, String strPays)	{
667
		modele.obtenirListeRegion(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(strListeId), strPays+".__");
690
		modele.obtenirListeRegion(vue, ((Configuration) Registry.get(RegistreId.CONFIG)).getListeId(strListeId), strPays+".__");
668
	}
691
	}
669
	
692
	
670
	/**
693
	/**
671
	 * 	Affiche la popin de chargement
694
	 * 	Affiche la popin de chargement
672
	 */
695
	 */
673
	public void afficherPopinChargement()	{
696
	public void afficherPopinChargement()	{
674
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).center();
697
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).center();
675
	}
698
	}
676
	
699
	
677
	
700
	
678
	public void masquerPopinChargement()	{		
701
	public void masquerPopinChargement()	{		
679
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide();
702
		((PopupChargement) Registry.get(RegistreId.POPUP_CHARGEMENT)).hide();
680
	}
703
	}
-
 
704
 
681
}
705
}
682
706