Subversion Repositories eFlore/Applications.coel

Rev

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

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