Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1329 Rev 1369
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.RegistreId;
6
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.composants.pagination.Proxy;
7
import org.tela_botanica.client.composants.pagination.Proxy;
8
import org.tela_botanica.client.composants.pagination.ProxyValeur;
8
import org.tela_botanica.client.composants.pagination.ProxyValeur;
9
import org.tela_botanica.client.images.Images;
9
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
10
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.modeles.Valeur;
11
import org.tela_botanica.client.modeles.Valeur;
12
import org.tela_botanica.client.modeles.aDonnee;
12
import org.tela_botanica.client.modeles.aDonnee;
13
import org.tela_botanica.client.util.Debug;
13
import org.tela_botanica.client.util.Debug;
14
 
14
 
15
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Registry;
16
import com.extjs.gxt.ui.client.data.ModelData;
16
import com.extjs.gxt.ui.client.data.ModelData;
17
import com.extjs.gxt.ui.client.data.ModelType;
17
import com.extjs.gxt.ui.client.data.ModelType;
18
import com.extjs.gxt.ui.client.event.ButtonEvent;
18
import com.extjs.gxt.ui.client.event.ButtonEvent;
19
import com.extjs.gxt.ui.client.event.Events;
19
import com.extjs.gxt.ui.client.event.Events;
20
import com.extjs.gxt.ui.client.event.FieldEvent;
20
import com.extjs.gxt.ui.client.event.FieldEvent;
21
import com.extjs.gxt.ui.client.event.Listener;
21
import com.extjs.gxt.ui.client.event.Listener;
22
import com.extjs.gxt.ui.client.event.SelectionListener;
22
import com.extjs.gxt.ui.client.event.SelectionListener;
23
import com.extjs.gxt.ui.client.store.ListStore;
23
import com.extjs.gxt.ui.client.store.ListStore;
24
import com.extjs.gxt.ui.client.widget.LayoutContainer;
24
import com.extjs.gxt.ui.client.widget.LayoutContainer;
25
import com.extjs.gxt.ui.client.widget.MessageBox;
25
import com.extjs.gxt.ui.client.widget.MessageBox;
26
import com.extjs.gxt.ui.client.widget.Text;
26
import com.extjs.gxt.ui.client.widget.Text;
27
import com.extjs.gxt.ui.client.widget.button.Button;
27
import com.extjs.gxt.ui.client.widget.button.Button;
28
import com.extjs.gxt.ui.client.widget.form.ComboBox;
28
import com.extjs.gxt.ui.client.widget.form.ComboBox;
29
import com.extjs.gxt.ui.client.widget.form.Field;
29
import com.extjs.gxt.ui.client.widget.form.Field;
30
import com.extjs.gxt.ui.client.widget.form.HiddenField;
30
import com.extjs.gxt.ui.client.widget.form.HiddenField;
31
import com.extjs.gxt.ui.client.widget.form.LabelField;
31
import com.extjs.gxt.ui.client.widget.form.LabelField;
32
import com.extjs.gxt.ui.client.widget.form.TextField;
32
import com.extjs.gxt.ui.client.widget.form.TextField;
33
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
33
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
34
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
34
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
35
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
35
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
36
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
36
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
37
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
37
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
38
 
38
 
39
public class ChampMultiValeursPaginable extends LayoutContainer implements Rafraichissable {
39
public class ChampMultiValeursPaginable extends LayoutContainer implements Rafraichissable {
40
	//TODO : changer le champRecapitulatif par une hashMap
40
	//TODO : changer le champRecapitulatif par une hashMap
41
	//TODO : autoriser la modification des champs saisis
41
	//TODO : autoriser la modification des champs saisis
42
 
42
 
43
	  //-------------//
43
	  //-------------//
44
	 //  ATTRIBUTS	//
44
	 //  ATTRIBUTS	//
45
	//-------------//
45
	//-------------//
46
	
46
	
47
	Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
47
	Mediateur mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
48
	
48
	
49
	String idChampCache = null;
49
	String idChampCache = null;
50
	String titreErreur = null;
50
	String titreErreur = null;
51
	String valeurVideMsg = null;
51
	String valeurVideMsg = null;
52
	String valeurIdentiqueMsg = null;
52
	String valeurIdentiqueMsg = null;
53
	String valeurNonValideMsg = null;
53
	String valeurNonValideMsg = null;
54
	String valeurParDefaut = "";
54
	String valeurParDefaut = "";
55
	String validationMasque = null;
55
	String validationMasque = null;
56
	String exempleValidation = null;
56
	String exempleValidation = null;
57
	boolean champValeurEstComboBox = false;
57
	boolean champValeurEstComboBox = false;
58
 
58
 
59
	// Elements pour le champ 'valeurs'
59
	// Elements pour le champ 'valeurs'
60
	Field<String> champValeurTxt = null;
60
	Field<String> champValeurTxt = null;
61
	ChampComboBoxRechercheTempsReelPaginable champValeurComboBox = null;
61
	ChampComboBoxRechercheTempsReelPaginable champValeurComboBox = null;
62
	HiddenField<String> champRecapitulatif = null;
62
	HiddenField<String> champRecapitulatif = null;
63
	HashMap<String, LayoutContainer> valeurs = null;
63
	HashMap<String, LayoutContainer> valeurs = null;
64
	
64
	
65
	// Elements pour gérer le type de valeurs que contient le champ
65
	// Elements pour gérer le type de valeurs que contient le champ
66
	Proxy proxyChampValeur = null;
66
	Proxy proxyChampValeur = null;
67
	ModelType modeltypeChampValeur = null;
67
	ModelType modeltypeChampValeur = null;
68
	String displayNameChampValeur = "nom";
68
	String displayNameChampValeur = "nom";
69
	
69
	
70
	// Elements pour l'UI
70
	// Elements pour l'UI
71
	LayoutContainer principalLayout = null;
71
	LayoutContainer principalLayout = null;
72
	LayoutContainer colonneConteneur = null;
72
	LayoutContainer colonneConteneur = null;
73
	ColumnData colonneChampValeur = null;
73
	ColumnData colonneChampValeur = null;
74
	ColumnData colonneBoutonAjouter = null;
74
	ColumnData colonneBoutonAjouter = null;
75
	Button ajouterBouton = null;
75
	Button ajouterBouton = null;
76
	int largeurTotale = 500;
76
	int largeurTotale = 500;
77
	int largeurBouton = 20;
77
	int largeurBouton = 20;
78
	int largeurChampValeur = 200;
78
	int largeurChampValeur = 200;
79
	String boutonSupprimerLabel = "";	
79
	String boutonSupprimerLabel = "";	
80
	String nomLabelChampTxt = "";
80
	String nomLabelChampTxt = "";
81
 
81
 
82
 
82
 
83
	  //-------------//
83
	  //-------------//
84
	 //   METHODES	//
84
	 //   METHODES	//
85
	//-------------//
85
	//-------------//
86
 
86
 
87
	/*--------------
87
	/*--------------
88
	  Constructeur 
88
	  Constructeur 
89
	--------------*/
89
	--------------*/
90
	// Usage :	Si champValeurEstComboBox est FAUX alors modeltype, proxy et displayName doivent être à Null.
90
	// Usage :	Si champValeurEstComboBox est FAUX alors modeltype, proxy et displayName doivent être à Null.
91
	//			Sinon ils doivent impérativement être non nuls.			
91
	//			Sinon ils doivent impérativement être non nuls.			
92
	public ChampMultiValeursPaginable(String label, int largeurTotale, boolean champValeurEstComboBox, ModelType modeltype, Proxy proxy, String displayName) {	
92
	public ChampMultiValeursPaginable(String label, int largeurTotale, boolean champValeurEstComboBox, ModelType modeltype, Proxy proxy, String displayName) {	
93
		this.champValeurEstComboBox = champValeurEstComboBox;
93
		this.champValeurEstComboBox = champValeurEstComboBox;
94
		
94
		
95
		if (champValeurEstComboBox) {
95
		if (champValeurEstComboBox) {
96
			if ((proxy == null) || (modeltype == null) || (displayName == null)) {
96
			if ((proxy == null) || (modeltype == null) || (displayName == null)) {
97
				MessageBox.alert("[ERREUR]","Constructeur de ChampMultiValeursPaginable - paramètre Null",null);
97
				MessageBox.alert("[ERREUR]","Constructeur de ChampMultiValeursPaginable - paramètre Null",null);
98
			}
98
			}
99
			else {
99
			else {
100
				this.proxyChampValeur = proxy;
100
				this.proxyChampValeur = proxy;
101
				this.modeltypeChampValeur = modeltype;
101
				this.modeltypeChampValeur = modeltype;
102
				this.displayNameChampValeur = displayName;
102
				this.displayNameChampValeur = displayName;
103
			}
103
			}
104
		}
104
		}
105
		
105
		
106
		initialiserChampMultiValeursPaginable(label, largeurTotale);
106
		initialiserChampMultiValeursPaginable(label, largeurTotale);
107
	}
107
	}
108
 
108
 
109
	/*------------
109
	/*------------
110
	  Accesseurs 
110
	  Accesseurs 
111
	------------*/
111
	------------*/
112
	
112
	
113
	 //------------//
113
	 //------------//
114
	//    Get     //------------------------------------------------------------
114
	//    Get     //------------------------------------------------------------
115
	
115
	
116
	public ChampComboBoxRechercheTempsReelPaginable getChampValeurComboBox() {
116
	public ChampComboBoxRechercheTempsReelPaginable getChampValeurComboBox() {
117
		if (champValeurEstComboBox) return this.champValeurComboBox;
117
		if (champValeurEstComboBox) return this.champValeurComboBox;
118
		else return null;
118
		else return null;
119
	}
119
	}
120
 
120
 
121
	public Field getChampValeurTxt() {
121
	public Field getChampValeurTxt() {
122
		if (!champValeurEstComboBox) return this.champValeurTxt;
122
		if (!champValeurEstComboBox) return this.champValeurTxt;
123
		else return null;
123
		else return null;
124
	}
124
	}
125
	
125
	
126
	public String getLabel() {
126
	public String getLabel() {
127
		return this.nomLabelChampTxt;
127
		return this.nomLabelChampTxt;
128
	}
128
	}
129
	
129
	
130
	public String getValeurs() {
130
	public String getValeurs() {
131
		String texteRecapitulatif = "";
131
		String texteRecapitulatif = "";
132
		if (champRecapitulatif.getValue() != null) {
132
		if (champRecapitulatif.getValue() != null) {
133
			texteRecapitulatif = champRecapitulatif.getValue();
133
			texteRecapitulatif = champRecapitulatif.getValue();
134
			texteRecapitulatif = texteRecapitulatif.replaceAll("(.*)"+aDonnee.SEPARATEUR_VALEURS+"$", "$1");
134
			texteRecapitulatif = texteRecapitulatif.replaceAll("(.*)"+aDonnee.SEPARATEUR_VALEURS+"$", "$1");
135
		}
135
		}
136
		return texteRecapitulatif;
136
		return texteRecapitulatif;
137
	}
137
	}
138
	
138
	
139
	 //------------//
139
	 //------------//
140
	//    Set     //------------------------------------------------------------
140
	//    Set     //------------------------------------------------------------
141
	
141
	
142
	public void setLabel(String label) {
142
	public void setLabel(String label) {
143
		if (label == null) {
143
		if (label == null) {
144
			label = "";
144
			label = "";
145
		}
145
		}
146
		nomLabelChampTxt = label;
146
		nomLabelChampTxt = label;
147
	}
147
	}
148
	
148
	
149
	public void setLargeurTotale(int largeur) {
149
	public void setLargeurTotale(int largeur) {
150
		this.largeurTotale = largeur;
150
		this.largeurTotale = largeur;
151
		largeurChampValeur = largeurTotale - largeurBouton;
151
		largeurChampValeur = largeurTotale - largeurBouton;
152
	}
152
	}
153
		
153
		
154
	public void setValidation (String validation, String exempleValidation)	{
154
	public void setValidation (String validation, String exempleValidation)	{
155
		this.validationMasque = validation;
155
		this.validationMasque = validation;
156
		this.exempleValidation = exempleValidation;
156
		this.exempleValidation = exempleValidation;
157
		
157
		
158
		this.valeurNonValideMsg = Mediateur.i18nM.valeurNonValideMsg(exempleValidation);
158
		this.valeurNonValideMsg = Mediateur.i18nM.valeurNonValideMsg(exempleValidation);
159
	}
159
	}
160
	
160
	
161
	public void setValeurParDefaut(String valeur)	{
161
	public void setValeurParDefaut(String valeur)	{
162
		this.valeurParDefaut = valeur;
162
		this.valeurParDefaut = valeur;
163
		champValeurTxt.setValue(valeur);
163
		champValeurTxt.setValue(valeur);
164
	}
164
	}
165
	
165
	
166
	public void setValeurBoutonSupprimer(String valeur)	{
166
	public void setValeurBoutonSupprimer(String valeur)	{
167
		this.boutonSupprimerLabel = valeur;
167
		this.boutonSupprimerLabel = valeur;
168
	}
168
	}
169
	
169
	
170
	/*------------------
170
	/*------------------
171
	  Méthodes publiques 
171
	  Méthodes publiques 
172
	-------------------*/
172
	-------------------*/
173
	public void peupler(String chaineExistante) {
173
	public void peupler(String chaineExistante) {
174
		if (valeurs.size()>0)	{
174
		if (valeurs.size()>0)	{
175
			reinitialiser();
175
			reinitialiser();
176
		}
176
		}
177
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
177
		if (chaineExistante != null && !chaineExistante.trim().equals("")) {
178
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
178
			String[] valeurs = chaineExistante.split(aDonnee.SEPARATEUR_VALEURS);
179
			for (int i = 0; i < valeurs.length; i++) {
179
			for (int i = 0; i < valeurs.length; i++) {
180
				ajouterValeur(valeurs[i]);
180
				ajouterValeur(valeurs[i]);
181
			}
181
			}
182
		}
182
		}
183
	}
183
	}
184
	
184
	
185
	public void rafraichir(Object nouvellesDonnees) {
185
	public void rafraichir(Object nouvellesDonnees) {
186
		
186
		
187
	}
187
	}
188
	
188
	
189
	/*-------------------
189
	/*-------------------
190
	  Méthodes protégées 
190
	  Méthodes protégées 
191
	--------------------*/
191
	--------------------*/
192
	protected void ajouterValeur(final String texte, final String strValeur, final String id)	{
192
	protected void ajouterValeur(final String texte, final String strValeur, final String id)	{
193
		//Implémenté dans classe inférieure
193
		//Implémenté dans classe inférieure
194
	}
194
	}
195
	
195
	
196
	protected void ajouterValeur(final String texte) 	{
196
	protected void ajouterValeur(final String texte) 	{
197
		LayoutContainer colonneLayout = new LayoutContainer();
197
		LayoutContainer colonneLayout = new LayoutContainer();
198
		colonneLayout.setLayout(new ColumnLayout());
198
		colonneLayout.setLayout(new ColumnLayout());
199
		valeurs.put(texte, colonneLayout);
199
		valeurs.put(texte, colonneLayout);
200
		
200
		
201
		Text champTxt = new Text();
201
		Text champTxt = new Text();
202
		champTxt.setText(texte);
202
		champTxt.setText(texte);
203
		colonneLayout.add(champTxt, new ColumnData(largeurChampValeur));
203
		colonneLayout.add(champTxt, new ColumnData(largeurChampValeur));
204
		
204
		
205
		Button supprimerBouton = new Button();
205
		Button supprimerBouton = new Button();
206
		supprimerBouton.setIcon(Images.ICONES.supprimer());
206
		supprimerBouton.setIcon(Images.ICONES.supprimer());
207
		supprimerBouton.setText(boutonSupprimerLabel);
207
		supprimerBouton.setText(boutonSupprimerLabel);
208
		supprimerBouton.setData("valeur", texte);
208
		supprimerBouton.setData("valeur", texte);
209
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
209
		supprimerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
210
			public void componentSelected(ButtonEvent ce) {
210
			public void componentSelected(ButtonEvent ce) {
211
				String valeur = ce.getComponent().getData("valeur");
211
				String valeur = ce.getComponent().getData("valeur");
212
				LayoutContainer valeurLayout = valeurs.get(valeur);
212
				LayoutContainer valeurLayout = valeurs.get(valeur);
213
				principalLayout.remove(valeurLayout);
213
				principalLayout.remove(valeurLayout);
214
				valeurs.remove(valeur);
214
				valeurs.remove(valeur);
215
				supprimerValeurDuRecapitulatif(valeur);
215
				supprimerValeurDuRecapitulatif(valeur);
216
				actualiserLayoutGlobal();
216
				actualiserLayoutGlobal();
217
			}
217
			}
218
		});
218
		});
219
		colonneLayout.add(supprimerBouton, new ColumnData(largeurBouton));
219
		colonneLayout.add(supprimerBouton, new ColumnData(largeurBouton));
220
		
220
		
221
		// Ajout du layout de la valeur au layout principal
221
		// Ajout du layout de la valeur au layout principal
222
		principalLayout.add(colonneLayout);
222
		principalLayout.add(colonneLayout);
223
		
223
		
224
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
224
		// Ajout de la valeur au champ récapitulatif des valeurs ajoutées
225
		ajouterValeurAuRecapitulatif(texte);
225
		ajouterValeurAuRecapitulatif(texte);
226
		reinitialiserChamp();
226
		reinitialiserChamp();
227
		actualiserLayoutGlobal();
227
		actualiserLayoutGlobal();
228
	}
228
	}
229
	
229
	
230
	protected void reinitialiserChamp()	{
230
	protected void reinitialiserChamp()	{
231
		if (champValeurEstComboBox) {
231
		if (champValeurEstComboBox) {
232
			champValeurComboBox.getCombo().clear();
232
			champValeurComboBox.getCombo().clear();
233
		} else {
233
		} else {
234
			champValeurTxt.setValue(valeurParDefaut);
234
			champValeurTxt.setValue(valeurParDefaut);
235
		}
235
		}
236
	}
236
	}
237
	
237
	
238
	protected void actualiserLayoutGlobal() {
238
	protected void actualiserLayoutGlobal() {
239
		layout();
239
		layout();
240
	}
240
	}
241
	
241
	
242
	protected void ajouterValeurAuRecapitulatif(String texte) {
242
	protected void ajouterValeurAuRecapitulatif(String texte) {
243
		String texteRecapitulatif = "";
243
		String texteRecapitulatif = "";
244
		if (champRecapitulatif.getValue() != null)	{
244
		if (champRecapitulatif.getValue() != null)	{
245
			texteRecapitulatif = champRecapitulatif.getValue();
245
			texteRecapitulatif = champRecapitulatif.getValue();
246
		}
246
		}
247
		texteRecapitulatif += texte + aDonnee.SEPARATEUR_VALEURS;
247
		texteRecapitulatif += texte + aDonnee.SEPARATEUR_VALEURS;
248
		champRecapitulatif.setValue(texteRecapitulatif);
248
		champRecapitulatif.setValue(texteRecapitulatif);
249
	}
249
	}
250
	
250
	
251
	protected void supprimerValeurDuRecapitulatif(String texte) {
251
	protected void supprimerValeurDuRecapitulatif(String texte) {
252
		if (champRecapitulatif.getValue() != null)	{
252
		if (champRecapitulatif.getValue() != null)	{
253
			String texteRecapitulatif = champRecapitulatif.getValue();
253
			String texteRecapitulatif = champRecapitulatif.getValue();
254
			texteRecapitulatif = texteRecapitulatif.replace(texte + aDonnee.SEPARATEUR_VALEURS, "");
254
			texteRecapitulatif = texteRecapitulatif.replace(texte + aDonnee.SEPARATEUR_VALEURS, "");
255
			champRecapitulatif.setValue(texteRecapitulatif);
255
			champRecapitulatif.setValue(texteRecapitulatif);
256
		}
256
		}
257
	}
257
	}
258
	
258
	
259
	protected void reinitialiser() {
259
	protected void reinitialiser() {
260
		//TODO : pourrait etre mieux fait si les valeurs étaient enregistrées dans un 
260
		//TODO : pourrait etre mieux fait si les valeurs étaient enregistrées dans un 
261
		// layout particulier. Il suffirait alors d'enlever les valeurs de ce layout.
261
		// layout particulier. Il suffirait alors d'enlever les valeurs de ce layout.
262
		principalLayout.removeAll();
262
		principalLayout.removeAll();
263
		initialiserChampMultiValeursPaginable(nomLabelChampTxt, largeurTotale);
263
		initialiserChampMultiValeursPaginable(nomLabelChampTxt, largeurTotale);
264
	}
264
	}
265
	
265
	
266
	/*------------------
266
	/*------------------
267
	  Méthodes privées 
267
	  Méthodes privées 
268
	-------------------*/
268
	-------------------*/
269
	private void initialiserChampMultiValeursPaginable(String label, int largeurTotale) {		
269
	private void initialiserChampMultiValeursPaginable(String label, int largeurTotale) {		
270
		setLabel(label);
270
		setLabel(label);
271
		setLargeurTotale(largeurTotale);
271
		setLargeurTotale(largeurTotale);
272
		
272
		
273
		titreErreur = Mediateur.i18nC.erreurSaisieTitre();
273
		titreErreur = Mediateur.i18nC.erreurSaisieTitre();
274
		valeurVideMsg = Mediateur.i18nC.demanderValeur();
274
		valeurVideMsg = Mediateur.i18nC.demanderValeur();
275
		valeurIdentiqueMsg = Mediateur.i18nC.valeurDejaPresente();
275
		valeurIdentiqueMsg = Mediateur.i18nC.valeurDejaPresente();
276
	
276
	
277
		valeurs = new HashMap<String, LayoutContainer>();
277
		valeurs = new HashMap<String, LayoutContainer>();
278
		champRecapitulatif = new HiddenField<String>();
278
		champRecapitulatif = new HiddenField<String>();
279
		champRecapitulatif.setValue("");
279
		champRecapitulatif.setValue("");
280
	
280
	
281
		setLayout(new FormLayout());
281
		setLayout(new FormLayout());
282
	
282
	
283
		creerChampMultiValeurs();
283
		creerChampMultiValeurs();
284
	}
284
	}
285
 
285
 
286
	private void creerChampMultiValeurs() {		
286
	private void creerChampMultiValeurs() {		
287
		principalLayout = new LayoutContainer();
287
		principalLayout = new LayoutContainer();
288
		principalLayout.setLayout(new RowLayout());
288
		principalLayout.setLayout(new RowLayout());
289
		
289
		
290
		/* Creation du champ Valeur */
290
		/* Creation du champ Valeur */
291
		LabelField label = new LabelField(nomLabelChampTxt + ":");
291
		LabelField label = new LabelField(nomLabelChampTxt + ":");
292
		label.setWidth("95%");
292
		label.setWidth("95%");
293
		principalLayout.add(label);
293
		principalLayout.add(label);
294
		
294
		
295
		colonneConteneur = new LayoutContainer();
295
		colonneConteneur = new LayoutContainer();
296
		colonneConteneur.setLayout(new ColumnLayout());	
296
		colonneConteneur.setLayout(new ColumnLayout());	
297
		colonneChampValeur = new ColumnData(largeurChampValeur);
297
		colonneChampValeur = new ColumnData(largeurChampValeur);
298
		
298
		
299
		if (champValeurEstComboBox) {			
299
		if (champValeurEstComboBox) {			
300
			champValeurComboBox = new ChampComboBoxRechercheTempsReelPaginable(proxyChampValeur, modeltypeChampValeur, displayNameChampValeur);
300
			champValeurComboBox = new ChampComboBoxRechercheTempsReelPaginable(proxyChampValeur, modeltypeChampValeur, displayNameChampValeur);
301
			champValeurComboBox.setWidth(largeurChampValeur);
301
			champValeurComboBox.setWidth(largeurChampValeur);
302
			champValeurComboBox.getCombo().setEmptyText("Valeur...");
302
			champValeurComboBox.getCombo().setEmptyText("Valeur...");
303
			colonneConteneur.add(champValeurComboBox, colonneChampValeur);			
303
			colonneConteneur.add(champValeurComboBox, colonneChampValeur);			
304
		} else {
304
		} else {
305
			champValeurTxt = new TextField<String>();
305
			champValeurTxt = new TextField<String>();
306
			champValeurTxt.setWidth(largeurChampValeur);
306
			champValeurTxt.setWidth(largeurChampValeur);
307
			champValeurTxt.setEmptyText("Valeur...");
307
			champValeurTxt.setEmptyText("Valeur...");
308
			colonneConteneur.add(champValeurTxt, colonneChampValeur);
308
			colonneConteneur.add(champValeurTxt, colonneChampValeur);
309
		}
309
		}
310
		
310
 
311
		/* Creation du bouton Ajouter */
311
		/* Creation du bouton Ajouter */
312
		ajouterBouton = new Button();
312
		ajouterBouton = new Button();
313
		ajouterBouton.setWidth(largeurBouton);
313
		ajouterBouton.setWidth(largeurBouton);
314
		ajouterBouton.setIcon(Images.ICONES.ajouter());		
314
		ajouterBouton.setIcon(Images.ICONES.ajouter());		
315
		ajouterBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
315
		ajouterBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
316
			public void componentSelected(ButtonEvent ce) {
316
			public void componentSelected(ButtonEvent ce) {
317
				// récupération de la valeur du champ "Valeur"
317
				// récupération de la valeur du champ "Valeur"
318
				String valeurChamp = "";
318
				String valeurChamp = "";
319
				if (champValeurEstComboBox) {
319
				if (champValeurEstComboBox) {
320
					if (champValeurComboBox.getValeur() != null) {
320
					if (champValeurComboBox.getValeur() != null) {
321
						valeurChamp = (new Valeur(champValeurComboBox.getValeur())).getNom();
321
						valeurChamp = (new Valeur(champValeurComboBox.getValeur())).getNom();
322
					}
322
					}
323
				} else {
323
				} else {
324
					valeurChamp = champValeurTxt.getValue();
324
					valeurChamp = champValeurTxt.getValue();
325
				}
325
				}
326
				// validation de la valeur avant ajout
326
				// validation de la valeur avant ajout
327
				if ((valeurChamp == null) || valeurChamp.trim().equals("") || valeurChamp.trim().equals(valeurParDefaut)) {
327
				if ((valeurChamp == null) || valeurChamp.trim().equals("") || valeurChamp.trim().equals(valeurParDefaut)) {
328
					MessageBox.alert(titreErreur, valeurVideMsg, null);
328
					MessageBox.alert(titreErreur, valeurVideMsg, null);
329
				} else if (valeurs.get(valeurChamp) != null) {
329
				} else if (valeurs.get(valeurChamp) != null) {
330
					MessageBox.alert(titreErreur, valeurIdentiqueMsg, null);							
330
					MessageBox.alert(titreErreur, valeurIdentiqueMsg, null);							
331
				} else {
331
				} else {
332
					if (validationMasque != null && !valeurChamp.matches(validationMasque)) {
332
					if (validationMasque != null && !valeurChamp.matches(validationMasque)) {
333
						MessageBox.alert(titreErreur, valeurNonValideMsg, null);
333
						MessageBox.alert(titreErreur, valeurNonValideMsg, null);
334
					} else {
334
					} else {
335
						ajouterValeur(valeurChamp);
335
						ajouterValeur(valeurChamp);
336
					}
336
					}
337
				}
337
				}
338
			}
338
			}
339
		});
339
		});
340
		colonneBoutonAjouter = new ColumnData(largeurBouton);
340
		colonneBoutonAjouter = new ColumnData(largeurBouton);
341
		colonneConteneur.add(ajouterBouton, colonneBoutonAjouter);
341
		colonneConteneur.add(ajouterBouton, colonneBoutonAjouter);
342
		
342
 
343
		principalLayout.add(champRecapitulatif);
343
		principalLayout.add(champRecapitulatif);
344
		principalLayout.add(colonneConteneur);
344
		principalLayout.add(colonneConteneur);
345
		add(principalLayout);
345
		add(principalLayout);
346
	}
346
	}
347
}
347
}