Subversion Repositories eFlore/Applications.coel

Rev

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

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