Subversion Repositories eFlore/Applications.coel

Rev

Rev 832 | Rev 854 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
806 jpm 1
package org.tela_botanica.client.vues;
2
 
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
 
7
import org.tela_botanica.client.Mediateur;
839 jpm 8
import org.tela_botanica.client.composants.ChampCaseACocher;
806 jpm 9
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
831 jpm 11
import org.tela_botanica.client.modeles.InterneValeur;
12
import org.tela_botanica.client.modeles.UniteBase;
806 jpm 13
import org.tela_botanica.client.modeles.UniteRangement;
14
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.ValeurListe;
16
 
831 jpm 17
import com.extjs.gxt.ui.client.event.ButtonEvent;
839 jpm 18
import com.extjs.gxt.ui.client.event.EventType;
19
import com.extjs.gxt.ui.client.event.Events;
806 jpm 20
import com.extjs.gxt.ui.client.event.Listener;
831 jpm 21
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
22
import com.extjs.gxt.ui.client.event.SelectionListener;
839 jpm 23
import com.extjs.gxt.ui.client.event.SliderEvent;
806 jpm 24
import com.extjs.gxt.ui.client.store.ListStore;
25
import com.extjs.gxt.ui.client.widget.ContentPanel;
831 jpm 26
import com.extjs.gxt.ui.client.widget.Info;
27
import com.extjs.gxt.ui.client.widget.MessageBox;
839 jpm 28
import com.extjs.gxt.ui.client.widget.Slider;
29
import com.extjs.gxt.ui.client.widget.Text;
831 jpm 30
import com.extjs.gxt.ui.client.widget.button.Button;
31
import com.extjs.gxt.ui.client.widget.form.ComboBox;
839 jpm 32
import com.extjs.gxt.ui.client.widget.form.LabelField;
831 jpm 33
import com.extjs.gxt.ui.client.widget.form.NumberField;
839 jpm 34
import com.extjs.gxt.ui.client.widget.form.SliderField;
831 jpm 35
import com.extjs.gxt.ui.client.widget.form.TextField;
36
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
37
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
38
import com.extjs.gxt.ui.client.widget.grid.AggregationRowConfig;
39
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
806 jpm 40
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
41
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
831 jpm 42
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
806 jpm 43
import com.extjs.gxt.ui.client.widget.grid.Grid;
44
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
831 jpm 45
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
46
import com.extjs.gxt.ui.client.widget.grid.SummaryType;
806 jpm 47
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
831 jpm 48
import com.extjs.gxt.ui.client.widget.layout.FormData;
49
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
50
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
51
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
806 jpm 52
import com.google.gwt.core.client.GWT;
831 jpm 53
import com.google.gwt.i18n.client.NumberFormat;
806 jpm 54
 
55
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
56
 
57
	private Grid<UniteRangement> uniteRangementGrille = null;
831 jpm 58
	private ComboBox<Valeur> etatUniteRangementCombo = null;
59
	private Grid<UniteBase> uniteBaseGrille = null;
839 jpm 60
	private ChampCaseACocher typePapierConservationChp = null;
61
	private ChampCaseACocher methodeConservationChp = null;
62
	private SliderField specimenFixationPourcentChp = null;
63
	private SliderField etiquetteFixationPourcentChp = null;
831 jpm 64
 
806 jpm 65
	public CollectionFormDescription(Formulaire formulaireCourrant) {
66
		initialiserOnglet(formulaireCourrant);
67
		setId("description");
68
		setText(Mediateur.i18nC.collectionDescription());
831 jpm 69
 
70
		FormLayout formulaireLayout = (FormLayout) this.getLayout();
71
		formulaireLayout.setLabelAlign(LabelAlign.LEFT);
72
		formulaireLayout.setLabelWidth(300);
806 jpm 73
 
831 jpm 74
		creerUniteRangement();
75
		creerUniteBase();
76
 
839 jpm 77
		typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
78
		add(typePapierConservationChp);
79
 
80
		methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);
81
		add(methodeConservationChp);
82
 
83
		Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());
84
		add(fixationPoucentLabel);
85
 
86
		Slider specimenFixationPourcentSlider = new Slider();
87
		specimenFixationPourcentSlider.setMinValue(0);
88
		specimenFixationPourcentSlider.setMaxValue(100);
89
		specimenFixationPourcentSlider.setValue(0);
90
		specimenFixationPourcentSlider.setIncrement(1);
91
		specimenFixationPourcentSlider.setMessage("{0} "+i18nC.specimenFixationPourcent());
92
		specimenFixationPourcentSlider.addListener(Events.Change, new Listener<SliderEvent>() {
93
			public void handleEvent(SliderEvent be) {
94
				int pourcent = ((Slider) be.getComponent()).getValue();
95
				specimenFixationPourcentChp.setFieldLabel(i18nC.specimenFixationPourcent()+" ("+pourcent+"%) ");
96
			}
97
		});
98
		specimenFixationPourcentChp = new SliderField(specimenFixationPourcentSlider);
99
		specimenFixationPourcentChp.setFieldLabel(i18nC.specimenFixationPourcent());
100
		add(specimenFixationPourcentChp, new FormData(200, 0));
101
 
102
		Slider etiquetteFixationPourcentSlider = new Slider();
103
		etiquetteFixationPourcentSlider.setMinValue(0);
104
		etiquetteFixationPourcentSlider.setMaxValue(100);
105
		etiquetteFixationPourcentSlider.setValue(0);
106
		etiquetteFixationPourcentSlider.setIncrement(1);
107
		etiquetteFixationPourcentSlider.setMessage("{0} "+i18nC.etiquetteFixationPourcent());
108
		etiquetteFixationPourcentSlider.addListener(Events.Change, new Listener<SliderEvent>() {
109
			public void handleEvent(SliderEvent be) {
110
				int pourcent = ((Slider) be.getComponent()).getValue();
111
				etiquetteFixationPourcentChp.setFieldLabel(i18nC.etiquetteFixationPourcent()+" ("+pourcent+"%) ");
112
			}
113
		});
114
		etiquetteFixationPourcentChp = new SliderField(etiquetteFixationPourcentSlider);
115
		etiquetteFixationPourcentChp.setFieldLabel(i18nC.etiquetteFixationPourcent());
116
		add(etiquetteFixationPourcentChp, new FormData(200, 0));
117
 
118
		typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
119
		add(typePapierConservationChp);
120
 
121
		layout();
806 jpm 122
	}
123
 
124
 
831 jpm 125
	private void creerUniteRangement() {
126
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre());
127
		uniteRangementGrille  = creerGrilleUniteRangement();
806 jpm 128
		panneauGrille.add(uniteRangementGrille);
831 jpm 129
		ToolBar barreOutils = creerBarreOutilsGrilleUniteRangement();
130
		panneauGrille.setTopComponent(barreOutils);
806 jpm 131
		add(panneauGrille);
831 jpm 132
 
133
		ListStore<Valeur> etatUniteRangementStore = new ListStore<Valeur>();
134
		etatUniteRangementCombo  = new ComboBox<Valeur>();
135
		etatUniteRangementCombo.setFieldLabel(i18nC.collectionUniteRangementEtatGeneral());
136
		etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo());
137
		etatUniteRangementCombo.setForceSelection(true);
138
		etatUniteRangementCombo.setTriggerAction(TriggerAction.ALL);
139
		etatUniteRangementCombo.setDisplayField("nom");
140
 
141
		etatUniteRangementCombo.setStore(etatUniteRangementStore);
142
		etatUniteRangementCombo.setEditable(false);
143
		add(etatUniteRangementCombo, new FormData(300, 0));
144
		mediateur.obtenirListeValeurEtRafraichir(this, "etatUniteRangement");
806 jpm 145
	}
831 jpm 146
 
147
	private ContentPanel creerPanneauContenantGrille(String titre) {
806 jpm 148
		ContentPanel panneau = new ContentPanel();
831 jpm 149
		panneau.setHeading(titre);
806 jpm 150
		panneau.setIcon(Images.ICONES.table());
151
		panneau.setLayout(new FitLayout());
152
		panneau.setFrame(true);
153
 
154
		return panneau;
155
	}
156
 
831 jpm 157
	private Grid<UniteRangement> creerGrilleUniteRangement() {
806 jpm 158
		ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
159
 
160
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
831 jpm 161
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
806 jpm 162
 
831 jpm 163
		NumberField champNombre = new NumberField();
164
		champNombre.setFormat(NumberFormat.getFormat("#"));
165
		CellEditor editeurNombre = new CellEditor(champNombre);
166
 
167
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
168
		nombreColonne.setEditor(editeurNombre);
169
		colonnes.add(nombreColonne);
170
 
171
		ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
172
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
173
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
174
 
175
		final ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
176
		precisionCombo.setForceSelection(true);
177
		precisionCombo.setTriggerAction(TriggerAction.ALL);
178
		precisionCombo.setDisplayField("nom");
179
		precisionCombo.setStore(precisionStore);
180
		precisionCombo.setEditable(false);
181
 
182
		CellEditor editeurPrecision = new CellEditor(precisionCombo) {
183
			@Override
184
			public Object preProcessValue(Object valeur) {
185
				InterneValeur retour = null;
186
				if (valeur != null ) {
187
					if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
188
						retour = precisionCombo.getStore().findModel("nom", valeur.toString());
189
					} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
190
						retour = precisionCombo.getStore().findModel("abr", valeur.toString());
191
					}
192
				}
193
				return retour;
194
			}
195
 
196
			@Override
197
			public Object postProcessValue(Object valeur) {
198
				String retour = null;
199
				if (valeur != null ) {
200
					if (valeur instanceof InterneValeur) {
201
						InterneValeur valeurInterne = (InterneValeur) valeur;
202
						retour = valeurInterne.getNom();
203
					}
204
				}
205
				return retour;
206
			}
207
		};
208
 
209
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
210
		precisionColonne.setEditor(editeurPrecision);
211
		colonnes.add(precisionColonne);
212
 
213
		TextField<String> formatChp = new TextField<String>();
214
		formatChp.setAllowBlank(false);
215
 
216
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
217
		formatColonne.setEditor(new CellEditor(formatChp));
218
		colonnes.add(formatColonne);
219
 
806 jpm 220
		GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
221
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
222
 
831 jpm 223
		EditorGrid<UniteRangement> grilleUniteRangement = new EditorGrid<UniteRangement>(storeGrille, modeleDeColonnes);
806 jpm 224
		grilleUniteRangement.setHeight(300);
225
		grilleUniteRangement.setBorders(true);
226
		grilleUniteRangement.setSelectionModel(modeleDeSelection);
227
		grilleUniteRangement.getView().setForceFit(true);
228
		grilleUniteRangement.getView().setAutoFill(true);
229
		grilleUniteRangement.setAutoExpandColumn("type");
230
		grilleUniteRangement.setStripeRows(true);
231
		grilleUniteRangement.setTrackMouseOver(true);
232
 
233
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteRangement");
234
 
235
		return grilleUniteRangement;
236
	}
237
 
831 jpm 238
	private ToolBar creerBarreOutilsGrilleUniteRangement() {
239
		ToolBar barreOutils = new ToolBar();
240
 
241
		Button ajouterBouton = creerBoutonAjouterUniteRangement();
242
		barreOutils.add(ajouterBouton);
243
 
244
		barreOutils.add(new SeparatorToolItem());
245
 
246
		Button supprimerBouton = creerBoutonSupprimerUniteRangement();
247
		barreOutils.add(supprimerBouton);
248
 
249
		return barreOutils;
250
	}
251
 
252
	private Button creerBoutonAjouterUniteRangement() {
253
		Button bouton = new Button(i18nC.ajouter());
254
		bouton.setIcon(Images.ICONES.ajouter());
255
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
256
			@Override
257
			public void componentSelected(ButtonEvent ce) {
258
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteRangementSaisirType());
259
					box.addCallback(new Listener<MessageBoxEvent>() {
260
					public void handleEvent(MessageBoxEvent be) {
261
						final UniteRangement unite = new UniteRangement();
262
						unite.setType(be.getValue());
263
						unite.setTypeAutre(true);
264
						uniteRangementGrille.getStore().add(unite);
265
					}
266
				});
267
			}
268
		});
269
		return bouton;
270
	}
271
 
272
	private Button creerBoutonSupprimerUniteRangement() {
273
		Button bouton = new Button(i18nC.supprimer());
274
		bouton.setIcon(Images.ICONES.supprimer());
275
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
276
			@Override
277
			public void componentSelected(ButtonEvent ce) {
278
				UniteRangement uniteRangementSelectionnee = uniteRangementGrille.getSelectionModel().getSelectedItem();
279
				if (uniteRangementSelectionnee == null) {
280
					Info.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteRangement()));
281
				} else if (uniteRangementSelectionnee.getTypeAutre() == false) {
282
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteRangementAjoute());
283
				} else {
284
					uniteRangementGrille.getStore().remove(uniteRangementSelectionnee);
285
				}
286
			}
287
		});
288
		return bouton;
289
	}
290
 
291
	private void creerUniteBase() {
292
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre());
293
		uniteBaseGrille  = creerGrilleUniteBase();
294
		panneauGrille.add(uniteBaseGrille);
295
		ToolBar barreOutils = creerBarreOutilsGrilleUniteBase();
296
		panneauGrille.setTopComponent(barreOutils);
297
		add(panneauGrille);
298
	}
299
 
300
	private Grid<UniteBase> creerGrilleUniteBase() {
301
		ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
302
 
303
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
304
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
305
 
306
		NumberField champNombre = new NumberField();
307
		champNombre.setFormat(NumberFormat.getFormat("#"));
308
		CellEditor editeurNombre = new CellEditor(champNombre);
309
 
310
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
311
		nombreColonne.setEditor(editeurNombre);
312
		colonnes.add(nombreColonne);
313
 
314
		ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
315
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
316
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
317
 
318
		final ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
319
		precisionCombo.setForceSelection(true);
320
		precisionCombo.setTriggerAction(TriggerAction.ALL);
321
		precisionCombo.setDisplayField("nom");
322
		precisionCombo.setStore(precisionStore);
323
		precisionCombo.setEditable(false);
324
 
325
		CellEditor editeurPrecision = new CellEditor(precisionCombo) {
326
			@Override
327
			public Object preProcessValue(Object valeur) {
328
				InterneValeur retour = null;
329
				if (valeur != null ) {
330
					if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
331
						retour = precisionCombo.getStore().findModel("nom", valeur.toString());
332
					} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
333
						retour = precisionCombo.getStore().findModel("abr", valeur.toString());
334
					}
335
				}
336
				return retour;
337
			}
338
 
339
			@Override
340
			public Object postProcessValue(Object valeur) {
341
				String retour = null;
342
				if (valeur != null ) {
343
					if (valeur instanceof InterneValeur) {
344
						InterneValeur valeurInterne = (InterneValeur) valeur;
345
						retour = valeurInterne.getNom();
346
					}
347
				}
348
				return retour;
349
			}
350
		};
351
 
352
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
353
		precisionColonne.setEditor(editeurPrecision);
354
		colonnes.add(precisionColonne);
355
 
356
		TextField<String> formatChp = new TextField<String>();
357
		formatChp.setAllowBlank(false);
358
 
359
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
360
		formatColonne.setEditor(new CellEditor(formatChp));
361
		colonnes.add(formatColonne);
362
 
363
		ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
364
		partNombreColonne.setEditor(editeurNombre);
365
		colonnes.add(partNombreColonne);
366
 
367
		ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
368
		partPrecisionColonne.setEditor(editeurPrecision);
369
		colonnes.add(partPrecisionColonne);
370
 
371
		ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
372
		spNombreColonne.setEditor(editeurNombre);
373
		colonnes.add(spNombreColonne);
374
 
375
		ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
376
		spPrecisionColonne.setEditor(editeurPrecision);
377
		colonnes.add(spPrecisionColonne);
378
 
379
		GridSelectionModel<UniteBase> modeleDeSelection = new GridSelectionModel<UniteBase>();
380
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
381
		modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(i18nC.collectionUniteBase(), 1, 4));
382
		modeleDeColonnes.addHeaderGroup(0, 4, new HeaderGroupConfig(i18nC.collectionUniteBasePart(), 1, 2));
383
		modeleDeColonnes.addHeaderGroup(0, 6, new HeaderGroupConfig(i18nC.collectionUniteBaseSp(), 1, 2));
384
 
385
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
386
		total.setHtml("type", "TOTAL");
387
		total.setSummaryType("nombre", SummaryType.SUM);
388
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
389
		total.setSummaryType("nombre_part", SummaryType.SUM);
390
		total.setSummaryFormat("nombre_part", NumberFormat.getFormat("#"));
391
		total.setSummaryType("nombre_sp", SummaryType.SUM);
392
		total.setSummaryFormat("nombre_sp", NumberFormat.getFormat("#"));
393
		modeleDeColonnes.addAggregationRow(total);
394
 
395
		EditorGrid<UniteBase> grilleUniteBase = new EditorGrid<UniteBase>(storeGrille, modeleDeColonnes);
396
		grilleUniteBase.setHeight(200);
397
		grilleUniteBase.setBorders(true);
398
		grilleUniteBase.setSelectionModel(modeleDeSelection);
399
		grilleUniteBase.getView().setForceFit(true);
400
		grilleUniteBase.getView().setAutoFill(true);
401
		grilleUniteBase.setAutoExpandColumn("type");
402
		grilleUniteBase.setStripeRows(true);
403
		grilleUniteBase.setTrackMouseOver(true);
404
 
405
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteBase");
406
 
407
		return grilleUniteBase;
408
	}
409
 
410
	private ToolBar creerBarreOutilsGrilleUniteBase() {
411
		ToolBar barreOutils = new ToolBar();
412
 
413
		Button ajouterBouton = creerBoutonAjouterUniteBase();
414
		barreOutils.add(ajouterBouton);
415
 
416
		barreOutils.add(new SeparatorToolItem());
417
 
418
		Button supprimerBouton = creerBoutonSupprimerUniteBase();
419
		barreOutils.add(supprimerBouton);
420
 
421
		return barreOutils;
422
	}
423
 
424
	private Button creerBoutonAjouterUniteBase() {
425
		Button bouton = new Button(i18nC.ajouter());
426
		bouton.setIcon(Images.ICONES.ajouter());
427
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
428
			@Override
429
			public void componentSelected(ButtonEvent ce) {
430
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteBaseSaisirType());
431
					box.addCallback(new Listener<MessageBoxEvent>() {
432
					public void handleEvent(MessageBoxEvent be) {
433
						final UniteBase unite = new UniteBase();
434
						unite.setType(be.getValue());
435
						unite.setTypeAutre(true);
436
						uniteBaseGrille.getStore().add(unite);
437
					}
438
				});
439
			}
440
		});
441
		return bouton;
442
	}
443
 
444
	private Button creerBoutonSupprimerUniteBase() {
445
		Button bouton = new Button(i18nC.supprimer());
446
		bouton.setIcon(Images.ICONES.supprimer());
447
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
448
			@Override
449
			public void componentSelected(ButtonEvent ce) {
450
				UniteBase uniteBaseSelectionnee = uniteBaseGrille.getSelectionModel().getSelectedItem();
451
				if (uniteBaseSelectionnee == null) {
452
					Info.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteBase()));
453
				} else if (uniteBaseSelectionnee.getTypeAutre() == false) {
454
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteBaseAjoute());
455
				} else {
456
					uniteBaseGrille.getStore().remove(uniteBaseSelectionnee);
457
				}
458
			}
459
		});
460
		return bouton;
461
	}
462
 
806 jpm 463
	public void rafraichir(Object nouvellesDonnees) {
464
		if (nouvellesDonnees instanceof ValeurListe) {
465
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
466
			rafraichirValeurListe(listeValeurs);
467
		} else {
468
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
469
		}
470
	}
471
 
472
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
473
		if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {
474
			Iterator<String> it = listeValeurs.keySet().iterator();
475
			while (it.hasNext()) {
476
				Valeur valeur = listeValeurs.get(it.next());
477
				UniteRangement unite = new UniteRangement();
478
				unite.setType(valeur.getNom());
831 jpm 479
				unite.setTypeAutre(false);
806 jpm 480
				uniteRangementGrille.getStore().add(unite);
481
			}
831 jpm 482
		} else if (listeValeurs.getId().equals(config.getListeId("typeUniteBase"))) {
483
			Iterator<String> it = listeValeurs.keySet().iterator();
484
			while (it.hasNext()) {
485
				Valeur valeur = listeValeurs.get(it.next());
486
				UniteBase unite = new UniteBase();
487
				unite.setType(valeur.getNom());
488
				unite.setTypeAutre(false);
489
				uniteBaseGrille.getStore().add(unite);
490
			}
491
		} else if (listeValeurs.getId().equals(config.getListeId("etatUniteRangement"))) {
492
			Formulaire.rafraichirComboBox(listeValeurs, etatUniteRangementCombo, "id_valeur");
806 jpm 493
		} else {
494
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
495
		}
496
	}
497
}