Subversion Repositories eFlore/Applications.coel

Rev

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

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