Subversion Repositories eFlore/Applications.coel

Rev

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

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