Subversion Repositories eFlore/Applications.coel

Rev

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

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