Subversion Repositories eFlore/Applications.coel

Rev

Rev 1180 | Rev 1262 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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