Subversion Repositories eFlore/Applications.coel

Rev

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

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