Subversion Repositories eFlore/Applications.coel

Rev

Rev 859 | Rev 865 | 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;
857 jpm 10
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypes;
858 jpm 11
import org.tela_botanica.client.composants.ChampSliderPourcentage;
806 jpm 12
import org.tela_botanica.client.images.Images;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
831 jpm 14
import org.tela_botanica.client.modeles.InterneValeur;
15
import org.tela_botanica.client.modeles.UniteBase;
806 jpm 16
import org.tela_botanica.client.modeles.UniteRangement;
17
import org.tela_botanica.client.modeles.Valeur;
18
import org.tela_botanica.client.modeles.ValeurListe;
19
 
859 jpm 20
import com.extjs.gxt.ui.client.Style.Scroll;
831 jpm 21
import com.extjs.gxt.ui.client.event.ButtonEvent;
806 jpm 22
import com.extjs.gxt.ui.client.event.Listener;
831 jpm 23
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
24
import com.extjs.gxt.ui.client.event.SelectionListener;
806 jpm 25
import com.extjs.gxt.ui.client.store.ListStore;
26
import com.extjs.gxt.ui.client.widget.ContentPanel;
831 jpm 27
import com.extjs.gxt.ui.client.widget.Info;
28
import com.extjs.gxt.ui.client.widget.MessageBox;
839 jpm 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;
862 jpm 32
import com.extjs.gxt.ui.client.widget.form.FieldSet;
831 jpm 33
import com.extjs.gxt.ui.client.widget.form.NumberField;
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
 
858 jpm 56
	private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;
57
	private TextField<String> coteChp = null;
58
	private NumberField nbreEchantillonChp = null;
806 jpm 59
	private Grid<UniteRangement> uniteRangementGrille = null;
854 jpm 60
	private ChampComboBoxListeValeurs etatUniteRangementCombo = null;
831 jpm 61
	private Grid<UniteBase> uniteBaseGrille = null;
839 jpm 62
	private ChampCaseACocher typePapierConservationChp = null;
63
	private ChampCaseACocher methodeConservationChp = null;
858 jpm 64
	private ChampSliderPourcentage specimenFixationPourcentChp = null;
65
	private ChampSliderPourcentage etiquetteFixationPourcentChp = null;
854 jpm 66
	private ChampCaseACocher specimentMethodeFixationChp = null;
67
	private ChampCaseACocher etiquetteMethodeFixationSurSupportChp = null;
68
	private ChampCaseACocher etiquetteMethodeFixationSurSpecimenChp = null;
69
	private ChampCaseACocher typeEcritureChp = null;
70
	private ChampComboBoxListeValeurs traitementCombo = null;
71
	private ChampCaseACocher poisonTraitementChp = null;
72
	private ChampCaseACocher insecteTraitementChp = null;
73
	private ChampComboBoxListeValeurs etatGeneralCombo = null;
74
	private ChampComboBoxListeValeurs determinationCombo = null;
857 jpm 75
	private ChampMultiValeursMultiTypes specimenDegradationChp = null;
76
	private ChampMultiValeursMultiTypes presentationDegradationChp = null;
831 jpm 77
 
806 jpm 78
	public CollectionFormDescription(Formulaire formulaireCourrant) {
79
		initialiserOnglet(formulaireCourrant);
80
		setId("description");
81
		setText(Mediateur.i18nC.collectionDescription());
831 jpm 82
 
83
		FormLayout formulaireLayout = (FormLayout) this.getLayout();
84
		formulaireLayout.setLabelAlign(LabelAlign.LEFT);
85
		formulaireLayout.setLabelWidth(300);
806 jpm 86
 
862 jpm 87
		creerFieldsetPrecision();
88
		creerUniteRangement();
89
		creerUniteBase();
90
		creerFieldsetConservation();
91
		creerFieldsetEtiquette();
92
		creerFieldsetTraitement();
93
		creerFieldsetEtat();
94
 
95
		layout();
96
	}
97
 
98
	private void creerFieldsetPrecision() {
99
		FieldSet precisionFieldSet = new FieldSet();
100
		precisionFieldSet.setHeading("Précision");
101
		precisionFieldSet.setCollapsible(true);
102
		precisionFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
103
 
858 jpm 104
		typesCollectionBotaCombo = new ChampComboBoxListeValeurs(i18nC.typeCollectionBotanique(), "typeCollectionBota");
105
		typesCollectionBotaCombo.setTabIndex(tabIndex++);
862 jpm 106
		precisionFieldSet.add(typesCollectionBotaCombo, new FormData(250, 0));
858 jpm 107
 
108
		coteChp = new TextField<String>();
109
		coteChp.setTabIndex(tabIndex++);
110
		coteChp.setFieldLabel(i18nC.cote());
862 jpm 111
		precisionFieldSet.add(coteChp, new FormData(450, 0));
858 jpm 112
 
113
		nbreEchantillonChp = new NumberField();
114
		nbreEchantillonChp.setFieldLabel(i18nC.nbreEchantillon());
115
		nbreEchantillonChp.setToolTip(i18nC.nbreEchantillonInfo());
116
		nbreEchantillonChp.setFormat(NumberFormat.getFormat("#"));
862 jpm 117
		precisionFieldSet.add(nbreEchantillonChp);
858 jpm 118
 
862 jpm 119
		this.add(precisionFieldSet);
806 jpm 120
	}
121
 
831 jpm 122
	private void creerUniteRangement() {
123
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre());
862 jpm 124
 
831 jpm 125
		uniteRangementGrille  = creerGrilleUniteRangement();
858 jpm 126
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteRangement");
806 jpm 127
		panneauGrille.add(uniteRangementGrille);
862 jpm 128
 
831 jpm 129
		ToolBar barreOutils = creerBarreOutilsGrilleUniteRangement();
130
		panneauGrille.setTopComponent(barreOutils);
862 jpm 131
 
806 jpm 132
		add(panneauGrille);
133
	}
831 jpm 134
 
135
	private ContentPanel creerPanneauContenantGrille(String titre) {
806 jpm 136
		ContentPanel panneau = new ContentPanel();
831 jpm 137
		panneau.setHeading(titre);
806 jpm 138
		panneau.setIcon(Images.ICONES.table());
139
		panneau.setLayout(new FitLayout());
140
		panneau.setFrame(true);
859 jpm 141
		panneau.setScrollMode(Scroll.AUTO);
862 jpm 142
		panneau.setCollapsible(true);
143
		panneau.setStyleAttribute("margin", "5px 0");
806 jpm 144
 
145
		return panneau;
146
	}
147
 
831 jpm 148
	private Grid<UniteRangement> creerGrilleUniteRangement() {
806 jpm 149
		ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
150
 
151
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
831 jpm 152
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
806 jpm 153
 
831 jpm 154
		NumberField champNombre = new NumberField();
155
		champNombre.setFormat(NumberFormat.getFormat("#"));
156
		CellEditor editeurNombre = new CellEditor(champNombre);
157
 
158
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
159
		nombreColonne.setEditor(editeurNombre);
160
		colonnes.add(nombreColonne);
161
 
162
		ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
163
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
164
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
165
 
166
		final ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
167
		precisionCombo.setForceSelection(true);
168
		precisionCombo.setTriggerAction(TriggerAction.ALL);
169
		precisionCombo.setDisplayField("nom");
170
		precisionCombo.setStore(precisionStore);
171
		precisionCombo.setEditable(false);
172
 
173
		CellEditor editeurPrecision = new CellEditor(precisionCombo) {
174
			@Override
175
			public Object preProcessValue(Object valeur) {
176
				InterneValeur retour = null;
177
				if (valeur != null ) {
178
					if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
179
						retour = precisionCombo.getStore().findModel("nom", valeur.toString());
180
					} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
181
						retour = precisionCombo.getStore().findModel("abr", valeur.toString());
182
					}
183
				}
184
				return retour;
185
			}
186
 
187
			@Override
188
			public Object postProcessValue(Object valeur) {
189
				String retour = null;
190
				if (valeur != null ) {
191
					if (valeur instanceof InterneValeur) {
192
						InterneValeur valeurInterne = (InterneValeur) valeur;
193
						retour = valeurInterne.getNom();
194
					}
195
				}
196
				return retour;
197
			}
198
		};
199
 
200
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
201
		precisionColonne.setEditor(editeurPrecision);
202
		colonnes.add(precisionColonne);
203
 
204
		TextField<String> formatChp = new TextField<String>();
205
		formatChp.setAllowBlank(false);
206
 
207
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
208
		formatColonne.setEditor(new CellEditor(formatChp));
209
		colonnes.add(formatColonne);
210
 
806 jpm 211
		GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
212
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
213
 
831 jpm 214
		EditorGrid<UniteRangement> grilleUniteRangement = new EditorGrid<UniteRangement>(storeGrille, modeleDeColonnes);
806 jpm 215
		grilleUniteRangement.setHeight(300);
216
		grilleUniteRangement.setBorders(true);
217
		grilleUniteRangement.setSelectionModel(modeleDeSelection);
218
		grilleUniteRangement.getView().setForceFit(true);
219
		grilleUniteRangement.getView().setAutoFill(true);
220
		grilleUniteRangement.setAutoExpandColumn("type");
221
		grilleUniteRangement.setStripeRows(true);
222
		grilleUniteRangement.setTrackMouseOver(true);
223
 
224
		return grilleUniteRangement;
225
	}
226
 
831 jpm 227
	private ToolBar creerBarreOutilsGrilleUniteRangement() {
228
		ToolBar barreOutils = new ToolBar();
229
 
230
		Button ajouterBouton = creerBoutonAjouterUniteRangement();
231
		barreOutils.add(ajouterBouton);
232
 
233
		barreOutils.add(new SeparatorToolItem());
234
 
235
		Button supprimerBouton = creerBoutonSupprimerUniteRangement();
862 jpm 236
		barreOutils.add(supprimerBouton);
831 jpm 237
 
862 jpm 238
		barreOutils.add(new SeparatorToolItem());
239
		barreOutils.add(new Text(i18nC.collectionUniteRangementEtatGeneralLabel()));
240
		etatUniteRangementCombo = new ChampComboBoxListeValeurs("", "etat");
241
		etatUniteRangementCombo.setEmptyText(i18nC.collectionUniteRangementEtatGeneral());
242
		etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo());
243
		etatUniteRangementCombo.setTrie("id_valeur");
244
		etatUniteRangementCombo.setWidth(300);
245
		barreOutils.add(etatUniteRangementCombo);
246
 
831 jpm 247
		return barreOutils;
248
	}
249
 
250
	private Button creerBoutonAjouterUniteRangement() {
251
		Button bouton = new Button(i18nC.ajouter());
252
		bouton.setIcon(Images.ICONES.ajouter());
253
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
254
			@Override
255
			public void componentSelected(ButtonEvent ce) {
256
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteRangementSaisirType());
257
					box.addCallback(new Listener<MessageBoxEvent>() {
258
					public void handleEvent(MessageBoxEvent be) {
259
						final UniteRangement unite = new UniteRangement();
260
						unite.setType(be.getValue());
261
						unite.setTypeAutre(true);
262
						uniteRangementGrille.getStore().add(unite);
263
					}
264
				});
265
			}
266
		});
267
		return bouton;
268
	}
269
 
270
	private Button creerBoutonSupprimerUniteRangement() {
271
		Button bouton = new Button(i18nC.supprimer());
272
		bouton.setIcon(Images.ICONES.supprimer());
273
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
274
			@Override
275
			public void componentSelected(ButtonEvent ce) {
276
				UniteRangement uniteRangementSelectionnee = uniteRangementGrille.getSelectionModel().getSelectedItem();
277
				if (uniteRangementSelectionnee == null) {
278
					Info.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteRangement()));
279
				} else if (uniteRangementSelectionnee.getTypeAutre() == false) {
280
					Info.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteRangementAjoute());
281
				} else {
282
					uniteRangementGrille.getStore().remove(uniteRangementSelectionnee);
283
				}
284
			}
285
		});
286
		return bouton;
287
	}
288
 
289
	private void creerUniteBase() {
290
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre());
862 jpm 291
 
831 jpm 292
		uniteBaseGrille  = creerGrilleUniteBase();
858 jpm 293
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteBase");
831 jpm 294
		panneauGrille.add(uniteBaseGrille);
862 jpm 295
 
831 jpm 296
		ToolBar barreOutils = creerBarreOutilsGrilleUniteBase();
297
		panneauGrille.setTopComponent(barreOutils);
862 jpm 298
 
831 jpm 299
		add(panneauGrille);
300
	}
301
 
302
	private Grid<UniteBase> creerGrilleUniteBase() {
303
		ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
304
 
305
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
306
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
307
 
308
		NumberField champNombre = new NumberField();
309
		champNombre.setFormat(NumberFormat.getFormat("#"));
310
		CellEditor editeurNombre = new CellEditor(champNombre);
311
 
312
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
313
		nombreColonne.setEditor(editeurNombre);
314
		colonnes.add(nombreColonne);
315
 
316
		ListStore<InterneValeur> precisionStore = new ListStore<InterneValeur>();
317
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, i18nC.precisionApproximatif()));
318
		precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, i18nC.precisionExact()));
319
 
320
		final ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
321
		precisionCombo.setForceSelection(true);
322
		precisionCombo.setTriggerAction(TriggerAction.ALL);
323
		precisionCombo.setDisplayField("nom");
324
		precisionCombo.setStore(precisionStore);
325
		precisionCombo.setEditable(false);
326
 
327
		CellEditor editeurPrecision = new CellEditor(precisionCombo) {
328
			@Override
329
			public Object preProcessValue(Object valeur) {
330
				InterneValeur retour = null;
331
				if (valeur != null ) {
332
					if (precisionCombo.getStore().findModel("nom", valeur.toString()) != null) {
333
						retour = precisionCombo.getStore().findModel("nom", valeur.toString());
334
					} else if (precisionCombo.getStore().findModel("abr", valeur.toString()) != null) {
335
						retour = precisionCombo.getStore().findModel("abr", valeur.toString());
336
					}
337
				}
338
				return retour;
339
			}
340
 
341
			@Override
342
			public Object postProcessValue(Object valeur) {
343
				String retour = null;
344
				if (valeur != null ) {
345
					if (valeur instanceof InterneValeur) {
346
						InterneValeur valeurInterne = (InterneValeur) valeur;
347
						retour = valeurInterne.getNom();
348
					}
349
				}
350
				return retour;
351
			}
352
		};
353
 
354
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
355
		precisionColonne.setEditor(editeurPrecision);
356
		colonnes.add(precisionColonne);
357
 
358
		TextField<String> formatChp = new TextField<String>();
359
		formatChp.setAllowBlank(false);
360
 
361
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
362
		formatColonne.setEditor(new CellEditor(formatChp));
363
		colonnes.add(formatColonne);
364
 
365
		ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
366
		partNombreColonne.setEditor(editeurNombre);
367
		colonnes.add(partNombreColonne);
368
 
369
		ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
370
		partPrecisionColonne.setEditor(editeurPrecision);
371
		colonnes.add(partPrecisionColonne);
372
 
373
		ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
374
		spNombreColonne.setEditor(editeurNombre);
375
		colonnes.add(spNombreColonne);
376
 
377
		ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
378
		spPrecisionColonne.setEditor(editeurPrecision);
379
		colonnes.add(spPrecisionColonne);
380
 
381
		GridSelectionModel<UniteBase> modeleDeSelection = new GridSelectionModel<UniteBase>();
382
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
383
		modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(i18nC.collectionUniteBase(), 1, 4));
384
		modeleDeColonnes.addHeaderGroup(0, 4, new HeaderGroupConfig(i18nC.collectionUniteBasePart(), 1, 2));
385
		modeleDeColonnes.addHeaderGroup(0, 6, new HeaderGroupConfig(i18nC.collectionUniteBaseSp(), 1, 2));
386
 
387
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
388
		total.setHtml("type", "TOTAL");
389
		total.setSummaryType("nombre", SummaryType.SUM);
390
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
391
		total.setSummaryType("nombre_part", SummaryType.SUM);
392
		total.setSummaryFormat("nombre_part", NumberFormat.getFormat("#"));
393
		total.setSummaryType("nombre_sp", SummaryType.SUM);
394
		total.setSummaryFormat("nombre_sp", NumberFormat.getFormat("#"));
395
		modeleDeColonnes.addAggregationRow(total);
396
 
397
		EditorGrid<UniteBase> grilleUniteBase = new EditorGrid<UniteBase>(storeGrille, modeleDeColonnes);
398
		grilleUniteBase.setHeight(200);
399
		grilleUniteBase.setBorders(true);
400
		grilleUniteBase.setSelectionModel(modeleDeSelection);
401
		grilleUniteBase.getView().setForceFit(true);
402
		grilleUniteBase.getView().setAutoFill(true);
403
		grilleUniteBase.setAutoExpandColumn("type");
404
		grilleUniteBase.setStripeRows(true);
405
		grilleUniteBase.setTrackMouseOver(true);
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
 
862 jpm 463
	private void creerFieldsetConservation() {
464
		FieldSet conservationFieldSet = new FieldSet();
465
		conservationFieldSet.setHeading("Conservation");
466
		conservationFieldSet.setCollapsible(true);
467
		conservationFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
468
 
469
		typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
470
		conservationFieldSet.add(typePapierConservationChp);
471
 
472
		methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);
473
		conservationFieldSet.add(methodeConservationChp);
474
 
475
		this.add(conservationFieldSet);
476
	}
477
 
478
	private void creerFieldsetEtiquette() {
479
		FieldSet etiquetteFieldSet = new FieldSet();
480
		etiquetteFieldSet.setHeading("Conservation");
481
		etiquetteFieldSet.setCollapsible(true);
482
		etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
483
 
484
		Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());
485
		etiquetteFieldSet.add(fixationPoucentLabel);
486
 
487
		specimenFixationPourcentChp = new ChampSliderPourcentage(i18nC.specimenFixationPourcent());
488
		etiquetteFieldSet.add(specimenFixationPourcentChp, new FormData(200, 0));
489
 
490
		etiquetteFixationPourcentChp = new ChampSliderPourcentage(i18nC.etiquetteFixationPourcent());
491
		etiquetteFieldSet.add(etiquetteFixationPourcentChp, new FormData(200, 0));
492
 
493
		specimentMethodeFixationChp = new ChampCaseACocher(i18nC.specimenMethodeFixation(), "methodeFixation", true);
494
		etiquetteFieldSet.add(specimentMethodeFixationChp);
495
 
496
		etiquetteMethodeFixationSurSupportChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSupport(), "methodeFixation", true);
497
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSupportChp);
498
 
499
		etiquetteMethodeFixationSurSpecimenChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSpecimen(), "methodeFixationSurSpecimen", true);
500
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSpecimenChp);
501
 
502
		typeEcritureChp = new ChampCaseACocher(i18nC.typeEcriture(), "typeEcriture", false);
503
		etiquetteFieldSet.add(typeEcritureChp);
504
 
505
		this.add(etiquetteFieldSet);
506
	}
507
 
508
	private void creerFieldsetTraitement() {
509
		FieldSet traitementFieldSet = new FieldSet();
510
		traitementFieldSet.setHeading("Traitements");
511
		traitementFieldSet.setCollapsible(true);
512
		traitementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
513
 
514
		traitementCombo  = new ChampComboBoxListeValeurs(i18nC.collectionTraitement(), "onpi");
515
		traitementCombo.setTrie("id_valeur");
516
		traitementFieldSet.add(traitementCombo, new FormData(300, 0));
517
 
518
		poisonTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementPoison(), "poisonTraitement", true);
519
		traitementFieldSet.add(poisonTraitementChp);
520
 
521
		insecteTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementInsecte(), "insecteTraitement", true);
522
		traitementFieldSet.add(insecteTraitementChp);
523
 
524
		this.add(traitementFieldSet);
525
	}
526
 
527
	private void creerFieldsetEtat() {
528
		FieldSet etatFieldSet = new FieldSet();
529
		etatFieldSet.setHeading("État général et dégradation");
530
		etatFieldSet.setCollapsible(true);
531
		etatFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
532
 
533
		etatGeneralCombo = new ChampComboBoxListeValeurs(i18nC.collectionEtatGeneral(), "etat");
534
		etatGeneralCombo.setToolTip(i18nC.collectionEtatGeneralInfo());
535
		etatGeneralCombo.setTrie("id_valeur");
536
		etatFieldSet.add(etatGeneralCombo, new FormData(300, 0));
537
 
538
		specimenDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationSpecimen(), 150, true);
539
		specimenDegradationChp.initialiserType("specimenDegradation");
540
		specimenDegradationChp.initialiserCombobox("niveauImportance");
541
		etatFieldSet.add(specimenDegradationChp);
542
 
543
		presentationDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationPresentation(), 150, 200, true);
544
		presentationDegradationChp.initialiserType("supportDegradation");
545
		presentationDegradationChp.initialiserCombobox("niveauImportance");
546
		etatFieldSet.add(presentationDegradationChp);
547
 
548
		determinationCombo = new ChampComboBoxListeValeurs(i18nC.collectionDetermination(), "niveauDetermination");
549
		determinationCombo.setTrie("id_valeur");
550
		etatFieldSet.add(determinationCombo, new FormData(450, 0));
551
 
552
		this.add(etatFieldSet);
553
	}
554
 
806 jpm 555
	public void rafraichir(Object nouvellesDonnees) {
556
		if (nouvellesDonnees instanceof ValeurListe) {
557
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
558
			rafraichirValeurListe(listeValeurs);
559
		} else {
560
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
561
		}
562
	}
563
 
564
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
858 jpm 565
		if (listeValeurs.getId().equals(config.getListeId("typeCollectionBota"))) {
566
			Formulaire.rafraichirComboBox(listeValeurs, typesCollectionBotaCombo);
567
		} else if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {
806 jpm 568
			Iterator<String> it = listeValeurs.keySet().iterator();
569
			while (it.hasNext()) {
570
				Valeur valeur = listeValeurs.get(it.next());
571
				UniteRangement unite = new UniteRangement();
572
				unite.setType(valeur.getNom());
831 jpm 573
				unite.setTypeAutre(false);
806 jpm 574
				uniteRangementGrille.getStore().add(unite);
575
			}
831 jpm 576
		} else if (listeValeurs.getId().equals(config.getListeId("typeUniteBase"))) {
577
			Iterator<String> it = listeValeurs.keySet().iterator();
578
			while (it.hasNext()) {
579
				Valeur valeur = listeValeurs.get(it.next());
580
				UniteBase unite = new UniteBase();
581
				unite.setType(valeur.getNom());
582
				unite.setTypeAutre(false);
583
				uniteBaseGrille.getStore().add(unite);
584
			}
806 jpm 585
		} else {
586
			GWT.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!", null);
587
		}
588
	}
589
}