Subversion Repositories eFlore/Applications.coel

Rev

Rev 990 | Rev 1239 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 990 Rev 1049
1
package org.tela_botanica.client.vues.commentaire;
1
package org.tela_botanica.client.vues.commentaire;
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
 
7
 
8
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.Mediateur;
9
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.RegistreId;
10
import org.tela_botanica.client.i18n.Constantes;
10
import org.tela_botanica.client.i18n.Constantes;
11
import org.tela_botanica.client.images.Images;
11
import org.tela_botanica.client.images.Images;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
12
import org.tela_botanica.client.interfaces.Rafraichissable;
13
import org.tela_botanica.client.modeles.Information;
13
import org.tela_botanica.client.modeles.Information;
14
import org.tela_botanica.client.modeles.MenuApplicationId;
14
import org.tela_botanica.client.modeles.MenuApplicationId;
15
import org.tela_botanica.client.modeles.Utilisateur;
15
import org.tela_botanica.client.modeles.Utilisateur;
16
import org.tela_botanica.client.modeles.Valeur;
16
import org.tela_botanica.client.modeles.Valeur;
17
import org.tela_botanica.client.modeles.ValeurListe;
17
import org.tela_botanica.client.modeles.ValeurListe;
18
import org.tela_botanica.client.modeles.aDonnee;
18
import org.tela_botanica.client.modeles.aDonnee;
19
import org.tela_botanica.client.modeles.commentaire.Commentaire;
19
import org.tela_botanica.client.modeles.commentaire.Commentaire;
20
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
20
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
-
 
21
import org.tela_botanica.client.modeles.structure.StructureListe;
21
import org.tela_botanica.client.util.Debug;
22
import org.tela_botanica.client.util.Debug;
-
 
23
import org.tela_botanica.client.vues.BarrePaginationVue;
22
 
24
 
23
import com.extjs.gxt.ui.client.Registry;
25
import com.extjs.gxt.ui.client.Registry;
24
import com.extjs.gxt.ui.client.Style.SortDir;
26
import com.extjs.gxt.ui.client.Style.SortDir;
25
import com.extjs.gxt.ui.client.event.BaseEvent;
27
import com.extjs.gxt.ui.client.event.BaseEvent;
26
import com.extjs.gxt.ui.client.event.ButtonEvent;
28
import com.extjs.gxt.ui.client.event.ButtonEvent;
27
import com.extjs.gxt.ui.client.event.Events;
29
import com.extjs.gxt.ui.client.event.Events;
28
import com.extjs.gxt.ui.client.event.Listener;
30
import com.extjs.gxt.ui.client.event.Listener;
29
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
31
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
30
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
32
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
31
import com.extjs.gxt.ui.client.event.SelectionListener;
33
import com.extjs.gxt.ui.client.event.SelectionListener;
32
import com.extjs.gxt.ui.client.store.GroupingStore;
34
import com.extjs.gxt.ui.client.store.GroupingStore;
33
import com.extjs.gxt.ui.client.store.ListStore;
35
import com.extjs.gxt.ui.client.store.ListStore;
34
import com.extjs.gxt.ui.client.widget.ContentPanel;
36
import com.extjs.gxt.ui.client.widget.ContentPanel;
35
import com.extjs.gxt.ui.client.widget.Info;
37
import com.extjs.gxt.ui.client.widget.Info;
36
import com.extjs.gxt.ui.client.widget.button.Button;
38
import com.extjs.gxt.ui.client.widget.button.Button;
37
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
39
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
38
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
40
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
39
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
41
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
40
import com.extjs.gxt.ui.client.widget.grid.Grid;
42
import com.extjs.gxt.ui.client.widget.grid.Grid;
41
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
43
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
42
import com.extjs.gxt.ui.client.widget.grid.GridGroupRenderer;
44
import com.extjs.gxt.ui.client.widget.grid.GridGroupRenderer;
43
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
45
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
44
import com.extjs.gxt.ui.client.widget.grid.GroupColumnData;
46
import com.extjs.gxt.ui.client.widget.grid.GroupColumnData;
45
import com.extjs.gxt.ui.client.widget.grid.GroupingView;
47
import com.extjs.gxt.ui.client.widget.grid.GroupingView;
46
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
48
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
47
import com.extjs.gxt.ui.client.widget.menu.Menu;
49
import com.extjs.gxt.ui.client.widget.menu.Menu;
48
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
50
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
49
import com.google.gwt.core.client.GWT;
51
import com.google.gwt.core.client.GWT;
50
 
52
 
51
public class CommentaireListeVue extends ContentPanel implements Rafraichissable {
53
public class CommentaireListeVue extends ContentPanel implements Rafraichissable {
52
 
54
 
53
	private Mediateur mediateur = null;
55
	private Mediateur mediateur = null;
54
	private Constantes i18nC = null;
56
	private Constantes i18nC = null;
55
 
57
 
56
	private Grid<Commentaire> grille = null;
58
	private Grid<Commentaire> grille = null;
57
	private GroupingStore<Commentaire> store = null;
59
	private GroupingStore<Commentaire> store = null;
58
	private ColumnModel modeleDesColonnes = null;
60
	private ColumnModel modeleDesColonnes = null;
59
	
61
	
60
	private Button ajouter;
62
	private Button ajouter;
61
	private Button modifier;
63
	private Button modifier;
62
	private Button supprimer;
64
	private Button supprimer;
-
 
65
	
-
 
66
	private BarrePaginationVue pagination = null;
63
	
67
	
64
	private CommentaireListe commentaires = null;
68
	private CommentaireListe commentaires = null;
65
	protected boolean commentairesChargementOk = false;
69
	protected boolean commentairesChargementOk = false;
66
	
70
	
67
	protected HashMap<String, Valeur> ontologie = null;
71
	protected HashMap<String, Valeur> ontologie = null;
68
	protected boolean ontologieChargementOk = false;
72
	protected boolean ontologieChargementOk = false;
69
	
73
	
70
	public CommentaireListeVue(Mediateur mediateurCourant) {
74
	public CommentaireListeVue(Mediateur mediateurCourant) {
71
		mediateur = mediateurCourant;
75
		mediateur = mediateurCourant;
72
		i18nC = Mediateur.i18nC;
76
		i18nC = Mediateur.i18nC;
73
		
77
		
74
		setLayout(new FitLayout());
78
		setLayout(new FitLayout());
75
		setHeading(i18nC.menuCommentaire());
79
		setHeading(i18nC.menuCommentaire());
76
		
80
		
77
		// Gestion de l'ontologie
81
		// Gestion de l'ontologie
78
		ontologie = new HashMap<String, Valeur>();
82
		ontologie = new HashMap<String, Valeur>();
79
		mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection");
83
		mediateur.obtenirListeValeurEtRafraichir(this, "typeCommentaireCollection");
80
		
84
		
81
		// Gestion de la barre d'outil
85
		// Gestion de la barre d'outil
82
		ToolBar toolBar = new ToolBar();
86
		ToolBar toolBar = new ToolBar();
83
		ajouter = new Button(i18nC.ajouter());
87
		ajouter = new Button(i18nC.ajouter());
84
		ajouter.setIcon(Images.ICONES.ajouter());
88
		ajouter.setIcon(Images.ICONES.ajouter());
85
		ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() {  
89
		ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() {  
86
			public void componentSelected(ButtonEvent be) {  
90
			public void componentSelected(ButtonEvent be) {  
87
				mediateur.clicAjouterCommentaire();
91
				mediateur.clicAjouterCommentaire();
88
			}  
92
			}  
89
		});
93
		});
90
		toolBar.add(ajouter);
94
		toolBar.add(ajouter);
91
 
95
 
92
		modifier = new Button(i18nC.modifier());
96
		modifier = new Button(i18nC.modifier());
93
		modifier.setIcon(Images.ICONES.formModifier());
97
		modifier.setIcon(Images.ICONES.formModifier());
94
		modifier.addSelectionListener(new SelectionListener<ButtonEvent>() {  
98
		modifier.addSelectionListener(new SelectionListener<ButtonEvent>() {  
95
			public void componentSelected(ButtonEvent be) { 
99
			public void componentSelected(ButtonEvent be) { 
96
				mediateur.clicModifierCommentaire(grille.getSelectionModel().getSelectedItems());
100
				mediateur.clicModifierCommentaire(grille.getSelectionModel().getSelectedItems());
97
			}  
101
			}  
98
		});
102
		});
99
		toolBar.add(modifier);
103
		toolBar.add(modifier);
100
		
104
		
101
		supprimer = new Button(i18nC.supprimer());
105
		supprimer = new Button(i18nC.supprimer());
102
		supprimer.setIcon(Images.ICONES.supprimer());
106
		supprimer.setIcon(Images.ICONES.supprimer());
103
		supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() {  
107
		supprimer.addSelectionListener(new SelectionListener<ButtonEvent>() {  
104
			public void componentSelected(ButtonEvent be) { 
108
			public void componentSelected(ButtonEvent be) { 
105
				mediateur.clicSupprimerCommentaire(grille.getSelectionModel().getSelectedItems());
109
				mediateur.clicSupprimerCommentaire(grille.getSelectionModel().getSelectedItems());
106
			}  
110
			}  
107
		});
111
		});
108
		toolBar.add(supprimer);
112
		toolBar.add(supprimer);
109
		setTopComponent(toolBar);
113
		setTopComponent(toolBar);
110
 
114
 
111
		// Gestion de la grille
115
		// Gestion de la grille
112
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
116
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
113
		// ATTENTION : les noms des colonnes doivent correspondre aux noms variables de la classe utilisée dans la liste
117
		// ATTENTION : les noms des colonnes doivent correspondre aux noms variables de la classe utilisée dans la liste
114
		colonnes.add(new ColumnConfig("_collection_nom_", i18nC.commentaireCollection(), 150));
118
		colonnes.add(new ColumnConfig("_collection_nom_", i18nC.commentaireCollection(), 150));
115
		colonnes.add(creerColonneType());
119
		colonnes.add(creerColonneType());
116
		colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
120
		colonnes.add(new ColumnConfig("_titre_", i18nC.commentaireTitre(), 150));
117
		colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 30));
121
		colonnes.add(new ColumnConfig("_ponderation_", i18nC.commentairePonderation(), 30));
118
		colonnes.add(creerColonneAcces());
122
		colonnes.add(creerColonneAcces());
119
		modeleDesColonnes = new ColumnModel(colonnes);
123
		modeleDesColonnes = new ColumnModel(colonnes);
120
 
124
 
121
		GridSelectionModel<Commentaire> modeleDeSelection = new GridSelectionModel<Commentaire>();
125
		GridSelectionModel<Commentaire> modeleDeSelection = new GridSelectionModel<Commentaire>();
122
		modeleDeSelection.addSelectionChangedListener(new SelectionChangedListener<Commentaire>() {
126
		modeleDeSelection.addSelectionChangedListener(new SelectionChangedListener<Commentaire>() {
123
			public void selectionChanged(SelectionChangedEvent<Commentaire> event) {
127
			public void selectionChanged(SelectionChangedEvent<Commentaire> event) {
124
				Commentaire commentaire = (Commentaire) event.getSelectedItem();
128
				Commentaire commentaire = (Commentaire) event.getSelectedItem();
125
				clicListe(commentaire);
129
				clicListe(commentaire);
126
			}
130
			}
127
		});
131
		});
128
		
132
		
129
		store = new GroupingStore<Commentaire>();
133
		store = new GroupingStore<Commentaire>();
130
		//store.sort("cmhl_date_modification", SortDir.ASC);
134
		//store.sort("cmhl_date_modification", SortDir.ASC);
131
		store.groupBy("_collection_nom_");
135
		store.groupBy("_collection_nom_");
132
		store.setRemoteGroup(false);
136
		store.setRemoteGroup(false);
133
		
137
		
134
		GroupingView vueDeGroupe = new GroupingView();
138
		GroupingView vueDeGroupe = new GroupingView();
135
		vueDeGroupe.setShowGroupedColumn(false);
139
		vueDeGroupe.setShowGroupedColumn(false);
136
		vueDeGroupe.setForceFit(true);
140
		vueDeGroupe.setForceFit(true);
137
		vueDeGroupe.setAutoFill(true);
141
		vueDeGroupe.setAutoFill(true);
138
		vueDeGroupe.setGroupRenderer(new GridGroupRenderer() {
142
		vueDeGroupe.setGroupRenderer(new GridGroupRenderer() {
139
			@Override
143
			@Override
140
			public String render(GroupColumnData data) {
144
			public String render(GroupColumnData data) {
141
				String f = modeleDesColonnes.getColumnById(data.field).getHeader();
145
				String f = modeleDesColonnes.getColumnById(data.field).getHeader();
142
				String l = data.models.size() == 1 ? i18nC.commentaireSingulier() : i18nC.commentairePluriel();
146
				String l = data.models.size() == 1 ? i18nC.commentaireSingulier() : i18nC.commentairePluriel();
143
				return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
147
				return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
144
			}
148
			}
145
		});
149
		});
146
		
150
		
147
		grille = new Grid<Commentaire>(store, modeleDesColonnes);
151
		grille = new Grid<Commentaire>(store, modeleDesColonnes);
148
		grille.setView(vueDeGroupe);
152
		grille.setView(vueDeGroupe);
149
		grille.setWidth("100%");
153
		grille.setWidth("100%");
150
		grille.setAutoExpandColumn("_titre_");
154
		grille.setAutoExpandColumn("_titre_");
151
		grille.setSelectionModel(modeleDeSelection);
155
		grille.setSelectionModel(modeleDeSelection);
152
		grille.addListener(Events.ViewReady, new Listener<BaseEvent>() {
156
		grille.addListener(Events.ViewReady, new Listener<BaseEvent>() {
153
			@Override
157
			@Override
154
			public void handleEvent(BaseEvent be) {
158
			public void handleEvent(BaseEvent be) {
155
				grille.getSelectionModel().select(0, false);
159
				grille.getSelectionModel().select(0, false);
156
			}
160
			}
157
		});
161
		});
158
		grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>(){
162
		grille.addListener(Events.OnDoubleClick, new Listener<BaseEvent>(){
159
			@Override
163
			@Override
160
			public void handleEvent(BaseEvent be) {
164
			public void handleEvent(BaseEvent be) {
161
				modifier.fireEvent(Events.Select);
165
				modifier.fireEvent(Events.Select);
162
			}
166
			}
163
		});
167
		});
164
		add(grille);
168
		add(grille);
-
 
169
		
-
 
170
		// Définition de la barre de pagination
-
 
171
		pagination = new BarrePaginationVue(new StructureListe(), mediateur);
-
 
172
		setBottomComponent(pagination);
165
	}
173
	}
166
	
174
	
167
	private ColumnConfig creerColonneType() {
175
	private ColumnConfig creerColonneType() {
168
		GridCellRenderer<Commentaire> typeRendu = new GridCellRenderer<Commentaire>() {
176
		GridCellRenderer<Commentaire> typeRendu = new GridCellRenderer<Commentaire>() {
169
			@Override
177
			@Override
170
			public String render(Commentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Commentaire> store, Grid<Commentaire> grid) {
178
			public String render(Commentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Commentaire> store, Grid<Commentaire> grid) {
171
				// FIXME : créer une classe Ontologie qui mixe le code ci-dessous et tout ce qui concerne l'ontologie dans DetailVue
179
				// FIXME : créer une classe Ontologie qui mixe le code ci-dessous et tout ce qui concerne l'ontologie dans DetailVue
172
				String type = "";
180
				String type = "";
173
				String[] valeurs = model.getCollectionACommentaire().getType().split(aDonnee.SEPARATEUR_VALEURS);
181
				String[] valeurs = model.getCollectionACommentaire().getType().split(aDonnee.SEPARATEUR_VALEURS);
174
				int nbreValeurs = valeurs.length;
182
				int nbreValeurs = valeurs.length;
175
				int indexAvtDernier = nbreValeurs - 1;
183
				int indexAvtDernier = nbreValeurs - 1;
176
				if (nbreValeurs > 0)	{
184
				if (nbreValeurs > 0)	{
177
					for (int i = 0; i < nbreValeurs; i++)	{
185
					for (int i = 0; i < nbreValeurs; i++)	{
178
						String valeur = valeurs[i];
186
						String valeur = valeurs[i];
179
						if (valeur.matches("^[0-9]+$"))	{
187
						if (valeur.matches("^[0-9]+$"))	{
180
							if (valeur.equals("0")) {
188
							if (valeur.equals("0")) {
181
								valeur = "";
189
								valeur = "";
182
							} else if (ontologie != null) {
190
							} else if (ontologie != null) {
183
								Valeur valeurOntologie = ontologie.get(valeur);
191
								Valeur valeurOntologie = ontologie.get(valeur);
184
								if (valeurOntologie != null) {
192
								if (valeurOntologie != null) {
185
									valeur = valeurOntologie.getNom();
193
									valeur = valeurOntologie.getNom();
186
								}
194
								}
187
							}
195
							}
188
						}
196
						}
189
						if (i != indexAvtDernier) {
197
						if (i != indexAvtDernier) {
190
							type += valeur+", ";
198
							type += valeur+", ";
191
						} else {
199
						} else {
192
							type += valeur;
200
							type += valeur;
193
						}
201
						}
194
					}
202
					}
195
				}
203
				}
196
				model.set("_type_", type);
204
				model.set("_type_", type);
197
				return type;
205
				return type;
198
			}
206
			}
199
		};
207
		};
200
		ColumnConfig typeColonne = new ColumnConfig("_type_", i18nC.commentaireType(), 100);
208
		ColumnConfig typeColonne = new ColumnConfig("_type_", i18nC.commentaireType(), 100);
201
		typeColonne.setRenderer(typeRendu);
209
		typeColonne.setRenderer(typeRendu);
202
		return typeColonne;
210
		return typeColonne;
203
	}
211
	}
204
	
212
	
205
	private ColumnConfig creerColonneAcces() {
213
	private ColumnConfig creerColonneAcces() {
206
		GridCellRenderer<Commentaire> accesRendu = new GridCellRenderer<Commentaire>() {
214
		GridCellRenderer<Commentaire> accesRendu = new GridCellRenderer<Commentaire>() {
207
			@Override
215
			@Override
208
			public String render(Commentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Commentaire> store, Grid<Commentaire> grid) {
216
			public String render(Commentaire model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<Commentaire> store, Grid<Commentaire> grid) {
209
				String acces = (model.etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
217
				String acces = (model.etrePublic() ? i18nC.donneePublic() : i18nC.donneePrivee());
210
				model.set("_public_", acces);
218
				model.set("_public_", acces);
211
				return acces;
219
				return acces;
212
			}
220
			}
213
		};
221
		};
214
		ColumnConfig accesColonne = new ColumnConfig("_public_", i18nC.commentairePublic(), 30);
222
		ColumnConfig accesColonne = new ColumnConfig("_public_", i18nC.commentairePublic(), 30);
215
		accesColonne.setRenderer(accesRendu);
223
		accesColonne.setRenderer(accesRendu);
216
		return accesColonne;
224
		return accesColonne;
217
	}
225
	}
218
	
226
	
219
	private void clicListe(Commentaire commentaire) {
227
	private void clicListe(Commentaire commentaire) {
220
		if (commentaire != null && store.getCount() > 0) {
228
		if (commentaire != null && store.getCount() > 0) {
221
			mediateur.clicListeCommentaire(commentaire);
229
			mediateur.clicListeCommentaire(commentaire);
222
		}
230
		}
223
	}
231
	}
224
 
232
 
225
	private void gererEtatActivationBouton() {
233
	private void gererEtatActivationBouton() {
226
		int nbreElementDuMagazin = store.getCount();
234
		int nbreElementDuMagazin = store.getCount();
227
		ajouter.enable();
235
		ajouter.enable();
228
		if (nbreElementDuMagazin <= 0) {
236
		if (nbreElementDuMagazin <= 0) {
229
			supprimer.disable();
237
			supprimer.disable();
230
			modifier.disable();
238
			modifier.disable();
231
		} else if (nbreElementDuMagazin > 0) {
239
		} else if (nbreElementDuMagazin > 0) {
232
			modifier.enable();
240
			modifier.enable();
233
			if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) {
241
			if (((Utilisateur) Registry.get(RegistreId.UTILISATEUR_COURANT)).isIdentifie()) {
234
				supprimer.enable();
242
				supprimer.enable();
235
			}
243
			}
236
		}
244
		}
237
	}
245
	}
238
	
246
	
239
	public void rafraichir(Object nouvellesDonnees) {
247
	public void rafraichir(Object nouvellesDonnees) {
240
		if (nouvellesDonnees instanceof CommentaireListe) {
248
		if (nouvellesDonnees instanceof CommentaireListe) {
241
			commentaires = (CommentaireListe) nouvellesDonnees;
249
			commentaires = (CommentaireListe) nouvellesDonnees;
-
 
250
			
-
 
251
			pagination.setlistePaginable(commentaires);
-
 
252
			pagination.rafraichir(commentaires.getPageTable());
-
 
253
			
242
			commentairesChargementOk = true;
254
			commentairesChargementOk = true;
243
		} else if (nouvellesDonnees instanceof ValeurListe) {
255
		} else if (nouvellesDonnees instanceof ValeurListe) {
244
			ValeurListe listeValeursReceptionnee = (ValeurListe) nouvellesDonnees;
256
			ValeurListe listeValeursReceptionnee = (ValeurListe) nouvellesDonnees;
245
			Iterator<String> it = listeValeursReceptionnee.keySet().iterator();
257
			Iterator<String> it = listeValeursReceptionnee.keySet().iterator();
246
			while (it.hasNext()) {
258
			while (it.hasNext()) {
247
				String cle = it.next();
259
				String cle = it.next();
248
				Valeur valeur = listeValeursReceptionnee.get(cle);
260
				Valeur valeur = listeValeursReceptionnee.get(cle);
249
				if (valeur != null) {
261
				if (valeur != null) {
250
					ontologie.put(cle, valeur);
262
					ontologie.put(cle, valeur);
251
				}
263
				}
252
			}
264
			}
253
			ontologieChargementOk = true;
265
			ontologieChargementOk = true;
254
		} else if (nouvellesDonnees instanceof Information) {
266
		} else if (nouvellesDonnees instanceof Information) {
255
			Information info = (Information) nouvellesDonnees;
267
			Information info = (Information) nouvellesDonnees;
256
			if (info.getType().equals("maj_utilisateur")) {
268
			if (info.getType().equals("maj_utilisateur")) {
257
				gererEtatActivationBouton();
269
				gererEtatActivationBouton();
258
			} else if (info.getType().equals("suppression_commentaire")) {
270
			} else if (info.getType().equals("suppression_commentaire")) {
259
				String message = info.toString();
271
				String message = info.toString();
260
				if (info.getDonnee(0) != null) {
272
				if (info.getDonnee(0) != null) {
261
					message = (String) info.getDonnee(0);
273
					message = (String) info.getDonnee(0);
262
				}
274
				}
263
				Info.display(i18nC.commentaireTitreSuppression(), message);
275
				Info.display(i18nC.commentaireTitreSuppression(), message);
264
				supprimerCommentairesSelectionnees();
276
				supprimerCommentairesSelectionnees();
265
				gererEtatActivationBouton();
277
				gererEtatActivationBouton();
266
			}
278
			}
267
		} else {
279
		} else {
268
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
280
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
269
		}
281
		}
270
		
282
		
271
		if (etrePretAAfficherListe()) {
283
		if (etrePretAAfficherListe()) {
272
			chargerListe();
284
			chargerListe();
273
		}
285
		}
274
		layout();
286
		layout();
275
	}
287
	}
276
	
288
	
277
	private boolean etrePretAAfficherListe() {
289
	private boolean etrePretAAfficherListe() {
278
		boolean ok = false;
290
		boolean ok = false;
279
		if (commentairesChargementOk && ontologieChargementOk) {
291
		if (commentairesChargementOk && ontologieChargementOk) {
280
			ok = true;
292
			ok = true;
281
		}
293
		}
282
		return ok;
294
		return ok;
283
	}
295
	}
284
	
296
	
285
	private void chargerListe() {
297
	private void chargerListe() {
286
		if (commentaires != null) {
298
		if (commentaires != null) {
287
			List<Commentaire> liste = commentaires.toList();
299
			List<Commentaire> liste = commentaires.toList();
288
			store.removeAll();
300
			store.removeAll();
289
			store.add(liste);
301
			store.add(liste);
290
			
302
			
291
			mediateur.actualiserPanneauCentral();
303
			mediateur.actualiserPanneauCentral();
292
		}
304
		}
293
	}
305
	}
294
	
306
	
295
	private void supprimerCommentairesSelectionnees() {
307
	private void supprimerCommentairesSelectionnees() {
296
		// FIXME : le code ci-dessous ne marche pas avec la GroupingView, nous utilisons le rechargement du menu à la place
308
		// FIXME : le code ci-dessous ne marche pas avec la GroupingView, nous utilisons le rechargement du menu à la place
297
		/*
309
		/*
298
		List<Commentaire> commentairesSelectionnees = grille.getSelectionModel().getSelectedItems();
310
		List<Commentaire> commentairesSelectionnees = grille.getSelectionModel().getSelectedItems();
299
		Iterator<Commentaire> it = commentairesSelectionnees.iterator();
311
		Iterator<Commentaire> it = commentairesSelectionnees.iterator();
300
		while (it.hasNext()) {
312
		while (it.hasNext()) {
301
			Commentaire commentaireASupprimer = it.next();
313
			Commentaire commentaireASupprimer = it.next();
302
			Debug.log(commentaireASupprimer.getId());
314
			Debug.log(commentaireASupprimer.getId());
303
			grille.getStore().remove(commentaireASupprimer);
315
			grille.getStore().remove(commentaireASupprimer);
304
		}
316
		}
305
		layout(true);
317
		layout(true);
306
		*/
318
		*/
307
		mediateur.clicMenu(MenuApplicationId.COMMENTAIRE);
319
		mediateur.clicMenu(MenuApplicationId.COMMENTAIRE);
308
	}
320
	}
309
}
321
}