Subversion Repositories eFlore/Applications.coel

Rev

Rev 1641 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1641 Rev 1642
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
2
 
2
 
3
import java.util.HashMap;
3
import java.util.HashMap;
4
 
4
 
5
import org.tela_botanica.client.Mediateur;
5
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.images.Images;
6
import org.tela_botanica.client.images.Images;
7
import org.tela_botanica.client.modeles.Valeur;
7
import org.tela_botanica.client.modeles.Valeur;
8
import org.tela_botanica.client.modeles.aDonnee;
8
import org.tela_botanica.client.modeles.aDonnee;
9
import org.tela_botanica.client.util.Debug;
9
import org.tela_botanica.client.util.Debug;
10
 
10
 
11
import com.extjs.gxt.ui.client.event.ButtonEvent;
11
import com.extjs.gxt.ui.client.event.ButtonEvent;
12
import com.extjs.gxt.ui.client.event.Events;
12
import com.extjs.gxt.ui.client.event.Events;
13
import com.extjs.gxt.ui.client.event.FieldEvent;
13
import com.extjs.gxt.ui.client.event.FieldEvent;
14
import com.extjs.gxt.ui.client.event.Listener;
14
import com.extjs.gxt.ui.client.event.Listener;
15
import com.extjs.gxt.ui.client.event.SelectionListener;
15
import com.extjs.gxt.ui.client.event.SelectionListener;
16
import com.extjs.gxt.ui.client.store.ListStore;
16
import com.extjs.gxt.ui.client.store.ListStore;
17
import com.extjs.gxt.ui.client.widget.LayoutContainer;
17
import com.extjs.gxt.ui.client.widget.LayoutContainer;
18
import com.extjs.gxt.ui.client.widget.MessageBox;
18
import com.extjs.gxt.ui.client.widget.MessageBox;
19
import com.extjs.gxt.ui.client.widget.Text;
19
import com.extjs.gxt.ui.client.widget.Text;
20
import com.extjs.gxt.ui.client.widget.button.Button;
20
import com.extjs.gxt.ui.client.widget.button.Button;
21
import com.extjs.gxt.ui.client.widget.form.ComboBox;
21
import com.extjs.gxt.ui.client.widget.form.ComboBox;
22
import com.extjs.gxt.ui.client.widget.form.Field;
22
import com.extjs.gxt.ui.client.widget.form.Field;
23
import com.extjs.gxt.ui.client.widget.form.HiddenField;
23
import com.extjs.gxt.ui.client.widget.form.HiddenField;
24
import com.extjs.gxt.ui.client.widget.form.LabelField;
24
import com.extjs.gxt.ui.client.widget.form.LabelField;
25
import com.extjs.gxt.ui.client.widget.form.TextField;
25
import com.extjs.gxt.ui.client.widget.form.TextField;
26
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
26
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
27
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
27
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
28
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
28
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
29
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
30
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
30
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
31
 
31
 
32
public class ChampMultiValeurs extends LayoutContainer {
32
public class ChampMultiValeurs extends LayoutContainer {
33
	//TODO : changer le champRecapitulatif par une hashMap
33
	//TODO : changer le champRecapitulatif par une hashMap
34
	//TODO : autoriser la modification des champs saisis
34
	//TODO : autoriser la modification des champs saisis
35
 
35
 
36
	String idChampCache = null;
36
	String idChampCache = null;
37
	
37
	
38
	String nomLabelChampTxt = "";
38
	String nomLabelChampTxt = "";
39
	
39
	
40
	String titreErreur = null;
40
	String titreErreur = null;
41
	String valeurVideMsg = null;
41
	String valeurVideMsg = null;
42
	String valeurIdentiqueMsg = null;
42
	String valeurIdentiqueMsg = null;
43
	String valeurNonValideMsg = null;
43
	String valeurNonValideMsg = null;
44
	
44
	
45
	String valeurParDefaut = "";
45
	String valeurParDefaut = "";
46
	String validationMasque = null;
46
	String validationMasque = null;
47
	String exempleValidation = null;
47
	String exempleValidation = null;
48
	String boutonSupprimerLabel = "";
48
	String boutonSupprimerLabel = "";
49
	
49
	
50
	LayoutContainer principalLayout = null;
50
	LayoutContainer principalLayout = null;
51
	Field<String> champValeurTxt = null;
51
	Field<String> champValeurTxt = null;
52
	ComboBox<Valeur> champValeurCombo = null;
52
	ComboBox<Valeur> champValeurCombo = null;
53
	HiddenField<String> champRecapitulatif = null;
53
	HiddenField<String> champRecapitulatif = null;
54
	HashMap<String, LayoutContainer> valeurs = null;
54
	HashMap<String, LayoutContainer> valeurs = null;
55
	ComboBox<Valeur> types = null;
55
	ComboBox<Valeur> types = null;
56
	
56
	
57
	int largeurTotale = 420;
57
	int largeurTotale = 420;
58
	int largeurBouton = 20;
58
	int largeurBouton = 20;
59
	int largeurChamp = 0;
59
	int largeurChamp = 0;
60
	int largeurType = 0;
60
	int largeurType = 0;
61
 	
61
 	
62
	boolean estMultiType = false;
62
	boolean estMultiType = false;
63
	boolean estComboBox = false;
63
	boolean estComboBox = false;
64
	
64
	
65
	public ChampMultiValeurs() {
65
	public ChampMultiValeurs() {
66
		initialiserChampMultiValeur(null, 0);
66
		initialiserChampMultiValeur(null, 0);
67
	}
67
	}
68
	
68
	
69
	public ChampMultiValeurs(String label) {
69
	public ChampMultiValeurs(String label) {
70
		initialiserChampMultiValeur(label, 0);
70
		initialiserChampMultiValeur(label, 0);
71
	}
71
	}
72
	
72
	
73
	public ChampMultiValeurs(String label, int largeurTotale) {
73
	public ChampMultiValeurs(String label, int largeurTotale) {
74
		initialiserChampMultiValeur(label, largeurTotale);
74
		initialiserChampMultiValeur(label, largeurTotale);
75
	}
75
	}
76
	
76
	
77
	public ChampMultiValeurs(boolean estMultiType, String label, int largeurTotale, int largeurType) {
77
	public ChampMultiValeurs(boolean estMultiType, String label, int largeurTotale, int largeurType) {
78
		this.estMultiType = estMultiType;
78
		this.estMultiType = estMultiType;
79
		initialiserChampMultiValeur(label, largeurTotale);
79
		initialiserChampMultiValeur(label, largeurTotale);
80
	}
80
	}
81
		
81
		
82
	public ChampMultiValeurs(boolean estCombobox, boolean estMultiType, String label, int largeurTotale, int largeurType) {
82
	public ChampMultiValeurs(boolean estCombobox, boolean estMultiType, String label, int largeurTotale, int largeurType) {
83
		this.estMultiType = estMultiType;
83
		this.estMultiType = estMultiType;
84
		this.estComboBox = estCombobox;
84
		this.estComboBox = estCombobox;
85
		setLargeurType(largeurType);
85
		setLargeurType(largeurType);
86
		initialiserChampMultiValeur(label, largeurTotale);
86
		initialiserChampMultiValeur(label, largeurTotale);
87
	}
87
	}
88
	
88
	
89
	public ComboBox<Valeur> getTypes() {
89
	public ComboBox<Valeur> getTypes() {
90
		return this.types;
90
		return this.types;
91
	}
91
	}
92
	
92
	
93
	public void setLabel(String label) {
93
	public void setLabel(String label) {
94
		if (label == null) {
94
		if (label == null) {
95
			label = "";
95
			label = "";
96
		}
96
		}
97
		nomLabelChampTxt = label;
97
		nomLabelChampTxt = label;
98
	}
98
	}
99
	
99
	
100
	public void setLargeurChamp(int largeurMax) {
100
	public void setLargeurChamp(int largeurMax) {
101
		if (largeurMax != 0 && largeurMax > 20) {
101
		if (largeurMax != 0 && largeurMax > 20) {
102
			largeurTotale = largeurMax;
102
			largeurTotale = largeurMax;
103
		}
103
		}
104
		
104
		
105
		largeurChamp = largeurTotale - largeurBouton;
105
		largeurChamp = largeurTotale - largeurBouton;
106
	}
106
	}
107
	
107
	
108
	public void setLargeurType(int largeur) {
108
	public void setLargeurType(int largeur) {
109
		largeurType = largeur;
109
		largeurType = largeur;
110
	}
110
	}
111
		
111
		
112
	public void setValidation (String validation, String exempleValidation)	{
112
	public void setValidation (String validation, String exempleValidation)	{
113
		this.validationMasque = validation;
113
		this.validationMasque = validation;
114
		this.exempleValidation = exempleValidation;
114
		this.exempleValidation = exempleValidation;
115
		
115
		
116
		this.valeurNonValideMsg = Mediateur.i18nM.valeurNonValideMsg(exempleValidation);
116
		this.valeurNonValideMsg = Mediateur.i18nM.valeurNonValideMsg(exempleValidation);
117
	}
117
	}
118
	
118
	
119
	public void setValeurParDefaut(String valeur)	{
119
	public void setValeurParDefaut(String valeur)	{
120
		this.valeurParDefaut = valeur;
120
		this.valeurParDefaut = valeur;
121
		champValeurTxt.setValue(valeur);
121
		champValeurTxt.setValue(valeur);
122
	}
122
	}
123
	
123
	
124
	public void setValeurBoutonSupprimer(String valeur)	{
124
	public void setValeurBoutonSupprimer(String valeur)	{
125
		this.boutonSupprimerLabel = valeur;
125
		this.boutonSupprimerLabel = valeur;
126
	}
126
	}
127
	
127
	
128
	private void initialiserChampMultiValeur(String label, int largeur) {
128
	private void initialiserChampMultiValeur(String label, int largeur) {
129
		setLabel(label);
129
		setLabel(label);
130
		setLargeurChamp(largeur);
130
		setLargeurChamp(largeur);
131
		
131
		
132
		titreErreur = Mediateur.i18nC.erreurSaisieTitre();
132
		titreErreur = Mediateur.i18nC.erreurSaisieTitre();
133
		valeurVideMsg = Mediateur.i18nC.demanderValeur();
133
		valeurVideMsg = Mediateur.i18nC.demanderValeur();
134
		valeurIdentiqueMsg = Mediateur.i18nC.valeurDejaPresente();
134
		valeurIdentiqueMsg = Mediateur.i18nC.valeurDejaPresente();
135
		
135
		
136
		valeurs = new HashMap<String, LayoutContainer>();
136
		valeurs = new HashMap<String, LayoutContainer>();
137
		champRecapitulatif = new HiddenField<String>();
137
		champRecapitulatif = new HiddenField<String>();
138
		champRecapitulatif.setValue("");
138
		champRecapitulatif.setValue("");
139
		
139
		
140
		setLayout(new FormLayout());
140
		setLayout(new FormLayout());
141
		
141
		
142
		creerChampMultiValeurs();
142
		creerChampMultiValeurs();
143
	}
143
	}
144
	
144
	
145
	private void creerChampMultiValeurs() {
145
	private void creerChampMultiValeurs() {
146
		principalLayout = new LayoutContainer();
146
		principalLayout = new LayoutContainer();
147
		principalLayout.setLayout(new RowLayout());
147
		principalLayout.setLayout(new RowLayout());
148
		
148
		
149
		LabelField label = new LabelField(nomLabelChampTxt + ":");
149
		LabelField label = new LabelField(nomLabelChampTxt + ":");
150
		label.setWidth("95%");
150
		label.setWidth("95%");
151
		principalLayout.add(label);
151
		principalLayout.add(label);
152
		
152
		
153
		LayoutContainer colonneConteneur = new LayoutContainer();
153
		LayoutContainer colonneConteneur = new LayoutContainer();
154
		colonneConteneur.setLayout(new ColumnLayout());
154
		colonneConteneur.setLayout(new ColumnLayout());
155
		
155
		
156
		if (estMultiType == true)	{
156
		if (estMultiType == true)	{
157
			types = new ComboBox<Valeur>();
157
			types = new ComboBox<Valeur>();
158
			types.setDisplayField("nom");
158
			types.setDisplayField("nom");
159
			types.setEmptyText("Choisissez:");			
159
			types.setEmptyText("Choisissez:");			
160
			types.setStore(new ListStore<Valeur>());
160
			types.setStore(new ListStore<Valeur>());
161
			types.setTypeAhead(true);
161
			types.setTypeAhead(true);
162
			types.setTriggerAction(TriggerAction.ALL);
162
			types.setTriggerAction(TriggerAction.ALL);
163
			
163
			
164
			types.addListener(Events.Select, new Listener<FieldEvent>() {
164
			types.addListener(Events.Select, new Listener<FieldEvent>() {
165
				public void handleEvent(FieldEvent fe) {
165
				public void handleEvent(FieldEvent fe) {
166
 
166
 
167
				}
167
				}
168
			});
168
			});
169
			
169
			
170
			colonneConteneur.add(types, new ColumnData(largeurType));
170
			colonneConteneur.add(types, new ColumnData(largeurType));
171
		}
171
		}
172
		
172
		
173
		if (estComboBox) {
173
		if (estComboBox) {
174
			champValeurCombo = new ComboBox<Valeur>();
174
			champValeurCombo = new ComboBox<Valeur>();
175
			champValeurCombo.setDisplayField("nom");
175
			champValeurCombo.setDisplayField("nom");
176
			champValeurCombo.setStore(new ListStore<Valeur>());
176
			champValeurCombo.setStore(new ListStore<Valeur>());
177
			colonneConteneur.add(champValeurCombo, new ColumnData(largeurChamp));			
177
			colonneConteneur.add(champValeurCombo, new ColumnData(largeurChamp));			
178
		} else {
178
		} else {
179
			champValeurTxt = new TextField<String>();
179
			champValeurTxt = new TextField<String>();
180
			colonneConteneur.add(champValeurTxt, new ColumnData(largeurChamp));
180
			colonneConteneur.add(champValeurTxt, new ColumnData(largeurChamp));
181
		}
181
		}
182
		Button ajouterBouton = new Button();
182
		Button ajouterBouton = new Button();
183
		ajouterBouton.setIcon(Images.ICONES.ajouter());
183
		ajouterBouton.setIcon(Images.ICONES.ajouter());
184
		ajouterBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
184
		ajouterBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
185
			public void componentSelected(ButtonEvent ce) {
185
			public void componentSelected(ButtonEvent ce) {
186
				surAjoutValeur(true);
186
				surAjoutValeur(true);
187
			}
187
			}
188
		});
188
		});
189
		colonneConteneur.add(ajouterBouton, new ColumnData(largeurBouton));
189
		colonneConteneur.add(ajouterBouton, new ColumnData(largeurBouton));
190
		
190
		
191
		principalLayout.add(champRecapitulatif);
191
		principalLayout.add(champRecapitulatif);
192
		principalLayout.add(colonneConteneur);
192
		principalLayout.add(colonneConteneur);
193
		add(principalLayout);
193
		add(principalLayout);
194
	}
194
	}
195
	
195
	
196
	private void surAjoutValeur(boolean validerChamp) {
196
	private void surAjoutValeur(boolean validerChamp) {
197
		String valeurChamp = "";
197
		String valeurChamp = "";
198
		if (estComboBox) {
198
		if (estComboBox) {
199
			if (champValeurCombo.getValue() != null) {
199
			if (champValeurCombo.getValue() != null) {
200
				valeurChamp = champValeurCombo.getValue().getId();
200
				valeurChamp = champValeurCombo.getValue().getId();
201
			}
201
			}
202
		} else {
202
		} else {
203
			valeurChamp = champValeurTxt.getValue();
203
			valeurChamp = champValeurTxt.getValue();
204
		}
204
		}
205
		
205
		
206
		if ((valeurChamp == null) || valeurChamp.trim().equals("") || valeurChamp.trim().equals(valeurParDefaut))	{
206
		if ((valeurChamp == null) || valeurChamp.trim().equals("") || valeurChamp.trim().equals(valeurParDefaut))	{
207
			if(validerChamp) {
207
			if(validerChamp) {
208
				MessageBox.alert(titreErreur, valeurVideMsg, null);
208
				MessageBox.alert(titreErreur, valeurVideMsg, null);
209
			}
209
			}
210
		} else if (valeurs.get(valeurChamp) != null) {
210
		} else if (valeurs.get(valeurChamp) != null) {
211
			if(validerChamp) {
211
			if(validerChamp) {
212
				MessageBox.alert(titreErreur, valeurIdentiqueMsg, null);
212
				MessageBox.alert(titreErreur, valeurIdentiqueMsg, null);
213
			}
213
			}
214
		} else {
214
		} else {
215
			if (validationMasque != null && !valeurChamp.matches(validationMasque)) {
215
			if (validationMasque != null && !valeurChamp.matches(validationMasque)) {
216
				if(validerChamp) {
216
				if(validerChamp) {
217
					MessageBox.alert(titreErreur, valeurNonValideMsg, null);
217
					MessageBox.alert(titreErreur, valeurNonValideMsg, null);
218
				}
218
				}
219
			} else {
219
			} else {
220
				if (estMultiType)	{
220
				if (estMultiType)	{
221
					String type = "";
221
					String type = "";
222
					String id = "";
222
					String id = "";
223
					Valeur valeur = types.getValue();
223
					Valeur valeur = types.getValue();
224
		
224
		
225
					if (valeur != null)	{
225
					if (valeur != null)	{
226
						type = valeur.getNom();
226
						type = valeur.getNom();
227
						id = valeur.getId();
227
						id = valeur.getId();
228
					} else {
228
					} else {
229
						type = types.getRawValue();
229
						type = types.getRawValue();
230
						id = type;
230
						id = type;
231
					}
231
					}
232
	
232
	
233
					if (type.trim().equals(""))	{
233
					if (type.trim().equals(""))	{
234
						MessageBox.alert(Mediateur.i18nM.titreErreurSaisie(), Mediateur.i18nM.typeChampMulti(), null);
234
						MessageBox.alert(Mediateur.i18nM.titreErreurSaisie(), Mediateur.i18nM.typeChampMulti(), null);
235
					} else {
235
					} else {
236
						ajouterValeur(valeurChamp, type, id);
236
						ajouterValeur(valeurChamp, type, id);
237
					}
237
					}
238
				} else {
238
				} else {
239
					ajouterValeur(valeurChamp);
239
					ajouterValeur(valeurChamp);
240
				}
240
				}
241
			}
241
			}
242
		}
242
		}
243
	}
243
	}
-
 
244
	
-
 
245
	//TODO: la fonction est valide et la fonction surAjoutValeur ont beaucoup en commun
-
 
246
	// voir si on peut les factoriser (ou déplacer les alertes dans les classes appelantes)
-
 
247
	public boolean estValide(boolean autoriserVide) {
-
 
248
		boolean valide = true;
-
 
249
		String valeurChamp = "";
-
 
250
		if (estComboBox) {
-
 
251
			if (champValeurCombo.getValue() != null) {
-
 
252
				valeurChamp = champValeurCombo.getValue().getId();
-
 
253
			}
-
 
254
		} else {
-
 
255
			valeurChamp = champValeurTxt.getValue();
-
 
256
		}
-
 
257
		
-
 
258
		if ((valeurChamp == null) || valeurChamp.trim().equals("") || valeurChamp.trim().equals(valeurParDefaut))	{
-
 
259
			if(!autoriserVide) {
-
 
260
				valide = false;
-
 
261
			}
-
 
262
		} else if (valeurs.get(valeurChamp) != null) {
-
 
263
			if(!autoriserVide) {
-
 
264
				valide = false;
-
 
265
			}
-
 
266
		} else {
-
 
267
			if (validationMasque != null && !valeurChamp.matches(validationMasque)) {
-
 
268
					valide = false;
-
 
269
			} else {
-
 
270
				if (estMultiType)	{
-
 
271
					String type = "";
-
 
272
					String id = "";
-
 
273
					Valeur valeur = types.getValue();
-
 
274
		
-
 
275
					if (valeur != null)	{
-
 
276
						type = valeur.getNom();
-
 
277
						id = valeur.getId();
-
 
278
					} else {
-
 
279
						type = types.getRawValue();
-
 
280
						id = type;
-
 
281
					}
-
 
282
	
-
 
283
					if (type.trim().equals(""))	{
-
 
284
						valide = false;
-
 
285
					}
-
 
286
				}
-
 
287
			}
-
 
288
		}
-
 
289
		return valide;
-
 
290
	}
244
	
291
	
245
	public void ajouterValeur(final String texte, final String strValeur, final String id)	{
292
	public void ajouterValeur(final String texte, final String strValeur, final String id)	{
246
		//Implémenté dans classe inférieure
293
		//Implémenté dans classe inférieure
247
	}
294
	}
248
	
295
	
249
	public void ajouterValeur(final String texte) 	{
296
	public void ajouterValeur(final String texte) 	{
250
		
297
		
251
		LayoutContainer colonneLayout = new LayoutContainer();
298
		LayoutContainer colonneLayout = new LayoutContainer();
252
		colonneLayout.setLayout(new ColumnLayout());
299
		colonneLayout.setLayout(new ColumnLayout());
253
		valeurs.put(texte, colonneLayout);
300
		valeurs.put(texte, colonneLayout);
254
		
301
		
255
		Text champTxt = new Text();
302
		Text champTxt = new Text();
256
		champTxt.setText(texte);
303
		champTxt.setText(texte);
257
		colonneLayout.add(champTxt, new ColumnData(largeurChamp));
304
		colonneLayout.add(champTxt, new ColumnData(largeurChamp));
258
		
305
		
259
		Button supprimerBouton = new Button();
306
		Button supprimerBouton = new Button();
260
		supprimerBouton.setIcon(Images.ICONES.supprimer());
307
		supprimerBouton.setIcon(Images.ICONES.supprimer());
261
		supprimerBouton.setText(boutonSupprimerLabel);
308
		supprimerBouton.setText(boutonSupprimerLabel);
262
		supprimerBouton.setData("valeur", texte);
309
		supprimerBouton.setData("valeur", texte);
263
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
310
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
264
			public void componentSelected(ButtonEvent ce) {
311
			public void componentSelected(ButtonEvent ce) {
265
				String valeur = ce.getComponent().getData("valeur");
312
				String valeur = ce.getComponent().getData("valeur");
266
				LayoutContainer valeurLayout = valeurs.get(valeur);
313
				LayoutContainer valeurLayout = valeurs.get(valeur);
267
				principalLayout.remove(valeurLayout);
314
				principalLayout.remove(valeurLayout);
268
				
315
				
269
				valeurs.remove(valeur);
316
				valeurs.remove(valeur);
270
 
317
 
271
				supprimerValeurDuRecapitulatif(valeur);
318
				supprimerValeurDuRecapitulatif(valeur);
272
				
319
				
273
				actualiserLayoutGlobal();
320
				actualiserLayoutGlobal();
274
			}
321
			}
275
		});
322
		});
276
		colonneLayout.add(supprimerBouton, new ColumnData(largeurBouton));
323
		colonneLayout.add(supprimerBouton, new ColumnData(largeurBouton));
277
		
324
		
278
		// Ajout du layout de la valeur au layout principal
325
		// Ajout du layout de la valeur au layout principal
279
		principalLayout.add(colonneLayout);
326
		principalLayout.add(colonneLayout);
280
		
327
		
281
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
328
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
282
		ajouterValeurAuRecapitulatif(texte);
329
		ajouterValeurAuRecapitulatif(texte);
283
		reinitialiserChamp();
330
		reinitialiserChamp();
284
		actualiserLayoutGlobal();
331
		actualiserLayoutGlobal();
285
	}
332
	}
286
	
333
	
287
	public void reinitialiserChamp()	{
334
	public void reinitialiserChamp()	{
288
		if (estComboBox) {
335
		if (estComboBox) {
289
			champValeurCombo.setValue(champValeurCombo.getStore().findModel("id_valeur", valeurParDefaut));
336
			champValeurCombo.setValue(champValeurCombo.getStore().findModel("id_valeur", valeurParDefaut));
290
		} else {
337
		} else {
291
			champValeurTxt.setValue(valeurParDefaut);
338
			champValeurTxt.setValue(valeurParDefaut);
292
		}
339
		}
293
		
340
		
294
		if (estMultiType) {
341
		if (estMultiType) {
295
			types.reset();
342
			types.reset();
296
		}
343
		}
297
	}
344
	}
298
	
345
	
299
	public void actualiserLayoutGlobal() {
346
	public void actualiserLayoutGlobal() {
300
		layout();
347
		layout();
301
	}
348
	}
302
	
349
	
303
	public void ajouterValeurAuRecapitulatif(String texte) {
350
	public void ajouterValeurAuRecapitulatif(String texte) {
304
		String texteRecapitulatif = "";
351
		String texteRecapitulatif = "";
305
		if (champRecapitulatif.getValue() != null)	{
352
		if (champRecapitulatif.getValue() != null)	{
306
			texteRecapitulatif = champRecapitulatif.getValue();
353
			texteRecapitulatif = champRecapitulatif.getValue();
307
		}
354
		}
308
		texteRecapitulatif += texte + aDonnee.SEPARATEUR_VALEURS;
355
		texteRecapitulatif += texte + aDonnee.SEPARATEUR_VALEURS;
309
		champRecapitulatif.setValue(texteRecapitulatif);
356
		champRecapitulatif.setValue(texteRecapitulatif);
310
	}
357
	}
311
	
358
	
312
	public void supprimerValeurDuRecapitulatif(String texte) {
359
	public void supprimerValeurDuRecapitulatif(String texte) {
313
 
360
 
314
		if (champRecapitulatif.getValue() != null)	{
361
		if (champRecapitulatif.getValue() != null)	{
315
			String texteValeur = "";
362
			String texteValeur = "";
316
			if (estComboBox) {
363
			if (estComboBox) {
317
				// comme c'est le nom de la valeur qui est passée en paramètre,
364
				// comme c'est le nom de la valeur qui est passée en paramètre,
318
				// on doit récupérer son id
365
				// on doit récupérer son id
319
				ListStore<Valeur> valeurs = champValeurCombo.getStore();
366
				ListStore<Valeur> valeurs = champValeurCombo.getStore();
320
				Valeur objetValeur = valeurs.findModel("nom", texte);
367
				Valeur objetValeur = valeurs.findModel("nom", texte);
321
				
368
				
322
				if (objetValeur != null)	{
369
				if (objetValeur != null)	{
323
					texteValeur = objetValeur.getId();
370
					texteValeur = objetValeur.getId();
324
				} else {
371
				} else {
325
					texteValeur = texte;
372
					texteValeur = texte;
326
				}
373
				}
327
			} else {
374
			} else {
328
				texteValeur = texte;
375
				texteValeur = texte;
329
			}
376
			}
330
			
377
			
331
			String texteRecapitulatif = champRecapitulatif.getValue();
378
			String texteRecapitulatif = champRecapitulatif.getValue();
332
			texteRecapitulatif = texteRecapitulatif.replace(texteValeur + aDonnee.SEPARATEUR_VALEURS, "");
379
			texteRecapitulatif = texteRecapitulatif.replace(texteValeur + aDonnee.SEPARATEUR_VALEURS, "");
333
			champRecapitulatif.setValue(texteRecapitulatif);
380
			champRecapitulatif.setValue(texteRecapitulatif);
334
		}
381
		}
335
	}
382
	}
336
	
383
	
337
	public String getValeurs() {
384
	public String getValeurs() {
338
		// permet de s'assurer qu'une valeur saisie dans le champ mais non ajoutée par le 
385
		// permet de s'assurer qu'une valeur saisie dans le champ mais non ajoutée par le 
339
		// clic sur le + soit bien prise en compte
386
		// clic sur le + soit bien prise en compte
340
		surAjoutValeur(false);
387
		surAjoutValeur(false);
341
		String texteRecapitulatif = "";
388
		String texteRecapitulatif = "";
342
		if (champRecapitulatif.getValue() != null) {
389
		if (champRecapitulatif.getValue() != null) {
343
			texteRecapitulatif = champRecapitulatif.getValue();
390
			texteRecapitulatif = champRecapitulatif.getValue();
344
			texteRecapitulatif = texteRecapitulatif.replaceAll("(.*)"+aDonnee.SEPARATEUR_VALEURS+"$", "$1");
391
			texteRecapitulatif = texteRecapitulatif.replaceAll("(.*)"+aDonnee.SEPARATEUR_VALEURS+"$", "$1");
345
		}
392
		}
346
		return texteRecapitulatif;
393
		return texteRecapitulatif;
347
	}
394
	}
348
	
395
	
349
	public void peupler(String chaineExistante) {
396
	public void peupler(String chaineExistante) {
350
		if (valeurs.size()>0)	{
397
		if (valeurs.size()>0)	{
351
			reinitialiser();
398
			reinitialiser();
352
		}
399
		}
353
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
400
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
354
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
401
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
355
			for (int i = 0; i < valeurs.length; i++) {
402
			for (int i = 0; i < valeurs.length; i++) {
356
				ajouterValeur(valeurs[i]);
403
				ajouterValeur(valeurs[i]);
357
			}
404
			}
358
		}
405
		}
359
	}
406
	}
360
	
407
	
361
	public void reinitialiser()	{
408
	public void reinitialiser()	{
362
		//TODO : pourrait etre mieux fait si les valeurs étaient enregistrées dans un 
409
		//TODO : pourrait etre mieux fait si les valeurs étaient enregistrées dans un 
363
		// layout particulier. Il suffirait alors d'enlever les valeurs de ce layout.
410
		// layout particulier. Il suffirait alors d'enlever les valeurs de ce layout.
364
		principalLayout.removeAll();
411
		principalLayout.removeAll();
365
		initialiserChampMultiValeur(nomLabelChampTxt, largeurTotale);
412
		initialiserChampMultiValeur(nomLabelChampTxt, largeurTotale);
366
	}
413
	}
367
}
414
}