Subversion Repositories eFlore/Applications.coel

Rev

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