Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1680 Rev 1898
1
package org.tela_botanica.client.vues.collection;
1
package org.tela_botanica.client.vues.collection;
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.composants.ChampCaseACocher;
9
import org.tela_botanica.client.composants.ChampCaseACocher;
10
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
10
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
11
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypes;
11
import org.tela_botanica.client.composants.ChampMultiValeursMultiTypes;
12
import org.tela_botanica.client.composants.ChampSliderPourcentage;
12
import org.tela_botanica.client.composants.ChampSliderPourcentage;
13
import org.tela_botanica.client.composants.InfoLogger;
13
import org.tela_botanica.client.composants.InfoLogger;
14
import org.tela_botanica.client.composants.ChampNombre;
14
import org.tela_botanica.client.composants.ChampNombre;
15
import org.tela_botanica.client.images.Images;
15
import org.tela_botanica.client.images.Images;
16
import org.tela_botanica.client.interfaces.Rafraichissable;
16
import org.tela_botanica.client.interfaces.Rafraichissable;
17
import org.tela_botanica.client.modeles.InterneValeur;
17
import org.tela_botanica.client.modeles.InterneValeur;
18
import org.tela_botanica.client.modeles.Valeur;
18
import org.tela_botanica.client.modeles.Valeur;
19
import org.tela_botanica.client.modeles.ValeurListe;
19
import org.tela_botanica.client.modeles.ValeurListe;
20
import org.tela_botanica.client.modeles.aDonnee;
20
import org.tela_botanica.client.modeles.aDonnee;
21
import org.tela_botanica.client.modeles.collection.Collection;
21
import org.tela_botanica.client.modeles.collection.Collection;
22
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
22
import org.tela_botanica.client.modeles.collection.CollectionBotanique;
23
import org.tela_botanica.client.modeles.collection.UniteBase;
23
import org.tela_botanica.client.modeles.collection.UniteBase;
24
import org.tela_botanica.client.modeles.collection.UniteRangement;
24
import org.tela_botanica.client.modeles.collection.UniteRangement;
25
import org.tela_botanica.client.util.Debug;
25
import org.tela_botanica.client.util.Debug;
26
import org.tela_botanica.client.util.Pattern;
26
import org.tela_botanica.client.util.Pattern;
27
import org.tela_botanica.client.util.UtilNombre;
27
import org.tela_botanica.client.util.UtilNombre;
28
import org.tela_botanica.client.util.UtilString;
28
import org.tela_botanica.client.util.UtilString;
29
import org.tela_botanica.client.vues.Formulaire;
29
import org.tela_botanica.client.vues.Formulaire;
30
import org.tela_botanica.client.vues.FormulaireOnglet;
30
import org.tela_botanica.client.vues.FormulaireOnglet;
31
 
31
 
32
import com.extjs.gxt.ui.client.Style.Scroll;
32
import com.extjs.gxt.ui.client.Style.Scroll;
33
import com.extjs.gxt.ui.client.event.BaseEvent;
33
import com.extjs.gxt.ui.client.event.BaseEvent;
34
import com.extjs.gxt.ui.client.event.ButtonEvent;
34
import com.extjs.gxt.ui.client.event.ButtonEvent;
35
import com.extjs.gxt.ui.client.event.ComponentEvent;
35
import com.extjs.gxt.ui.client.event.ComponentEvent;
36
import com.extjs.gxt.ui.client.event.Events;
36
import com.extjs.gxt.ui.client.event.Events;
37
import com.extjs.gxt.ui.client.event.FieldEvent;
37
import com.extjs.gxt.ui.client.event.FieldEvent;
38
import com.extjs.gxt.ui.client.event.Listener;
38
import com.extjs.gxt.ui.client.event.Listener;
39
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
39
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
40
import com.extjs.gxt.ui.client.event.SelectionListener;
40
import com.extjs.gxt.ui.client.event.SelectionListener;
41
import com.extjs.gxt.ui.client.store.ListStore;
41
import com.extjs.gxt.ui.client.store.ListStore;
42
import com.extjs.gxt.ui.client.widget.ContentPanel;
42
import com.extjs.gxt.ui.client.widget.ContentPanel;
43
import com.extjs.gxt.ui.client.widget.Info;
43
import com.extjs.gxt.ui.client.widget.Info;
44
import com.extjs.gxt.ui.client.widget.MessageBox;
44
import com.extjs.gxt.ui.client.widget.MessageBox;
45
import com.extjs.gxt.ui.client.widget.Text;
45
import com.extjs.gxt.ui.client.widget.Text;
46
import com.extjs.gxt.ui.client.widget.button.Button;
46
import com.extjs.gxt.ui.client.widget.button.Button;
47
import com.extjs.gxt.ui.client.widget.form.ComboBox;
47
import com.extjs.gxt.ui.client.widget.form.ComboBox;
48
import com.extjs.gxt.ui.client.widget.form.FieldSet;
48
import com.extjs.gxt.ui.client.widget.form.FieldSet;
49
import com.extjs.gxt.ui.client.widget.form.LabelField;
49
import com.extjs.gxt.ui.client.widget.form.LabelField;
50
import com.extjs.gxt.ui.client.widget.form.NumberField;
50
import com.extjs.gxt.ui.client.widget.form.NumberField;
51
import com.extjs.gxt.ui.client.widget.form.TextArea;
51
import com.extjs.gxt.ui.client.widget.form.TextArea;
52
import com.extjs.gxt.ui.client.widget.form.TextField;
52
import com.extjs.gxt.ui.client.widget.form.TextField;
53
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
53
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
54
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
54
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
55
import com.extjs.gxt.ui.client.widget.grid.AggregationRowConfig;
55
import com.extjs.gxt.ui.client.widget.grid.AggregationRowConfig;
56
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
56
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
57
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
57
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
58
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
58
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
59
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
59
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
60
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
60
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
61
import com.extjs.gxt.ui.client.widget.grid.Grid;
61
import com.extjs.gxt.ui.client.widget.grid.Grid;
62
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
62
import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer;
63
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
63
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
64
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
64
import com.extjs.gxt.ui.client.widget.grid.HeaderGroupConfig;
65
import com.extjs.gxt.ui.client.widget.grid.SummaryType;
65
import com.extjs.gxt.ui.client.widget.grid.SummaryType;
66
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
66
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
67
import com.extjs.gxt.ui.client.widget.layout.FormData;
67
import com.extjs.gxt.ui.client.widget.layout.FormData;
68
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
68
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
69
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
69
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
70
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
70
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
71
import com.google.gwt.event.dom.client.KeyCodes;
71
import com.google.gwt.event.dom.client.KeyCodes;
72
import com.google.gwt.i18n.client.NumberFormat;
72
import com.google.gwt.i18n.client.NumberFormat;
73
 
73
 
74
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
74
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
75
	
75
	
76
	public static final String ID = "description";
76
	public static final String ID = "description";
77
	private Collection collection = null;
77
	private Collection collection = null;
78
	private CollectionBotanique collectionBotanique = null;
78
	private CollectionBotanique collectionBotanique = null;
79
	private Collection collectionCollectee = null;
79
	private Collection collectionCollectee = null;
80
	private CollectionBotanique collectionBotaniqueCollectee = null;
80
	private CollectionBotanique collectionBotaniqueCollectee = null;
81
	
81
	
82
	private static ListStore<InterneValeur> precisionStore = null;
82
	private static ListStore<InterneValeur> precisionStore = null;
83
	private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;
83
	private ChampComboBoxListeValeurs typesCollectionBotaCombo = null;
84
	private NumberField nbreEchantillonChp = null;
84
	private NumberField nbreEchantillonChp = null;
85
	private EditorGrid<UniteRangement> uniteRangementGrille = null;
85
	private EditorGrid<UniteRangement> uniteRangementGrille = null;
86
	private ChampComboBoxListeValeurs etatUniteRangementCombo = null;
86
	private ChampComboBoxListeValeurs etatUniteRangementCombo = null;
87
	private EditorGrid<UniteBase> uniteBaseGrille = null;
87
	private EditorGrid<UniteBase> uniteBaseGrille = null;
88
	private ChampCaseACocher typePapierConservationChp = null;
88
	private ChampCaseACocher typePapierConservationChp = null;
89
	private ChampCaseACocher methodeConservationChp = null;
89
	private ChampCaseACocher methodeConservationChp = null;
90
	private ChampSliderPourcentage specimenFixationPourcentChp = null;
90
	private ChampSliderPourcentage specimenFixationPourcentChp = null;
91
	private ChampSliderPourcentage etiquetteFixationPourcentChp = null;
91
	private ChampSliderPourcentage etiquetteFixationPourcentChp = null;
92
	private ChampCaseACocher specimentMethodeFixationChp = null;
92
	private ChampCaseACocher specimentMethodeFixationChp = null;
93
	private ChampCaseACocher etiquetteMethodeFixationSurSupportChp = null;
93
	private ChampCaseACocher etiquetteMethodeFixationSurSupportChp = null;
94
	private ChampCaseACocher etiquetteMethodeFixationSurSpecimenChp = null;
94
	private ChampCaseACocher etiquetteMethodeFixationSurSpecimenChp = null;
95
	private ChampCaseACocher typeEcritureChp = null;
95
	private ChampCaseACocher typeEcritureChp = null;
96
	private ChampComboBoxListeValeurs traitementCombo = null;
96
	private ChampComboBoxListeValeurs traitementCombo = null;
97
	private ChampCaseACocher poisonTraitementChp = null;
97
	private ChampCaseACocher poisonTraitementChp = null;
98
	private ChampCaseACocher insecteTraitementChp = null;
98
	private ChampCaseACocher insecteTraitementChp = null;
99
	private ChampComboBoxListeValeurs etatGeneralCombo = null;
99
	private ChampComboBoxListeValeurs etatGeneralCombo = null;
100
	private ChampComboBoxListeValeurs determinationCombo = null;
100
	private ChampComboBoxListeValeurs determinationCombo = null;
101
	private ChampMultiValeursMultiTypes specimenDegradationChp = null;
101
	private ChampMultiValeursMultiTypes specimenDegradationChp = null;
102
	private ChampMultiValeursMultiTypes presentationDegradationChp = null;
102
	private ChampMultiValeursMultiTypes presentationDegradationChp = null;
103
	private Text labelPresentationDegradationChp = null;
103
	private Text labelPresentationDegradationChp = null;
104
		
104
		
105
	public CollectionFormDescription(Formulaire formulaireCourrant) {
105
	public CollectionFormDescription(Formulaire formulaireCourrant) {
106
		initialiserOnglet(formulaireCourrant);
106
		initialiserOnglet(formulaireCourrant);
107
		setId(ID);
107
		setId(ID);
108
		setText(Mediateur.i18nC.collectionDescription());
108
		setText(Mediateur.i18nC.collectionDescription());
109
 
109
 
110
		FormLayout formulaireLayout = (FormLayout) this.getLayout();
110
		FormLayout formulaireLayout = (FormLayout) this.getLayout();
111
		formulaireLayout.setLabelAlign(LabelAlign.LEFT);
111
		formulaireLayout.setLabelAlign(LabelAlign.LEFT);
112
		formulaireLayout.setLabelWidth(300);
112
		formulaireLayout.setLabelWidth(300);
113
		
113
		
-
 
114
		creerFieldsetTypesUniteEtat();
-
 
115
		
-
 
116
		creerFieldsetConservation(); // Papier
-
 
117
		
-
 
118
		creerFieldsetEtiquette(); // RAS
-
 
119
		creerFieldsetTraitement(); // RAS
-
 
120
		
114
		creerFieldsetPrecision();
121
		creerFieldsetPrecision(); // A supprimer ou déplacer plus tard
115
		creerStorePrecision();
-
 
116
		creerFieldSetTypesUnite();
-
 
117
		creerFieldsetConservation();
-
 
118
		creerFieldsetEtiquette();
-
 
119
		creerFieldsetTraitement();
-
 
120
		creerFieldsetEtat();
122
		creerStorePrecision();
121
		
123
		
122
		layout();
124
		layout();
123
	}
125
	}
124
	
126
	
125
	private void creerFieldsetPrecision() {
127
	private void creerFieldsetPrecision() {
126
		FieldSet precisionFieldSet = new FieldSet();
128
		FieldSet precisionFieldSet = new FieldSet();
127
		precisionFieldSet.setHeadingHtml(i18nC.collectionTitrePrecision());
129
		precisionFieldSet.setHeadingHtml(i18nC.collectionTitrePrecision());
128
		precisionFieldSet.setCollapsible(true);
130
		precisionFieldSet.setCollapsible(true);
-
 
131
		precisionFieldSet.collapse();
129
		precisionFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
132
		precisionFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
130
		
133
		
131
		typesCollectionBotaCombo = new ChampComboBoxListeValeurs(i18nC.typeCollectionBotanique(), "typeCollectionBota");
134
		typesCollectionBotaCombo = new ChampComboBoxListeValeurs(i18nC.typeCollectionBotanique(), "typeCollectionBota");
132
		typesCollectionBotaCombo.setTabIndex(tabIndex++);
135
		typesCollectionBotaCombo.setTabIndex(tabIndex++);
133
		precisionFieldSet.add(typesCollectionBotaCombo, new FormData(250, 0));
136
		precisionFieldSet.add(typesCollectionBotaCombo, new FormData(250, 0));
134
		
137
		
135
		nbreEchantillonChp = new NumberField(); 
138
		nbreEchantillonChp = new NumberField(); 
136
		nbreEchantillonChp.setFieldLabel(i18nC.nbreEchantillon());
139
		nbreEchantillonChp.setFieldLabel(i18nC.nbreEchantillon());
137
		nbreEchantillonChp.setToolTip(i18nC.nbreEchantillonInfo());
140
		nbreEchantillonChp.setToolTip(i18nC.nbreEchantillonInfo());
138
		nbreEchantillonChp.setFormat(NumberFormat.getFormat("#"));
141
		nbreEchantillonChp.setFormat(NumberFormat.getFormat("#"));
139
		precisionFieldSet.add(nbreEchantillonChp);
142
		precisionFieldSet.add(nbreEchantillonChp);
140
		
143
		
141
		this.add(precisionFieldSet);
144
		this.add(precisionFieldSet);
142
	}
145
	}
143
	
146
	
144
	private static void creerStorePrecision() {
147
	private static void creerStorePrecision() {
145
		if (precisionStore == null) {
148
		if (precisionStore == null) {
146
			precisionStore = new ListStore<InterneValeur>();
149
			precisionStore = new ListStore<InterneValeur>();
147
			precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, Mediateur.i18nC.precisionApproximatif()));  
150
			precisionStore.add(new InterneValeur(UniteRangement.COMPTE_APPROXIMATIF, Mediateur.i18nC.precisionApproximatif()));  
148
			precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, Mediateur.i18nC.precisionExact()));
151
			precisionStore.add(new InterneValeur(UniteRangement.COMPTE_EXACT, Mediateur.i18nC.precisionExact()));
149
		}
152
		}
150
	}
153
	}
151
	
154
	
152
	private static String getPrecisionNom(String precisionAbr) {
155
	private static String getPrecisionNom(String precisionAbr) {
153
		String precision = "";
156
		String precision = "";
154
		if (!precisionAbr.equals("NULL")) {
157
		if (!precisionAbr.equals("NULL")) {
155
			creerStorePrecision();
158
			creerStorePrecision();
156
			InterneValeur precisionValeur = precisionStore.findModel("abr", precisionAbr);
159
			InterneValeur precisionValeur = precisionStore.findModel("abr", precisionAbr);
157
			if (precisionValeur != null && !precisionValeur.getNom().equals("NULL")) {
160
			if (precisionValeur != null && !precisionValeur.getNom().equals("NULL")) {
158
				precision = precisionValeur.getNom();
161
				precision = precisionValeur.getNom();
159
			}
162
			}
160
		}
163
		}
161
		return precision;
164
		return precision;
162
	}
165
	}
163
	
166
	
164
	private static String getPrecisionAbr(String precisionNom) {
167
	private static String getPrecisionAbr(String precisionNom) {
165
		String precision = "";
168
		String precision = "";
166
		if (!precisionNom.equals("NULL")) {
169
		if (!precisionNom.equals("NULL")) {
167
			creerStorePrecision();
170
			creerStorePrecision();
168
			InterneValeur precisionValeur = precisionStore.findModel("nom", precisionNom);
171
			InterneValeur precisionValeur = precisionStore.findModel("nom", precisionNom);
169
			if (precisionValeur != null) {
172
			if (precisionValeur != null) {
170
				precision = precisionValeur.getAbr();
173
				precision = precisionValeur.getAbr();
171
			}
174
			}
172
		}
175
		}
173
		return precision;
176
		return precision;
174
	}
177
	}
175
	
178
	
176
	private ComboBox<InterneValeur> getChampPrecision() {
179
	private ComboBox<InterneValeur> getChampPrecision() {
177
		ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
180
		ComboBox<InterneValeur> precisionCombo = new ComboBox<InterneValeur>();
178
		precisionCombo.setForceSelection(true);
181
		precisionCombo.setForceSelection(true);
179
		precisionCombo.setTriggerAction(TriggerAction.ALL);
182
		precisionCombo.setTriggerAction(TriggerAction.ALL);
180
		precisionCombo.setDisplayField("nom");
183
		precisionCombo.setDisplayField("nom");
181
		precisionCombo.setStore(precisionStore);
184
		precisionCombo.setStore(precisionStore);
182
		precisionCombo.setEditable(false);
185
		precisionCombo.setEditable(false);
183
		return precisionCombo;
186
		return precisionCombo;
184
	}
187
	}
185
	
188
	
186
	/**
189
	/**
187
	* La classe NumberField est sujette à un bug qui empeche son 
190
	* La classe NumberField est sujette à un bug qui empeche son 
188
	* édition dans firefox, il faut donc la surcharger
191
	* édition dans firefox, il faut donc la surcharger
189
	**/
192
	**/
190
	private NumberField creerChampNombre() {
193
	private NumberField creerChampNombre() {
191
		ChampNombre champNombre = new ChampNombre();	
194
		ChampNombre champNombre = new ChampNombre();	
192
		return champNombre;
195
		return champNombre;
193
	}
196
	}
194
	
-
 
195
	private void creerFieldSetTypesUnite() {
-
 
196
		FieldSet typesUniteFieldSet = new FieldSet();
-
 
197
		typesUniteFieldSet.setHeadingHtml(i18nC.collectionUniteType());
-
 
198
		typesUniteFieldSet.setCollapsible(true);
-
 
199
		typesUniteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
-
 
200
		
-
 
201
		etatUniteRangementCombo = new ChampComboBoxListeValeurs(i18nC.collectionUniteRangementEtatGeneral(), "etat");
-
 
202
		etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo());
-
 
203
		etatUniteRangementCombo.setTrie("id_valeur");
-
 
204
		etatUniteRangementCombo.setWidth(300);
-
 
205
		typesUniteFieldSet.add(etatUniteRangementCombo);
-
 
206
		
-
 
207
		typesUniteFieldSet.add(creerUniteRangement());
-
 
208
		typesUniteFieldSet.add(creerUniteBase());
-
 
209
		
-
 
210
		add(typesUniteFieldSet);
-
 
211
	}
-
 
212
	
197
		
213
	private ContentPanel creerUniteRangement() {
198
	private ContentPanel creerUniteRangement() {
214
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre());
199
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteRangementTitre());
215
		
200
		
216
		uniteRangementGrille  = creerGrilleUniteRangement();
201
		uniteRangementGrille  = creerGrilleUniteRangement();
217
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteRangement", null);
202
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteRangement", null);
218
		panneauGrille.add(uniteRangementGrille);
203
		panneauGrille.add(uniteRangementGrille);
219
		
204
		
220
		ToolBar barreOutils = creerBarreOutilsGrilleUniteRangement();
205
		ToolBar barreOutils = creerBarreOutilsGrilleUniteRangement();
221
		panneauGrille.setTopComponent(barreOutils);
206
		panneauGrille.setTopComponent(barreOutils);
222
		
207
		
223
		return panneauGrille;
208
		return panneauGrille;
224
	}
209
	}
225
	
210
	
226
	private ContentPanel creerPanneauContenantGrille(String titre) {
211
	private ContentPanel creerPanneauContenantGrille(String titre) {
227
		ContentPanel panneau = new ContentPanel();
212
		ContentPanel panneau = new ContentPanel();
228
		panneau.setHeadingHtml(titre);
213
		panneau.setHeadingHtml(titre);
229
		panneau.setIcon(Images.ICONES.table());
214
		panneau.setIcon(Images.ICONES.table());
230
		panneau.setLayout(new FitLayout());
215
		panneau.setLayout(new FitLayout());
231
		panneau.setFrame(true);
216
		panneau.setFrame(true);
232
		panneau.setSize(800, 200);
217
		panneau.setSize(800, 200);
233
		panneau.setScrollMode(Scroll.NONE);
218
		panneau.setScrollMode(Scroll.NONE);
234
		panneau.setCollapsible(true);
219
		panneau.setCollapsible(true);
235
		panneau.setStyleAttribute("margin", "5px 0");
220
		panneau.setStyleAttribute("margin", "5px 0");
236
		
221
		
237
		return panneau;
222
		return panneau;
238
	}
223
	}
239
	
224
	
240
	private EditorGrid<UniteRangement> creerGrilleUniteRangement() {
225
	private EditorGrid<UniteRangement> creerGrilleUniteRangement() {
241
		ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
226
		ListStore<UniteRangement> storeGrille = new ListStore<UniteRangement>();
242
		
227
		
243
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
228
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
244
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
229
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
245
		
230
		
246
		NumberField champNombre = creerChampNombre();
231
		NumberField champNombre = creerChampNombre();
247
		champNombre.setFormat(NumberFormat.getFormat("#"));
232
		champNombre.setFormat(NumberFormat.getFormat("#"));
248
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
233
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
249
		nombreColonne.setEditor(new CellEditor(champNombre));
234
		nombreColonne.setEditor(new CellEditor(champNombre));
250
		nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
235
		nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
251
		colonnes.add(nombreColonne);
236
		colonnes.add(nombreColonne);
252
				
237
				
253
		CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {  
238
		CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {  
254
			@Override  
239
			@Override  
255
			public Object preProcessValue(Object valeur) {  
240
			public Object preProcessValue(Object valeur) {  
256
				InterneValeur retour = null;
241
				InterneValeur retour = null;
257
				if (valeur != null ) {
242
				if (valeur != null ) {
258
					if (precisionStore.findModel("nom", valeur.toString()) != null) {
243
					if (precisionStore.findModel("nom", valeur.toString()) != null) {
259
						retour = precisionStore.findModel("nom", valeur.toString());
244
						retour = precisionStore.findModel("nom", valeur.toString());
260
					} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
245
					} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
261
						retour = precisionStore.findModel("abr", valeur.toString());
246
						retour = precisionStore.findModel("abr", valeur.toString());
262
					}
247
					}
263
				}
248
				}
264
				return retour;
249
				return retour;
265
			}  
250
			}  
266
 
251
 
267
			@Override  
252
			@Override  
268
			public Object postProcessValue(Object valeur) {  
253
			public Object postProcessValue(Object valeur) {  
269
				String retour = null;
254
				String retour = null;
270
				if (valeur != null ) {
255
				if (valeur != null ) {
271
					if (valeur instanceof InterneValeur) {
256
					if (valeur instanceof InterneValeur) {
272
						InterneValeur valeurInterne = (InterneValeur) valeur;
257
						InterneValeur valeurInterne = (InterneValeur) valeur;
273
						retour = valeurInterne.getNom();
258
						retour = valeurInterne.getNom();
274
					}
259
					}
275
				}
260
				}
276
				return retour;  
261
				return retour;  
277
			}
262
			}
278
		};
263
		};
279
		
264
		
280
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
265
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
281
		precisionColonne.setEditor(editeurPrecision);
266
		precisionColonne.setEditor(editeurPrecision);
282
		colonnes.add(precisionColonne);
267
		colonnes.add(precisionColonne);
283
		
268
		
284
		TextField<String> formatChp = new TextField<String>();
269
		TextField<String> formatChp = new TextField<String>();
285
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
270
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
286
		formatColonne.setEditor(new CellEditor(formatChp));
271
		formatColonne.setEditor(new CellEditor(formatChp));
287
		colonnes.add(formatColonne);
272
		colonnes.add(formatColonne);
288
		
273
		
289
		GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
274
		GridSelectionModel<UniteRangement> modeleDeSelection = new GridSelectionModel<UniteRangement>();
290
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
275
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
291
		
276
		
292
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
277
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
293
		total.setHtml("type", i18nC.total());
278
		total.setHtml("type", i18nC.total());
294
		total.setSummaryType("nombre", SummaryType.SUM);
279
		total.setSummaryType("nombre", SummaryType.SUM);
295
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
280
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
296
		modeleDeColonnes.addAggregationRow(total);
281
		modeleDeColonnes.addAggregationRow(total);
297
		
282
		
298
		EditorGrid<UniteRangement> grilleUniteRangement = new EditorGrid<UniteRangement>(storeGrille, modeleDeColonnes);
283
		EditorGrid<UniteRangement> grilleUniteRangement = new EditorGrid<UniteRangement>(storeGrille, modeleDeColonnes);
299
		grilleUniteRangement.setHeight(300);
284
		grilleUniteRangement.setHeight(300);
300
		grilleUniteRangement.setBorders(true);
285
		grilleUniteRangement.setBorders(true);
301
		grilleUniteRangement.setSelectionModel(modeleDeSelection);
286
		grilleUniteRangement.setSelectionModel(modeleDeSelection);
302
		grilleUniteRangement.getView().setForceFit(true);
287
		grilleUniteRangement.getView().setForceFit(true);
303
		grilleUniteRangement.getView().setAutoFill(true);
288
		grilleUniteRangement.getView().setAutoFill(true);
304
		grilleUniteRangement.setAutoExpandColumn("type");
289
		grilleUniteRangement.setAutoExpandColumn("type");
305
		grilleUniteRangement.setStripeRows(true);
290
		grilleUniteRangement.setStripeRows(true);
306
		grilleUniteRangement.setTrackMouseOver(true);
291
		grilleUniteRangement.setTrackMouseOver(true);
307
		
292
		
308
		return grilleUniteRangement;
293
		return grilleUniteRangement;
309
	}
294
	}
310
	
295
	
311
	private String collecterGrilleUniteRangement() {
296
	private String collecterGrilleUniteRangement() {
312
		String truk = "";
297
		String truk = "";
313
		int nbreUnite = uniteRangementGrille.getStore().getCount();
298
		int nbreUnite = uniteRangementGrille.getStore().getCount();
314
		for (int i = 0; i < nbreUnite; i++) {
299
		for (int i = 0; i < nbreUnite; i++) {
315
			UniteRangement unite = uniteRangementGrille.getStore().getAt(i);
300
			UniteRangement unite = uniteRangementGrille.getStore().getAt(i);
316
			if (unite.getTypeAutre()) {
301
			if (unite.getTypeAutre()) {
317
				truk += unite.getType();
302
				truk += unite.getType();
318
			} else {
303
			} else {
319
				truk += unite.getId();
304
				truk += unite.getId();
320
			}
305
			}
321
			truk += aDonnee.SEPARATEUR_TYPE_VALEUR;
306
			truk += aDonnee.SEPARATEUR_TYPE_VALEUR;
322
			truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
307
			truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
323
			truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
308
			truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
324
			truk += unite.getFormat();
309
			truk += unite.getFormat();
325
			truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
310
			truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
326
			
311
			
327
			if (truk.matches("^"+aDonnee.SEPARATEUR_DONNEES)) {
312
			if (truk.matches("^"+aDonnee.SEPARATEUR_DONNEES)) {
328
				truk = truk.replaceFirst("^"+aDonnee.SEPARATEUR_DONNEES, "");
313
				truk = truk.replaceFirst("^"+aDonnee.SEPARATEUR_DONNEES, "");
329
			}
314
			}
330
			
315
			
331
			if (truk.matches("^"+aDonnee.SEPARATEUR_TYPE_VALEUR)) {
316
			if (truk.matches("^"+aDonnee.SEPARATEUR_TYPE_VALEUR)) {
332
				truk = truk.replaceFirst("^"+aDonnee.SEPARATEUR_TYPE_VALEUR, "");
317
				truk = truk.replaceFirst("^"+aDonnee.SEPARATEUR_TYPE_VALEUR, "");
333
			}
318
			}
334
		}
319
		}
335
		return truk;
320
		return truk;
336
	}
321
	}
337
	
322
	
338
	private void peuplerGrilleUniteRangement(String valeurTruk) {
323
	private void peuplerGrilleUniteRangement(String valeurTruk) {
339
		if (!UtilString.isEmpty(valeurTruk)) {
324
		if (!UtilString.isEmpty(valeurTruk)) {
340
			HashMap<String,UniteRangement> unitesEnregistrees = parserValeurUniteRangement(valeurTruk);
325
			HashMap<String,UniteRangement> unitesEnregistrees = parserValeurUniteRangement(valeurTruk);
341
			
326
			
342
			ArrayList<UniteRangement> listeUniteMaj = new ArrayList<UniteRangement>();
327
			ArrayList<UniteRangement> listeUniteMaj = new ArrayList<UniteRangement>();
343
			int nbreUnite = uniteRangementGrille.getStore().getCount();
328
			int nbreUnite = uniteRangementGrille.getStore().getCount();
344
			for (int i = 0; i < nbreUnite; i++) {
329
			for (int i = 0; i < nbreUnite; i++) {
345
				UniteRangement uniteDansGrille = uniteRangementGrille.getStore().getAt(i);
330
				UniteRangement uniteDansGrille = uniteRangementGrille.getStore().getAt(i);
346
				UniteRangement uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
331
				UniteRangement uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
347
				
332
				
348
				if (uniteEnregistree != null) {
333
				if (uniteEnregistree != null) {
349
					uniteEnregistree.setType(uniteDansGrille.getType());
334
					uniteEnregistree.setType(uniteDansGrille.getType());
350
					listeUniteMaj.add(uniteEnregistree);
335
					listeUniteMaj.add(uniteEnregistree);
351
				} else {
336
				} else {
352
					listeUniteMaj.add(uniteDansGrille);
337
					listeUniteMaj.add(uniteDansGrille);
353
				}
338
				}
354
			}
339
			}
355
			
340
			
356
			Iterator<String> it = unitesEnregistrees.keySet().iterator();
341
			Iterator<String> it = unitesEnregistrees.keySet().iterator();
357
			while (it.hasNext()) {
342
			while (it.hasNext()) {
358
				String cle = it.next();
343
				String cle = it.next();
359
				if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) {
344
				if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) {
360
					UniteRangement uniteAutreEnregistree = unitesEnregistrees.get(cle);
345
					UniteRangement uniteAutreEnregistree = unitesEnregistrees.get(cle);
361
					listeUniteMaj.add(uniteAutreEnregistree);
346
					listeUniteMaj.add(uniteAutreEnregistree);
362
				}
347
				}
363
			}
348
			}
364
			
349
			
365
			uniteRangementGrille.getStore().removeAll();
350
			uniteRangementGrille.getStore().removeAll();
366
			uniteRangementGrille.getStore().add(listeUniteMaj);
351
			uniteRangementGrille.getStore().add(listeUniteMaj);
367
			layout();
352
			layout();
368
		}
353
		}
369
	}
354
	}
370
	
355
	
371
	public static HashMap<String,UniteRangement> parserValeurUniteRangement(String valeurTruk) {
356
	public static HashMap<String,UniteRangement> parserValeurUniteRangement(String valeurTruk) {
372
		HashMap<String,UniteRangement> unitesEnregistrees = new HashMap<String,UniteRangement>(); 
357
		HashMap<String,UniteRangement> unitesEnregistrees = new HashMap<String,UniteRangement>(); 
373
		if (!UtilString.isEmpty(valeurTruk)) {
358
		if (!UtilString.isEmpty(valeurTruk)) {
374
			String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
359
			String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
375
			for (int i = 0; i < unites.length; i++) {
360
			for (int i = 0; i < unites.length; i++) {
376
				String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
361
				String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
377
				String uniteChaineDonnees = uniteTypeIdDonnees[1];
362
				String uniteChaineDonnees = uniteTypeIdDonnees[1];
378
				String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
363
				String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
379
				
364
				
380
				UniteRangement uniteRangement = new UniteRangement();
365
				UniteRangement uniteRangement = new UniteRangement();
381
				if (uniteDonnees.length > 0) {
366
				if (uniteDonnees.length > 0) {
382
					uniteRangement.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
367
					uniteRangement.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
383
				}
368
				}
384
				if (uniteDonnees.length > 1) {
369
				if (uniteDonnees.length > 1) {
385
					uniteRangement.setPrecision(getPrecisionNom(uniteDonnees[1]));
370
					uniteRangement.setPrecision(getPrecisionNom(uniteDonnees[1]));
386
				}
371
				}
387
				if (uniteDonnees.length > 2) {
372
				if (uniteDonnees.length > 2) {
388
					uniteRangement.setFormat(uniteDonnees[2]);
373
					uniteRangement.setFormat(uniteDonnees[2]);
389
				}
374
				}
390
				
375
				
391
				if (uniteTypeIdDonnees[0].matches("[0-9]+")) {
376
				if (uniteTypeIdDonnees[0].matches("[0-9]+")) {
392
					uniteRangement.setId(uniteTypeIdDonnees[0]);
377
					uniteRangement.setId(uniteTypeIdDonnees[0]);
393
					uniteRangement.setTypeAutre(false);
378
					uniteRangement.setTypeAutre(false);
394
					unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteRangement);
379
					unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteRangement);
395
				} else {					
380
				} else {					
396
					uniteRangement.setType(uniteTypeIdDonnees[0]);
381
					uniteRangement.setType(uniteTypeIdDonnees[0]);
397
					uniteRangement.setTypeAutre(true);
382
					uniteRangement.setTypeAutre(true);
398
					String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i;
383
					String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i;
399
					uniteRangement.setId(id);
384
					uniteRangement.setId(id);
400
					unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteRangement);
385
					unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteRangement);
401
				}
386
				}
402
			}
387
			}
403
		}
388
		}
404
		return unitesEnregistrees;
389
		return unitesEnregistrees;
405
	}
390
	}
406
	
391
	
407
	private ToolBar creerBarreOutilsGrilleUniteRangement() {
392
	private ToolBar creerBarreOutilsGrilleUniteRangement() {
408
		ToolBar barreOutils = new ToolBar();  
393
		ToolBar barreOutils = new ToolBar();  
409
		
394
		
410
		Button ajouterBouton = creerBoutonAjouterUniteRangement();
395
		Button ajouterBouton = creerBoutonAjouterUniteRangement();
411
		barreOutils.add(ajouterBouton);
396
		barreOutils.add(ajouterBouton);
412
		
397
		
413
		barreOutils.add(new SeparatorToolItem());
398
		barreOutils.add(new SeparatorToolItem());
414
		
399
		
415
		Button supprimerBouton = creerBoutonSupprimerUniteRangement();
400
		Button supprimerBouton = creerBoutonSupprimerUniteRangement();
416
		barreOutils.add(supprimerBouton);
401
		barreOutils.add(supprimerBouton);
417
 
402
 
418
		return barreOutils;
403
		return barreOutils;
419
	}
404
	}
420
	
405
	
421
	private Button creerBoutonAjouterUniteRangement() {
406
	private Button creerBoutonAjouterUniteRangement() {
422
		Button bouton = new Button(i18nC.ajouter());
407
		Button bouton = new Button(i18nC.ajouter());
423
		bouton.setIcon(Images.ICONES.ajouter());
408
		bouton.setIcon(Images.ICONES.ajouter());
424
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
409
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
425
			@Override
410
			@Override
426
			public void componentSelected(ButtonEvent ce) {
411
			public void componentSelected(ButtonEvent ce) {
427
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteRangementSaisirType());
412
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteRangementSaisirType());
428
					box.addCallback(new Listener<MessageBoxEvent>() {
413
					box.addCallback(new Listener<MessageBoxEvent>() {
429
					public void handleEvent(MessageBoxEvent be) {
414
					public void handleEvent(MessageBoxEvent be) {
430
						if (!UtilString.isEmpty(be.getValue()) && !be.getValue().matches("[0-9]+")) {
415
						if (!UtilString.isEmpty(be.getValue()) && !be.getValue().matches("[0-9]+")) {
431
							final UniteRangement unite = new UniteRangement();
416
							final UniteRangement unite = new UniteRangement();
432
							unite.setType(be.getValue());
417
							unite.setType(be.getValue());
433
							unite.setTypeAutre(true);
418
							unite.setTypeAutre(true);
434
							uniteRangementGrille.getStore().add(unite);
419
							uniteRangementGrille.getStore().add(unite);
435
						} else {
420
						} else {
436
							InfoLogger.display("Information", "Vous ne pouvez pas saisir de valeur vide ou numérique");
421
							InfoLogger.display("Information", "Vous ne pouvez pas saisir de valeur vide ou numérique");
437
						}
422
						}
438
					}
423
					}
439
				});
424
				});
440
			}
425
			}
441
		});
426
		});
442
		return bouton;
427
		return bouton;
443
	}
428
	}
444
	
429
	
445
	private Button creerBoutonSupprimerUniteRangement() {
430
	private Button creerBoutonSupprimerUniteRangement() {
446
		Button bouton = new Button(i18nC.supprimer());
431
		Button bouton = new Button(i18nC.supprimer());
447
		bouton.setIcon(Images.ICONES.supprimer());
432
		bouton.setIcon(Images.ICONES.supprimer());
448
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
433
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
449
			@Override
434
			@Override
450
			public void componentSelected(ButtonEvent ce) {
435
			public void componentSelected(ButtonEvent ce) {
451
				UniteRangement uniteRangementSelectionnee = uniteRangementGrille.getSelectionModel().getSelectedItem();
436
				UniteRangement uniteRangementSelectionnee = uniteRangementGrille.getSelectionModel().getSelectedItem();
452
				if (uniteRangementSelectionnee == null) {
437
				if (uniteRangementSelectionnee == null) {
453
					InfoLogger.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteRangement()));
438
					InfoLogger.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteRangement()));
454
				} else if (uniteRangementSelectionnee.getTypeAutre() == false) {
439
				} else if (uniteRangementSelectionnee.getTypeAutre() == false) {
455
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteRangementAjoute());
440
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteRangementAjoute());
456
				} else {
441
				} else {
457
					uniteRangementGrille.getStore().remove(uniteRangementSelectionnee);
442
					uniteRangementGrille.getStore().remove(uniteRangementSelectionnee);
458
				}
443
				}
459
			}   
444
			}   
460
		});
445
		});
461
		return bouton;
446
		return bouton;
462
	}
447
	}
463
	
448
	
464
	private ContentPanel creerUniteBase() {
449
	private ContentPanel creerUniteBase() {
465
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre());
450
		ContentPanel panneauGrille = creerPanneauContenantGrille(i18nC.collectionUniteBaseTitre());
466
		
451
		
467
		uniteBaseGrille  = creerGrilleUniteBase();
452
		uniteBaseGrille  = creerGrilleUniteBase();
468
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteBase", null);
453
		mediateur.obtenirListeValeurEtRafraichir(this, "typeUniteBase", null);
469
		panneauGrille.add(uniteBaseGrille);
454
		panneauGrille.add(uniteBaseGrille);
470
		
455
		
471
		ToolBar barreOutils = creerBarreOutilsGrilleUniteBase();
456
		ToolBar barreOutils = creerBarreOutilsGrilleUniteBase();
472
		panneauGrille.setTopComponent(barreOutils);
457
		panneauGrille.setTopComponent(barreOutils);
473
		
458
		
474
		return panneauGrille;		
459
		return panneauGrille;		
475
	}
460
	}
476
	
461
	
477
	private EditorGrid<UniteBase> creerGrilleUniteBase() {
462
	private EditorGrid<UniteBase> creerGrilleUniteBase() {
478
		ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
463
		ListStore<UniteBase> storeGrille = new ListStore<UniteBase>();
479
		
464
		
480
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
465
		List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
481
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
466
		colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
482
		
467
		
483
		NumberField champNombre = creerChampNombre();
468
		NumberField champNombre = creerChampNombre();
484
		champNombre.setFormat(NumberFormat.getFormat("#"));
469
		champNombre.setFormat(NumberFormat.getFormat("#"));
485
		CellEditor editeurNombre = new CellEditor(champNombre);
470
		CellEditor editeurNombre = new CellEditor(champNombre);
486
		
471
		
487
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
472
		ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
488
		nombreColonne.setEditor(editeurNombre);
473
		nombreColonne.setEditor(editeurNombre);
489
		nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
474
		nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
490
		colonnes.add(nombreColonne);
475
		colonnes.add(nombreColonne);
491
		
476
		
492
		CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {  
477
		CellEditor editeurPrecision = new CellEditor(getChampPrecision()) {  
493
			@Override  
478
			@Override  
494
			public Object preProcessValue(Object valeur) {  
479
			public Object preProcessValue(Object valeur) {  
495
				InterneValeur retour = null;
480
				InterneValeur retour = null;
496
				if (valeur != null ) {
481
				if (valeur != null ) {
497
					if (precisionStore.findModel("nom", valeur.toString()) != null) {
482
					if (precisionStore.findModel("nom", valeur.toString()) != null) {
498
						retour = precisionStore.findModel("nom", valeur.toString());
483
						retour = precisionStore.findModel("nom", valeur.toString());
499
					} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
484
					} else if (precisionStore.findModel("abr", valeur.toString()) != null) {
500
						retour = precisionStore.findModel("abr", valeur.toString());
485
						retour = precisionStore.findModel("abr", valeur.toString());
501
					}
486
					}
502
				}
487
				}
503
				return retour;
488
				return retour;
504
			}  
489
			}  
505
 
490
 
506
			@Override  
491
			@Override  
507
			public Object postProcessValue(Object valeur) {  
492
			public Object postProcessValue(Object valeur) {  
508
				String retour = null;
493
				String retour = null;
509
				if (valeur != null ) {
494
				if (valeur != null ) {
510
					if (valeur instanceof InterneValeur) {
495
					if (valeur instanceof InterneValeur) {
511
						InterneValeur valeurInterne = (InterneValeur) valeur;
496
						InterneValeur valeurInterne = (InterneValeur) valeur;
512
						retour = valeurInterne.getNom();
497
						retour = valeurInterne.getNom();
513
					}
498
					}
514
				}
499
				}
515
				return retour;
500
				return retour;
516
			}  
501
			}  
517
		};
502
		};
518
		
503
		
519
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
504
		ColumnConfig precisionColonne = new ColumnConfig("precision", i18nC.collectionUnitePrecision(), 50);
520
		precisionColonne.setEditor(editeurPrecision);
505
		precisionColonne.setEditor(editeurPrecision);
521
		colonnes.add(precisionColonne);
506
		colonnes.add(precisionColonne);
522
		
507
		
523
		TextField<String> formatChp = new TextField<String>();
508
		TextField<String> formatChp = new TextField<String>();
524
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
509
		ColumnConfig formatColonne =  new ColumnConfig("format", i18nC.collectionUniteFormat(), 100);
525
		formatColonne.setEditor(new CellEditor(formatChp));
510
		formatColonne.setEditor(new CellEditor(formatChp));
526
		colonnes.add(formatColonne);
511
		colonnes.add(formatColonne);
527
		
512
		
528
		ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
513
		ColumnConfig partNombreColonne = new ColumnConfig("nombre_part", i18nC.collectionUniteNbre(), 50);
529
		partNombreColonne.setEditor(editeurNombre);
514
		partNombreColonne.setEditor(editeurNombre);
530
		partNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
515
		partNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
531
		colonnes.add(partNombreColonne);
516
		colonnes.add(partNombreColonne);
532
		
517
		
533
		ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
518
		ColumnConfig partPrecisionColonne = new ColumnConfig("precision_part", i18nC.collectionUnitePrecision(), 50);
534
		partPrecisionColonne.setEditor(editeurPrecision);
519
		partPrecisionColonne.setEditor(editeurPrecision);
535
		colonnes.add(partPrecisionColonne);
520
		colonnes.add(partPrecisionColonne);
536
		
521
		
537
		ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
522
		ColumnConfig spNombreColonne = new ColumnConfig("nombre_sp", i18nC.collectionUniteNbre(), 50);
538
		spNombreColonne.setEditor(editeurNombre);
523
		spNombreColonne.setEditor(editeurNombre);
539
		spNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
524
		spNombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
540
		colonnes.add(spNombreColonne);
525
		colonnes.add(spNombreColonne);
541
		
526
		
542
		ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
527
		ColumnConfig spPrecisionColonne = new ColumnConfig("precision_sp", i18nC.collectionUnitePrecision(), 50);
543
		spPrecisionColonne.setEditor(editeurPrecision);
528
		spPrecisionColonne.setEditor(editeurPrecision);
544
		colonnes.add(spPrecisionColonne);
529
		colonnes.add(spPrecisionColonne);
545
		
530
		
546
		GridSelectionModel<UniteBase> modeleDeSelection = new GridSelectionModel<UniteBase>();
531
		GridSelectionModel<UniteBase> modeleDeSelection = new GridSelectionModel<UniteBase>();
547
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
532
		ColumnModel modeleDeColonnes = new ColumnModel(colonnes);
548
		modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(i18nC.collectionUniteBase(), 1, 4));
533
		modeleDeColonnes.addHeaderGroup(0, 0, new HeaderGroupConfig(i18nC.collectionUniteBase(), 1, 4));
549
		modeleDeColonnes.addHeaderGroup(0, 4, new HeaderGroupConfig(i18nC.collectionUniteBasePart(), 1, 2));
534
		modeleDeColonnes.addHeaderGroup(0, 4, new HeaderGroupConfig(i18nC.collectionUniteBasePart(), 1, 2));
550
		modeleDeColonnes.addHeaderGroup(0, 6, new HeaderGroupConfig(i18nC.collectionUniteBaseSp(), 1, 2));
535
		modeleDeColonnes.addHeaderGroup(0, 6, new HeaderGroupConfig(i18nC.collectionUniteBaseSp(), 1, 2));
551
		
536
		
552
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
537
		AggregationRowConfig<UniteBase> total = new AggregationRowConfig<UniteBase>();
553
		total.setHtml("type", "TOTAL");
538
		total.setHtml("type", "TOTAL");
554
		total.setSummaryType("nombre", SummaryType.SUM);
539
		total.setSummaryType("nombre", SummaryType.SUM);
555
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
540
		total.setSummaryFormat("nombre", NumberFormat.getFormat("#"));
556
		total.setSummaryType("nombre_part", SummaryType.SUM);
541
		total.setSummaryType("nombre_part", SummaryType.SUM);
557
		total.setSummaryFormat("nombre_part", NumberFormat.getFormat("#"));
542
		total.setSummaryFormat("nombre_part", NumberFormat.getFormat("#"));
558
		total.setSummaryType("nombre_sp", SummaryType.SUM);
543
		total.setSummaryType("nombre_sp", SummaryType.SUM);
559
		total.setSummaryFormat("nombre_sp", NumberFormat.getFormat("#"));
544
		total.setSummaryFormat("nombre_sp", NumberFormat.getFormat("#"));
560
		modeleDeColonnes.addAggregationRow(total);
545
		modeleDeColonnes.addAggregationRow(total);
561
		
546
		
562
		EditorGrid<UniteBase> grilleUniteBase = new EditorGrid<UniteBase>(storeGrille, modeleDeColonnes);
547
		EditorGrid<UniteBase> grilleUniteBase = new EditorGrid<UniteBase>(storeGrille, modeleDeColonnes);
563
		grilleUniteBase.setHeight(200);
548
		grilleUniteBase.setHeight(200);
564
		grilleUniteBase.setBorders(true);
549
		grilleUniteBase.setBorders(true);
565
		grilleUniteBase.setSelectionModel(modeleDeSelection);
550
		grilleUniteBase.setSelectionModel(modeleDeSelection);
566
		grilleUniteBase.getView().setForceFit(true);
551
		grilleUniteBase.getView().setForceFit(true);
567
		grilleUniteBase.getView().setAutoFill(true);
552
		grilleUniteBase.getView().setAutoFill(true);
568
		grilleUniteBase.setAutoExpandColumn("type");
553
		grilleUniteBase.setAutoExpandColumn("type");
569
		grilleUniteBase.setStripeRows(true);
554
		grilleUniteBase.setStripeRows(true);
570
		grilleUniteBase.setTrackMouseOver(true);
555
		grilleUniteBase.setTrackMouseOver(true);
571
		
556
		
572
		return grilleUniteBase;
557
		return grilleUniteBase;
573
	}
558
	}
574
	
559
	
575
	private String collecterGrilleUniteBase() {
560
	private String collecterGrilleUniteBase() {
576
		String truk = "";
561
		String truk = "";
577
		int nbreUnite = uniteBaseGrille.getStore().getCount();
562
		int nbreUnite = uniteBaseGrille.getStore().getCount();
578
		for (int i = 0; i < nbreUnite; i++) {
563
		for (int i = 0; i < nbreUnite; i++) {
579
			UniteBase unite = uniteBaseGrille.getStore().getAt(i);
564
			UniteBase unite = uniteBaseGrille.getStore().getAt(i);
580
			if (unite.getTypeAutre()) {
565
			if (unite.getTypeAutre()) {
581
				truk += unite.getType();
566
				truk += unite.getType();
582
			} else {
567
			} else {
583
				truk += unite.getId();
568
				truk += unite.getId();
584
			}
569
			}
585
			truk += aDonnee.SEPARATEUR_TYPE_VALEUR;
570
			truk += aDonnee.SEPARATEUR_TYPE_VALEUR;
586
			truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
571
			truk += UtilNombre.formaterEnEntier(unite.getNombre())+aDonnee.SEPARATEUR_DONNEES;
587
			truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
572
			truk += getPrecisionAbr(unite.getPrecision())+aDonnee.SEPARATEUR_DONNEES;
588
			truk += unite.getFormat()+aDonnee.SEPARATEUR_DONNEES;
573
			truk += unite.getFormat()+aDonnee.SEPARATEUR_DONNEES;
589
			truk += UtilNombre.formaterEnEntier(unite.getNombrePart())+aDonnee.SEPARATEUR_DONNEES;
574
			truk += UtilNombre.formaterEnEntier(unite.getNombrePart())+aDonnee.SEPARATEUR_DONNEES;
590
			truk += getPrecisionAbr(unite.getPrecisionPart())+aDonnee.SEPARATEUR_DONNEES;
575
			truk += getPrecisionAbr(unite.getPrecisionPart())+aDonnee.SEPARATEUR_DONNEES;
591
			truk += UtilNombre.formaterEnEntier(unite.getNombreSp())+aDonnee.SEPARATEUR_DONNEES;
576
			truk += UtilNombre.formaterEnEntier(unite.getNombreSp())+aDonnee.SEPARATEUR_DONNEES;
592
			truk += getPrecisionAbr(unite.getPrecisionSp());
577
			truk += getPrecisionAbr(unite.getPrecisionSp());
593
			truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
578
			truk += (i == (nbreUnite - 1)) ? "" : aDonnee.SEPARATEUR_VALEURS;
594
		}
579
		}
595
		return truk;
580
		return truk;
596
	}
581
	}
597
	
582
	
598
	private void peuplerGrilleUniteBase(String valeurTruk) {
583
	private void peuplerGrilleUniteBase(String valeurTruk) {
599
		if (!UtilString.isEmpty(valeurTruk)) {
584
		if (!UtilString.isEmpty(valeurTruk)) {
600
			HashMap<String,UniteBase> unitesEnregistrees = parserValeurUniteBase(valeurTruk);
585
			HashMap<String,UniteBase> unitesEnregistrees = parserValeurUniteBase(valeurTruk);
601
			
586
			
602
			ArrayList<UniteBase> listeUniteMaj = new ArrayList<UniteBase>();
587
			ArrayList<UniteBase> listeUniteMaj = new ArrayList<UniteBase>();
603
			int nbreUnite = uniteBaseGrille.getStore().getCount();
588
			int nbreUnite = uniteBaseGrille.getStore().getCount();
604
			for (int i = 0; i < nbreUnite; i++) {
589
			for (int i = 0; i < nbreUnite; i++) {
605
				UniteBase uniteDansGrille = uniteBaseGrille.getStore().getAt(i);
590
				UniteBase uniteDansGrille = uniteBaseGrille.getStore().getAt(i);
606
				UniteBase uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
591
				UniteBase uniteEnregistree = unitesEnregistrees.get(uniteDansGrille.getId());
607
				if (uniteEnregistree != null) {
592
				if (uniteEnregistree != null) {
608
					uniteEnregistree.setType(uniteDansGrille.getType());
593
					uniteEnregistree.setType(uniteDansGrille.getType());
609
					listeUniteMaj.add(uniteEnregistree);
594
					listeUniteMaj.add(uniteEnregistree);
610
				} else {
595
				} else {
611
					listeUniteMaj.add(uniteDansGrille);
596
					listeUniteMaj.add(uniteDansGrille);
612
				}
597
				}
613
			}
598
			}
614
			
599
			
615
			Iterator<String> it = unitesEnregistrees.keySet().iterator();
600
			Iterator<String> it = unitesEnregistrees.keySet().iterator();
616
			while (it.hasNext()) {
601
			while (it.hasNext()) {
617
				String cle = it.next();
602
				String cle = it.next();
618
				if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) {
603
				if (cle.matches(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+"[a-zA-Z0-9]+")) {
619
					UniteBase uniteAutreEnregistree = unitesEnregistrees.get(cle);
604
					UniteBase uniteAutreEnregistree = unitesEnregistrees.get(cle);
620
					listeUniteMaj.add(uniteAutreEnregistree);
605
					listeUniteMaj.add(uniteAutreEnregistree);
621
				}
606
				}
622
			}
607
			}
623
			
608
			
624
			uniteBaseGrille.getStore().removeAll();
609
			uniteBaseGrille.getStore().removeAll();
625
			uniteBaseGrille.getStore().add(listeUniteMaj);
610
			uniteBaseGrille.getStore().add(listeUniteMaj);
626
			layout();
611
			layout();
627
		}
612
		}
628
	}
613
	}
629
	
614
	
630
	public static HashMap<String,UniteBase> parserValeurUniteBase(String valeurTruk) {
615
	public static HashMap<String,UniteBase> parserValeurUniteBase(String valeurTruk) {
631
		HashMap<String,UniteBase> unitesEnregistrees = new HashMap<String,UniteBase>();
616
		HashMap<String,UniteBase> unitesEnregistrees = new HashMap<String,UniteBase>();
632
		if (!UtilString.isEmpty(valeurTruk)) {
617
		if (!UtilString.isEmpty(valeurTruk)) {
633
			String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
618
			String[] unites = valeurTruk.split(Pattern.quote(aDonnee.SEPARATEUR_VALEURS));
634
			for (int i = 0; i < unites.length; i++) {
619
			for (int i = 0; i < unites.length; i++) {
635
				String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
620
				String[] uniteTypeIdDonnees = unites[i].split(Pattern.quote(aDonnee.SEPARATEUR_TYPE_VALEUR));
636
				String uniteChaineDonnees = uniteTypeIdDonnees[1];
621
				String uniteChaineDonnees = uniteTypeIdDonnees[1];
637
				String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
622
				String[] uniteDonnees = uniteChaineDonnees.split(Pattern.quote(aDonnee.SEPARATEUR_DONNEES));
638
				
623
				
639
				UniteBase uniteBase = new UniteBase();
624
				UniteBase uniteBase = new UniteBase();
640
				if (uniteDonnees.length > 0) {
625
				if (uniteDonnees.length > 0) {
641
					uniteBase.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
626
					uniteBase.setNombre(UtilString.formaterEnEntier(uniteDonnees[0]));
642
				}
627
				}
643
				if (uniteDonnees.length > 1) {
628
				if (uniteDonnees.length > 1) {
644
					uniteBase.setPrecision(getPrecisionNom(uniteDonnees[1]));
629
					uniteBase.setPrecision(getPrecisionNom(uniteDonnees[1]));
645
				}
630
				}
646
				if (uniteDonnees.length > 2) {
631
				if (uniteDonnees.length > 2) {
647
					uniteBase.setFormat(uniteDonnees[2]);
632
					uniteBase.setFormat(uniteDonnees[2]);
648
				}
633
				}
649
				if (uniteDonnees.length > 3) {
634
				if (uniteDonnees.length > 3) {
650
					uniteBase.setNombrePart(UtilString.formaterEnEntier(uniteDonnees[3]));
635
					uniteBase.setNombrePart(UtilString.formaterEnEntier(uniteDonnees[3]));
651
				}
636
				}
652
				if (uniteDonnees.length > 4) {
637
				if (uniteDonnees.length > 4) {
653
					uniteBase.setPrecisionPart(getPrecisionNom(uniteDonnees[4]));
638
					uniteBase.setPrecisionPart(getPrecisionNom(uniteDonnees[4]));
654
				}
639
				}
655
				if (uniteDonnees.length > 5) {
640
				if (uniteDonnees.length > 5) {
656
					uniteBase.setNombreSp(UtilString.formaterEnEntier(uniteDonnees[5]));
641
					uniteBase.setNombreSp(UtilString.formaterEnEntier(uniteDonnees[5]));
657
				}
642
				}
658
				if (uniteDonnees.length > 6) {
643
				if (uniteDonnees.length > 6) {
659
					uniteBase.setPrecisionSp(getPrecisionNom(uniteDonnees[6]));
644
					uniteBase.setPrecisionSp(getPrecisionNom(uniteDonnees[6]));
660
				}
645
				}
661
				
646
				
662
				if (uniteTypeIdDonnees[0].matches("[0-9]+")) {
647
				if (uniteTypeIdDonnees[0].matches("[0-9]+")) {
663
					uniteBase.setId(uniteTypeIdDonnees[0]);
648
					uniteBase.setId(uniteTypeIdDonnees[0]);
664
					uniteBase.setTypeAutre(false);
649
					uniteBase.setTypeAutre(false);
665
					unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteBase);
650
					unitesEnregistrees.put(uniteTypeIdDonnees[0], uniteBase);
666
				} else {
651
				} else {
667
					uniteBase.setType(uniteTypeIdDonnees[0]);
652
					uniteBase.setType(uniteTypeIdDonnees[0]);
668
					uniteBase.setTypeAutre(true);
653
					uniteBase.setTypeAutre(true);
669
					String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i;
654
					String id = aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0]+"-"+i;
670
					uniteBase.setId(id);
655
					uniteBase.setId(id);
671
					unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteBase);					
656
					unitesEnregistrees.put(aDonnee.TYPE_AUTRE+aDonnee.SEPARATEUR_TYPE_VALEUR+uniteTypeIdDonnees[0], uniteBase);					
672
				}
657
				}
673
			}
658
			}
674
		}
659
		}
675
		return unitesEnregistrees;
660
		return unitesEnregistrees;
676
	}
661
	}
677
	
662
	
678
	private ToolBar creerBarreOutilsGrilleUniteBase() {
663
	private ToolBar creerBarreOutilsGrilleUniteBase() {
679
		ToolBar barreOutils = new ToolBar();  
664
		ToolBar barreOutils = new ToolBar();  
680
		
665
		
681
		Button ajouterBouton = creerBoutonAjouterUniteBase();
666
		Button ajouterBouton = creerBoutonAjouterUniteBase();
682
		barreOutils.add(ajouterBouton);
667
		barreOutils.add(ajouterBouton);
683
		
668
		
684
		barreOutils.add(new SeparatorToolItem());
669
		barreOutils.add(new SeparatorToolItem());
685
		
670
		
686
		Button supprimerBouton = creerBoutonSupprimerUniteBase();
671
		Button supprimerBouton = creerBoutonSupprimerUniteBase();
687
		barreOutils.add(supprimerBouton);		
672
		barreOutils.add(supprimerBouton);		
688
		
673
		
689
		return barreOutils;
674
		return barreOutils;
690
	}
675
	}
691
	
676
	
692
	private Button creerBoutonAjouterUniteBase() {
677
	private Button creerBoutonAjouterUniteBase() {
693
		Button bouton = new Button(i18nC.ajouter());
678
		Button bouton = new Button(i18nC.ajouter());
694
		bouton.setIcon(Images.ICONES.ajouter());
679
		bouton.setIcon(Images.ICONES.ajouter());
695
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
680
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
696
			@Override
681
			@Override
697
			public void componentSelected(ButtonEvent ce) {
682
			public void componentSelected(ButtonEvent ce) {
698
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteBaseSaisirType());
683
				final MessageBox box = MessageBox.prompt(i18nC.collectionUniteType(), i18nC.collectionUniteBaseSaisirType());
699
					box.addCallback(new Listener<MessageBoxEvent>() {
684
					box.addCallback(new Listener<MessageBoxEvent>() {
700
					public void handleEvent(MessageBoxEvent be) {
685
					public void handleEvent(MessageBoxEvent be) {
701
						if (!UtilString.isEmpty(be.getValue()) && !be.getValue().matches("[0-9]+")) {
686
						if (!UtilString.isEmpty(be.getValue()) && !be.getValue().matches("[0-9]+")) {
702
							final UniteBase unite = new UniteBase();
687
							final UniteBase unite = new UniteBase();
703
							unite.setType(be.getValue());
688
							unite.setType(be.getValue());
704
							unite.setTypeAutre(true);
689
							unite.setTypeAutre(true);
705
							uniteBaseGrille.getStore().add(unite);
690
							uniteBaseGrille.getStore().add(unite);
706
						} else {
691
						} else {
707
							InfoLogger.display("Information", "Vous ne pouvez pas saisir de valeur vide ou numérique");
692
							InfoLogger.display("Information", "Vous ne pouvez pas saisir de valeur vide ou numérique");
708
						}
693
						}
709
					}
694
					}
710
				});
695
				});
711
			}
696
			}
712
		});
697
		});
713
		return bouton;
698
		return bouton;
714
	}
699
	}
715
	
700
	
716
	private Button creerBoutonSupprimerUniteBase() {
701
	private Button creerBoutonSupprimerUniteBase() {
717
		Button bouton = new Button(i18nC.supprimer());
702
		Button bouton = new Button(i18nC.supprimer());
718
		bouton.setIcon(Images.ICONES.supprimer());
703
		bouton.setIcon(Images.ICONES.supprimer());
719
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
704
		bouton.addSelectionListener(new SelectionListener<ButtonEvent>() {  
720
			@Override
705
			@Override
721
			public void componentSelected(ButtonEvent ce) {
706
			public void componentSelected(ButtonEvent ce) {
722
				UniteBase uniteBaseSelectionnee = uniteBaseGrille.getSelectionModel().getSelectedItem();
707
				UniteBase uniteBaseSelectionnee = uniteBaseGrille.getSelectionModel().getSelectedItem();
723
				if (uniteBaseSelectionnee == null) {
708
				if (uniteBaseSelectionnee == null) {
724
					InfoLogger.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteBase()));
709
					InfoLogger.display(i18nC.informationTitreGenerique(), Mediateur.i18nM.veuillezSelectionner(i18nC.selectionnerUniteBase()));
725
				} else if (uniteBaseSelectionnee.getTypeAutre() == false) {
710
				} else if (uniteBaseSelectionnee.getTypeAutre() == false) {
726
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteBaseAjoute());
711
					InfoLogger.display(i18nC.informationTitreGenerique(), i18nC.selectionnerUniteBaseAjoute());
727
				} else {
712
				} else {
728
					uniteBaseGrille.getStore().remove(uniteBaseSelectionnee);
713
					uniteBaseGrille.getStore().remove(uniteBaseSelectionnee);
729
				}
714
				}
730
			}   
715
			}   
731
		});
716
		});
732
		return bouton;
717
		return bouton;
733
	}
718
	}
734
	
719
	
735
	private void creerFieldsetConservation() {
720
	private void creerFieldsetConservation() {
736
		FieldSet conservationFieldSet = new FieldSet();
721
		FieldSet conservationFieldSet = new FieldSet();
737
		conservationFieldSet.setHeadingHtml(i18nC.collectionTitreConservation());
722
		conservationFieldSet.setHeadingHtml(i18nC.collectionTitreConservation());
738
		conservationFieldSet.setCollapsible(true);
723
		conservationFieldSet.setCollapsible(true);
-
 
724
		conservationFieldSet.collapse();
739
		conservationFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
725
		conservationFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
740
		
726
		
741
		typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
727
		typePapierConservationChp = new ChampCaseACocher(i18nC.typePapierConservation(), "typePapier", true);
742
		conservationFieldSet.add(typePapierConservationChp);
728
		conservationFieldSet.add(typePapierConservationChp);
743
		
729
		
744
		methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);
730
		methodeConservationChp = new ChampCaseACocher(i18nC.methodeConservation(), "methodeRangement", true);
745
		conservationFieldSet.add(methodeConservationChp);
731
		conservationFieldSet.add(methodeConservationChp);
746
		
732
		
747
		this.add(conservationFieldSet);
733
		this.add(conservationFieldSet);
748
	}
734
	}
749
	
735
	
750
	private void creerFieldsetEtiquette() {
736
	private void creerFieldsetEtiquette() {
751
		FieldSet etiquetteFieldSet = new FieldSet();
737
		FieldSet etiquetteFieldSet = new FieldSet();
752
		etiquetteFieldSet.setHeadingHtml(i18nC.collectionTitreEtiquette());
738
		etiquetteFieldSet.setHeadingHtml(i18nC.collectionTitreEtiquette());
753
		etiquetteFieldSet.setCollapsible(true);
739
		etiquetteFieldSet.setCollapsible(true);
-
 
740
		etiquetteFieldSet.collapse();
754
		etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
741
		etiquetteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
755
		
742
		
756
		Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());
743
		Text fixationPoucentLabel = new Text(i18nC.fixationPourcent());
757
		etiquetteFieldSet.add(fixationPoucentLabel);
744
		etiquetteFieldSet.add(fixationPoucentLabel);
758
		
745
		
759
		specimenFixationPourcentChp = new ChampSliderPourcentage(i18nC.specimenFixationPourcent());
746
		specimenFixationPourcentChp = new ChampSliderPourcentage(i18nC.specimenFixationPourcent());
760
		etiquetteFieldSet.add(specimenFixationPourcentChp, new FormData(200, 0));
747
		etiquetteFieldSet.add(specimenFixationPourcentChp, new FormData(200, 0));
761
		
748
		
762
		etiquetteFixationPourcentChp = new ChampSliderPourcentage(i18nC.etiquetteFixationPourcent());
749
		etiquetteFixationPourcentChp = new ChampSliderPourcentage(i18nC.etiquetteFixationPourcent());
763
		etiquetteFieldSet.add(etiquetteFixationPourcentChp, new FormData(200, 0));
750
		etiquetteFieldSet.add(etiquetteFixationPourcentChp, new FormData(200, 0));
764
		
751
		
765
		specimentMethodeFixationChp = new ChampCaseACocher(i18nC.specimenMethodeFixation(), "methodeFixation", true);
752
		specimentMethodeFixationChp = new ChampCaseACocher(i18nC.specimenMethodeFixation(), "methodeFixation", true);
766
		etiquetteFieldSet.add(specimentMethodeFixationChp);
753
		etiquetteFieldSet.add(specimentMethodeFixationChp);
767
		
754
		
768
		etiquetteMethodeFixationSurSupportChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSupport(), "methodeFixation", true);
755
		etiquetteMethodeFixationSurSupportChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSupport(), "methodeFixation", true);
769
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSupportChp);
756
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSupportChp);
770
		
757
		
771
		etiquetteMethodeFixationSurSpecimenChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSpecimen(), "methodeFixationSurSpecimen", true);
758
		etiquetteMethodeFixationSurSpecimenChp = new ChampCaseACocher(i18nC.etiquetteMethodeFixationSurSpecimen(), "methodeFixationSurSpecimen", true);
772
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSpecimenChp);
759
		etiquetteFieldSet.add(etiquetteMethodeFixationSurSpecimenChp);
773
		
760
		
774
		typeEcritureChp = new ChampCaseACocher(i18nC.typeEcriture(), "typeEcriture", false);
761
		typeEcritureChp = new ChampCaseACocher(i18nC.typeEcriture(), "typeEcriture", false);
775
		etiquetteFieldSet.add(typeEcritureChp);
762
		etiquetteFieldSet.add(typeEcritureChp);
776
		
763
		
777
		this.add(etiquetteFieldSet);
764
		this.add(etiquetteFieldSet);
778
	}
765
	}
779
	
766
	
780
	private void creerFieldsetTraitement() {
767
	private void creerFieldsetTraitement() {
781
		FieldSet traitementFieldSet = new FieldSet();
768
		FieldSet traitementFieldSet = new FieldSet();
782
		traitementFieldSet.setHeadingHtml(i18nC.collectionTitreTraitement());
769
		traitementFieldSet.setHeadingHtml(i18nC.collectionTitreTraitement());
783
		traitementFieldSet.setCollapsible(true);
770
		traitementFieldSet.setCollapsible(true);
-
 
771
		traitementFieldSet.collapse();
784
		traitementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
772
		traitementFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
785
		
773
		
786
		traitementCombo  = new ChampComboBoxListeValeurs(i18nC.collectionTraitement(), "onpi");
774
		traitementCombo  = new ChampComboBoxListeValeurs(i18nC.collectionTraitement(), "onpi");
787
		traitementCombo.setTrie("id_valeur");
775
		traitementCombo.setTrie("id_valeur");
788
		traitementFieldSet.add(traitementCombo, new FormData(300, 0));
776
		traitementFieldSet.add(traitementCombo, new FormData(300, 0));
789
		
777
		
790
		poisonTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementPoison(), "poisonTraitement", true);
778
		poisonTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementPoison(), "poisonTraitement", true);
791
		traitementFieldSet.add(poisonTraitementChp);
779
		traitementFieldSet.add(poisonTraitementChp);
792
		
780
		
793
		insecteTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementInsecte(), "insecteTraitement", true);
781
		insecteTraitementChp = new ChampCaseACocher(i18nC.collectionTraitementInsecte(), "insecteTraitement", true);
794
		traitementFieldSet.add(insecteTraitementChp);
782
		traitementFieldSet.add(insecteTraitementChp);
795
 
783
 
796
		this.add(traitementFieldSet);
784
		this.add(traitementFieldSet);
797
	}
785
	}
798
	
786
	
799
	private void creerFieldsetEtat() {
787
	private void creerFieldsetTypesUniteEtat() {
-
 
788
		FieldSet etatTypesUniteFieldSet = new FieldSet();
800
		FieldSet etatFieldSet = new FieldSet();
789
		// Etat général et nombre d'échantillons (à changer dans l'i18n
801
		etatFieldSet.setHeadingHtml(i18nC.collectionTitreEtatEtDegradation());
790
		etatTypesUniteFieldSet.setHeadingHtml(i18nC.collectionEtatGeneralEtNombreEchantillons());
-
 
791
		etatTypesUniteFieldSet.setCollapsible(true);
802
		etatFieldSet.setCollapsible(true);
792
		etatTypesUniteFieldSet.collapse();
-
 
793
		etatTypesUniteFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
-
 
794
		
-
 
795
		etatUniteRangementCombo = new ChampComboBoxListeValeurs(i18nC.collectionUniteRangementEtatGeneral(), "etat");
-
 
796
		etatUniteRangementCombo.setToolTip(i18nC.collectionUniteRangementEtatGeneralInfo());
-
 
797
		etatUniteRangementCombo.setTrie("id_valeur");
-
 
798
		etatUniteRangementCombo.setWidth(300);
-
 
799
		etatTypesUniteFieldSet.add(etatUniteRangementCombo);
-
 
800
		
-
 
801
		etatTypesUniteFieldSet.add(creerUniteRangement());
-
 
802
		etatTypesUniteFieldSet.add(creerUniteBase());
-
 
803
		
803
		etatFieldSet.setLayout(Formulaire.creerFormLayout(largeurLabelDefaut, alignementLabelDefaut));
804
		add(etatTypesUniteFieldSet);
804
		
805
		
805
		etatGeneralCombo = new ChampComboBoxListeValeurs(i18nC.collectionEtatGeneral(), "etat");
806
		etatGeneralCombo = new ChampComboBoxListeValeurs(i18nC.collectionEtatGeneral(), "etat");
806
		etatGeneralCombo.setToolTip(i18nC.collectionEtatGeneralInfo());
807
		etatGeneralCombo.setToolTip(i18nC.collectionEtatGeneralInfo());
807
		etatGeneralCombo.setTrie("id_valeur");
808
		etatGeneralCombo.setTrie("id_valeur");
808
		etatFieldSet.add(etatGeneralCombo, new FormData(300, 0));
809
		etatTypesUniteFieldSet.add(etatGeneralCombo, new FormData(300, 0));
809
		
810
		
810
		specimenDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationSpecimen(), 150, true);
811
		specimenDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationSpecimen(), 150, true);
811
		specimenDegradationChp.initialiserType("specimenDegradation");
812
		specimenDegradationChp.initialiserType("specimenDegradation");
812
		specimenDegradationChp.initialiserCombobox("niveauImportance");
813
		specimenDegradationChp.initialiserCombobox("niveauImportance");
813
		etatFieldSet.add(specimenDegradationChp);
814
		etatTypesUniteFieldSet.add(specimenDegradationChp);
814
		
815
		
815
		labelPresentationDegradationChp = new Text();
816
		labelPresentationDegradationChp = new Text();
816
		labelPresentationDegradationChp.setWidth("95%");
817
		labelPresentationDegradationChp.setWidth("95%");
817
		labelPresentationDegradationChp.setVisible(false);
818
		labelPresentationDegradationChp.setVisible(false);
818
		
819
		
819
		presentationDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationPresentation(), 150, 200, true);
820
		presentationDegradationChp = new ChampMultiValeursMultiTypes(i18nC.degradationPresentation(), 150, 200, true);
820
		presentationDegradationChp.initialiserType("supportDegradation");
821
		presentationDegradationChp.initialiserType("supportDegradation");
821
		presentationDegradationChp.initialiserCombobox("niveauImportance");
822
		presentationDegradationChp.initialiserCombobox("niveauImportance");
822
		
823
		
823
		presentationDegradationChp.getTypes().addListener(Events.Select,
824
		presentationDegradationChp.getTypes().addListener(Events.Select,
824
			new Listener<FieldEvent>() {
825
			new Listener<FieldEvent>() {
825
				public void handleEvent(FieldEvent be) {
826
				public void handleEvent(FieldEvent be) {
826
					if (((Valeur)(be.getField().getValue())).get("id_valeur").equals("2310")) {
827
					if (((Valeur)(be.getField().getValue())).get("id_valeur").equals("2310")) {
827
						labelPresentationDegradationChp.setText(i18nC.degradationPresentationLabel());
828
						labelPresentationDegradationChp.setText(i18nC.degradationPresentationLabel());
828
						labelPresentationDegradationChp.setVisible(true);
829
						labelPresentationDegradationChp.setVisible(true);
829
					}
830
					}
830
					else {
831
					else {
831
						labelPresentationDegradationChp.setText("");
832
						labelPresentationDegradationChp.setText("");
832
						labelPresentationDegradationChp.setVisible(false);						
833
						labelPresentationDegradationChp.setVisible(false);						
833
					}
834
					}
834
				}		
835
				}		
835
			});
836
			});
836
		etatFieldSet.add(presentationDegradationChp);
837
		etatTypesUniteFieldSet.add(presentationDegradationChp);
837
		etatFieldSet.add(labelPresentationDegradationChp);
838
		etatTypesUniteFieldSet.add(labelPresentationDegradationChp);
838
		
839
		
839
		determinationCombo = new ChampComboBoxListeValeurs(i18nC.collectionDetermination(), "niveauDetermination");
840
		determinationCombo = new ChampComboBoxListeValeurs(i18nC.collectionDetermination(), "niveauDetermination");
840
		determinationCombo.setTrie("id_valeur");
841
		determinationCombo.setTrie("id_valeur");
841
		etatFieldSet.add(determinationCombo, new FormData(450, 0));
842
		etatTypesUniteFieldSet.add(determinationCombo, new FormData(450, 0));
842
		
843
		
843
		this.add(etatFieldSet);
844
		this.add(etatTypesUniteFieldSet);
844
	}
845
	}
845
	
846
	
846
	public void peupler() {
847
	public void peupler() {
847
		initialiserCollection();
848
		initialiserCollection();
848
		if (collectionBotanique != null) {
849
		if (collectionBotanique != null) {
849
			typesCollectionBotaCombo.peupler(collectionBotanique.getType());
850
			typesCollectionBotaCombo.peupler(collectionBotanique.getType());
850
			if (!UtilString.isEmpty(collectionBotanique.getNbreEchantillon())) {
851
			if (!UtilString.isEmpty(collectionBotanique.getNbreEchantillon())) {
851
				nbreEchantillonChp.setValue(Integer.parseInt(collectionBotanique.getNbreEchantillon()));
852
				nbreEchantillonChp.setValue(Integer.parseInt(collectionBotanique.getNbreEchantillon()));
852
			}
853
			}
853
			
854
			
854
			peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
855
			peuplerGrilleUniteRangement(collectionBotanique.getUniteRangement());
855
			etatUniteRangementCombo.peupler(collectionBotanique.getUniteRangementEtat());
856
			etatUniteRangementCombo.peupler(collectionBotanique.getUniteRangementEtat());
856
			
857
			
857
			peuplerGrilleUniteBase(collectionBotanique.getUniteBase());
858
			peuplerGrilleUniteBase(collectionBotanique.getUniteBase());
858
			
859
			
859
			typePapierConservationChp.peupler(collectionBotanique.getConservationPapierType());
860
			typePapierConservationChp.peupler(collectionBotanique.getConservationPapierType());
860
			methodeConservationChp.peupler(collectionBotanique.getConservationMethode());
861
			methodeConservationChp.peupler(collectionBotanique.getConservationMethode());
861
			
862
			
862
			specimenFixationPourcentChp.peupler(collectionBotanique.getSpecimenFixationPourcent());
863
			specimenFixationPourcentChp.peupler(collectionBotanique.getSpecimenFixationPourcent());
863
			etiquetteFixationPourcentChp.peupler(collectionBotanique.getEtiquetteFixationPourcent());
864
			etiquetteFixationPourcentChp.peupler(collectionBotanique.getEtiquetteFixationPourcent());
864
			specimentMethodeFixationChp.peupler(collectionBotanique.getSpecimenFixationMethode());
865
			specimentMethodeFixationChp.peupler(collectionBotanique.getSpecimenFixationMethode());
865
			etiquetteMethodeFixationSurSupportChp.peupler(collectionBotanique.getEtiquetteFixationSupport());
866
			etiquetteMethodeFixationSurSupportChp.peupler(collectionBotanique.getEtiquetteFixationSupport());
866
			etiquetteMethodeFixationSurSpecimenChp.peupler(collectionBotanique.getEtiquetteFixationSpecimen());
867
			etiquetteMethodeFixationSurSpecimenChp.peupler(collectionBotanique.getEtiquetteFixationSpecimen());
867
			typeEcritureChp.peupler(collectionBotanique.getEtiquetteEcriture());
868
			typeEcritureChp.peupler(collectionBotanique.getEtiquetteEcriture());
868
			
869
			
869
			traitementCombo.peupler(collectionBotanique.getTraitement());
870
			traitementCombo.peupler(collectionBotanique.getTraitement());
870
			poisonTraitementChp.peupler(collectionBotanique.getTraitementPoison());
871
			poisonTraitementChp.peupler(collectionBotanique.getTraitementPoison());
871
			insecteTraitementChp.peupler(collectionBotanique.getTraitementInsecte());
872
			insecteTraitementChp.peupler(collectionBotanique.getTraitementInsecte());
872
			
873
			
873
			etatGeneralCombo.peupler(collectionBotanique.getEtatGeneral());
874
			etatGeneralCombo.peupler(collectionBotanique.getEtatGeneral());
874
			specimenDegradationChp.peupler(collectionBotanique.getDegradationSpecimen());
875
			specimenDegradationChp.peupler(collectionBotanique.getDegradationSpecimen());
875
			presentationDegradationChp.peupler(collectionBotanique.getDegradationPresentation());
876
			presentationDegradationChp.peupler(collectionBotanique.getDegradationPresentation());
876
			determinationCombo.peupler(collectionBotanique.getDetermination());
877
			determinationCombo.peupler(collectionBotanique.getDetermination());
877
		}		
878
		}		
878
	}
879
	}
879
	
880
	
880
	public void collecter() {
881
	public void collecter() {
881
		initialiserCollection();
882
		initialiserCollection();
882
		if (etreAccede()) {
883
		if (etreAccede()) {
883
			collectionBotaniqueCollectee.setType(typesCollectionBotaCombo.getValeur());
884
			collectionBotaniqueCollectee.setType(typesCollectionBotaCombo.getValeur());
884
			if (nbreEchantillonChp.getValue() != null) {
885
			if (nbreEchantillonChp.getValue() != null) {
885
				collectionBotaniqueCollectee.setNbreEchantillon(Integer.toString(nbreEchantillonChp.getValue().intValue()));
886
				collectionBotaniqueCollectee.setNbreEchantillon(Integer.toString(nbreEchantillonChp.getValue().intValue()));
886
			}
887
			}
887
			
888
			
888
			collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
889
			collectionBotaniqueCollectee.setUniteRangement(collecterGrilleUniteRangement());
889
			collectionBotaniqueCollectee.setUniteRangementEtat(etatUniteRangementCombo.getValeur());
890
			collectionBotaniqueCollectee.setUniteRangementEtat(etatUniteRangementCombo.getValeur());
890
			
891
			
891
			collectionBotaniqueCollectee.setUniteBase(collecterGrilleUniteBase());
892
			collectionBotaniqueCollectee.setUniteBase(collecterGrilleUniteBase());
892
			
893
			
893
			collectionBotaniqueCollectee.setConservationPapierType(typePapierConservationChp.getValeur());
894
			collectionBotaniqueCollectee.setConservationPapierType(typePapierConservationChp.getValeur());
894
			collectionBotaniqueCollectee.setConservationMethode(methodeConservationChp.getValeur());
895
			collectionBotaniqueCollectee.setConservationMethode(methodeConservationChp.getValeur());
895
			
896
			
896
			collectionBotaniqueCollectee.setSpecimenFixationPourcent(specimenFixationPourcentChp.getValeur());
897
			collectionBotaniqueCollectee.setSpecimenFixationPourcent(specimenFixationPourcentChp.getValeur());
897
			collectionBotaniqueCollectee.setEtiquetteFixationPourcent(etiquetteFixationPourcentChp.getValeur());
898
			collectionBotaniqueCollectee.setEtiquetteFixationPourcent(etiquetteFixationPourcentChp.getValeur());
898
			collectionBotaniqueCollectee.setSpecimenFixationMethode(specimentMethodeFixationChp.getValeur());
899
			collectionBotaniqueCollectee.setSpecimenFixationMethode(specimentMethodeFixationChp.getValeur());
899
			collectionBotaniqueCollectee.setEtiquetteFixationSupport(etiquetteMethodeFixationSurSupportChp.getValeur());
900
			collectionBotaniqueCollectee.setEtiquetteFixationSupport(etiquetteMethodeFixationSurSupportChp.getValeur());
900
			collectionBotaniqueCollectee.setEtiquetteFixationSpecimen(etiquetteMethodeFixationSurSpecimenChp.getValeur());
901
			collectionBotaniqueCollectee.setEtiquetteFixationSpecimen(etiquetteMethodeFixationSurSpecimenChp.getValeur());
901
			collectionBotaniqueCollectee.setEtiquetteEcriture(typeEcritureChp.getValeur());
902
			collectionBotaniqueCollectee.setEtiquetteEcriture(typeEcritureChp.getValeur());
902
			
903
			
903
			collectionBotaniqueCollectee.setTraitement(traitementCombo.getValeur());
904
			collectionBotaniqueCollectee.setTraitement(traitementCombo.getValeur());
904
			collectionBotaniqueCollectee.setTraitementPoison(poisonTraitementChp.getValeur());
905
			collectionBotaniqueCollectee.setTraitementPoison(poisonTraitementChp.getValeur());
905
			collectionBotaniqueCollectee.setTraitementInsecte(insecteTraitementChp.getValeur());
906
			collectionBotaniqueCollectee.setTraitementInsecte(insecteTraitementChp.getValeur());
906
			
907
			
907
			collectionBotaniqueCollectee.setEtatGeneral(etatGeneralCombo.getValeur());
908
			collectionBotaniqueCollectee.setEtatGeneral(etatGeneralCombo.getValeur());
908
			collectionBotaniqueCollectee.setDegradationSpecimen(specimenDegradationChp.getValeurs());
909
			collectionBotaniqueCollectee.setDegradationSpecimen(specimenDegradationChp.getValeurs());
909
			collectionBotaniqueCollectee.setDegradationPresentation(presentationDegradationChp.getValeurs());
910
			collectionBotaniqueCollectee.setDegradationPresentation(presentationDegradationChp.getValeurs());
910
			collectionBotaniqueCollectee.setDetermination(determinationCombo.getValeur());
911
			collectionBotaniqueCollectee.setDetermination(determinationCombo.getValeur());
911
		}
912
		}
912
	}
913
	}
913
 
914
 
914
	private void initialiserCollection() {
915
	private void initialiserCollection() {
915
		collection = ((CollectionForm) formulaire).collection;
916
		collection = ((CollectionForm) formulaire).collection;
916
		if (collection != null) {
917
		if (collection != null) {
917
			collectionBotanique = collection.getBotanique();
918
			collectionBotanique = collection.getBotanique();
918
		}
919
		}
919
		
920
		
920
		collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
921
		collectionCollectee = ((CollectionForm) formulaire).collectionCollectee;
921
		if (collectionCollectee != null) {
922
		if (collectionCollectee != null) {
922
			collectionBotaniqueCollectee = collectionCollectee.getBotanique();
923
			collectionBotaniqueCollectee = collectionCollectee.getBotanique();
923
		}
924
		}
924
	}
925
	}
925
	
926
	
926
	public void rafraichir(Object nouvellesDonnees) {
927
	public void rafraichir(Object nouvellesDonnees) {
927
		if (nouvellesDonnees instanceof ValeurListe) {
928
		if (nouvellesDonnees instanceof ValeurListe) {
928
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
929
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
929
			rafraichirValeurListe(listeValeurs);
930
			rafraichirValeurListe(listeValeurs);
930
		} else {
931
		} else {
931
			Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
932
			Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));
932
		}
933
		}
933
	}
934
	}
934
	
935
	
935
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
936
	private void rafraichirValeurListe(ValeurListe listeValeurs) {
936
		if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {
937
		if (listeValeurs.getId().equals(config.getListeId("typeUniteRangement"))) {
937
			Iterator<String> it = listeValeurs.keySet().iterator();
938
			Iterator<String> it = listeValeurs.keySet().iterator();
938
			while (it.hasNext()) {
939
			while (it.hasNext()) {
939
				Valeur valeur = listeValeurs.get(it.next());
940
				Valeur valeur = listeValeurs.get(it.next());
940
				UniteRangement unite = new UniteRangement();
941
				UniteRangement unite = new UniteRangement();
941
				unite.setId(valeur.getId());
942
				unite.setId(valeur.getId());
942
				unite.setType(valeur.getNom());
943
				unite.setType(valeur.getNom());
943
				unite.setTypeAutre(false);
944
				unite.setTypeAutre(false);
944
				uniteRangementGrille.getStore().add(unite);
945
				uniteRangementGrille.getStore().add(unite);
945
			}
946
			}
946
		} else if (listeValeurs.getId().equals(config.getListeId("typeUniteBase"))) {
947
		} else if (listeValeurs.getId().equals(config.getListeId("typeUniteBase"))) {
947
			Iterator<String> it = listeValeurs.keySet().iterator();
948
			Iterator<String> it = listeValeurs.keySet().iterator();
948
			while (it.hasNext()) {
949
			while (it.hasNext()) {
949
				Valeur valeur = listeValeurs.get(it.next());
950
				Valeur valeur = listeValeurs.get(it.next());
950
				UniteBase unite = new UniteBase();
951
				UniteBase unite = new UniteBase();
951
				unite.setId(valeur.getId());
952
				unite.setId(valeur.getId());
952
				unite.setType(valeur.getNom());
953
				unite.setType(valeur.getNom());
953
				unite.setTypeAutre(false);
954
				unite.setTypeAutre(false);
954
				uniteBaseGrille.getStore().add(unite);
955
				uniteBaseGrille.getStore().add(unite);
955
			}
956
			}
956
		} else {
957
		} else {
957
			Debug.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!");
958
			Debug.log("Gestion de la liste "+listeValeurs.getId()+" non implémenté!");
958
		}
959
		}
959
	}
960
	}
960
}
961
}