Subversion Repositories eFlore/Applications.coel

Rev

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

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