Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 980 Rev 1076
1
package org.tela_botanica.client.vues;
1
package org.tela_botanica.client.vues;
2
 
2
 
3
import java.util.Iterator;
3
import java.util.Iterator;
4
import java.util.List;
4
import java.util.List;
5
 
5
 
6
import org.tela_botanica.client.ComposantClass;
6
import org.tela_botanica.client.ComposantClass;
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
9
import org.tela_botanica.client.composants.ChampComboBoxListeValeurs;
10
import org.tela_botanica.client.configuration.Configuration;
10
import org.tela_botanica.client.configuration.Configuration;
11
import org.tela_botanica.client.i18n.Constantes;
11
import org.tela_botanica.client.i18n.Constantes;
-
 
12
import org.tela_botanica.client.i18n.ErrorMessages;
12
import org.tela_botanica.client.images.Images;
13
import org.tela_botanica.client.images.Images;
13
import org.tela_botanica.client.interfaces.Rafraichissable;
14
import org.tela_botanica.client.interfaces.Rafraichissable;
14
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.Valeur;
15
import org.tela_botanica.client.modeles.ValeurListe;
16
import org.tela_botanica.client.modeles.ValeurListe;
16
import org.tela_botanica.client.modeles.aDonneeListe;
17
import org.tela_botanica.client.modeles.aDonneeListe;
17
 
18
 
18
import com.extjs.gxt.ui.client.Registry;
19
import com.extjs.gxt.ui.client.Registry;
19
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
20
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
20
import com.extjs.gxt.ui.client.Style.SortDir;
21
import com.extjs.gxt.ui.client.Style.SortDir;
21
import com.extjs.gxt.ui.client.event.BaseEvent;
22
import com.extjs.gxt.ui.client.event.BaseEvent;
22
import com.extjs.gxt.ui.client.event.ButtonEvent;
23
import com.extjs.gxt.ui.client.event.ButtonEvent;
23
import com.extjs.gxt.ui.client.event.ComponentEvent;
24
import com.extjs.gxt.ui.client.event.ComponentEvent;
24
import com.extjs.gxt.ui.client.event.Events;
25
import com.extjs.gxt.ui.client.event.Events;
25
import com.extjs.gxt.ui.client.event.Listener;
26
import com.extjs.gxt.ui.client.event.Listener;
26
import com.extjs.gxt.ui.client.event.SelectionListener;
27
import com.extjs.gxt.ui.client.event.SelectionListener;
27
import com.extjs.gxt.ui.client.store.ListStore;
28
import com.extjs.gxt.ui.client.store.ListStore;
28
import com.extjs.gxt.ui.client.widget.LayoutContainer;
29
import com.extjs.gxt.ui.client.widget.LayoutContainer;
29
import com.extjs.gxt.ui.client.widget.Slider;
30
import com.extjs.gxt.ui.client.widget.Slider;
30
import com.extjs.gxt.ui.client.widget.TabItem;
31
import com.extjs.gxt.ui.client.widget.TabItem;
31
import com.extjs.gxt.ui.client.widget.TabPanel;
32
import com.extjs.gxt.ui.client.widget.TabPanel;
32
import com.extjs.gxt.ui.client.widget.button.Button;
33
import com.extjs.gxt.ui.client.widget.button.Button;
33
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
34
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
34
import com.extjs.gxt.ui.client.widget.form.CheckBox;
35
import com.extjs.gxt.ui.client.widget.form.CheckBox;
35
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
36
import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
36
import com.extjs.gxt.ui.client.widget.form.ComboBox;
37
import com.extjs.gxt.ui.client.widget.form.ComboBox;
37
import com.extjs.gxt.ui.client.widget.form.Field;
38
import com.extjs.gxt.ui.client.widget.form.Field;
38
import com.extjs.gxt.ui.client.widget.form.FormPanel;
39
import com.extjs.gxt.ui.client.widget.form.FormPanel;
39
import com.extjs.gxt.ui.client.widget.form.Radio;
40
import com.extjs.gxt.ui.client.widget.form.Radio;
40
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
41
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
41
import com.extjs.gxt.ui.client.widget.form.SliderField;
42
import com.extjs.gxt.ui.client.widget.form.SliderField;
42
import com.extjs.gxt.ui.client.widget.form.TextArea;
43
import com.extjs.gxt.ui.client.widget.form.TextArea;
43
import com.extjs.gxt.ui.client.widget.form.TextField;
44
import com.extjs.gxt.ui.client.widget.form.TextField;
44
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
45
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
45
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
46
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
46
import com.extjs.gxt.ui.client.widget.layout.FormData;
47
import com.extjs.gxt.ui.client.widget.layout.FormData;
47
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
48
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
48
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
49
import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
49
import com.google.gwt.core.client.GWT;
50
import com.google.gwt.core.client.GWT;
50
import com.google.gwt.json.client.JSONObject;
51
import com.google.gwt.json.client.JSONObject;
51
 
52
 
52
public abstract class Formulaire extends LayoutContainer implements Rafraichissable {
53
public abstract class Formulaire extends LayoutContainer implements Rafraichissable {
53
 
54
 
54
	public static final String MODE_AJOUTER = "AJOUT";
55
	public static final String MODE_AJOUTER = "AJOUT";
55
	public static final String MODE_MODIFIER = "MODIF";
56
	public static final String MODE_MODIFIER = "MODIF";
56
	
57
	
57
	public Constantes i18nC = null;
58
	public Constantes i18nC = null;
-
 
59
	public ErrorMessages i18nM = null;
58
	public Mediateur mediateur = null;
60
	public Mediateur mediateur = null;
59
	public Configuration config = null;
61
	public Configuration config = null;
60
	
62
	
61
	public String mode = null;
63
	public String mode = null;
62
	public int tabIndex = 100;
64
	public int tabIndex = 100;
63
	
65
	
64
	public FormPanel panneauFormulaire = null;
66
	public FormPanel panneauFormulaire = null;
65
	public ButtonBar barreOutilsValidation = null;
67
	public ButtonBar barreOutilsValidation = null;
66
		
68
		
67
	public String menuIdCourant = null;
69
	public String menuIdCourant = null;
68
	public static Boolean clicBoutonvalidation = false;
70
	public static Boolean clicBoutonvalidation = false;
69
	public Rafraichissable vueExterneARafraichirApresValidation = null;
71
	public Rafraichissable vueExterneARafraichirApresValidation = null;
70
 
72
 
71
	public FormPanel getFormulaire() {
73
	public FormPanel getFormulaire() {
72
		return panneauFormulaire;
74
		return panneauFormulaire;
73
	}
75
	}
74
	
76
	
75
	public void initialiserFormulaire(Mediateur mediateurCourrant, String modeDeCreation, String idMenuCourrant) {
77
	public void initialiserFormulaire(Mediateur mediateurCourrant, String modeDeCreation, String idMenuCourrant) {
76
		// Initialisation de variables
78
		// Initialisation de variables
77
		mode = modeDeCreation;
79
		mode = modeDeCreation;
78
		mediateur = mediateurCourrant;
80
		mediateur = mediateurCourrant;
79
		i18nC = Mediateur.i18nC;
81
		i18nC = Mediateur.i18nC;
80
		menuIdCourant = idMenuCourrant;
82
		menuIdCourant = idMenuCourrant;
81
		config = (Configuration) Registry.get(RegistreId.CONFIG);
83
		config = (Configuration) Registry.get(RegistreId.CONFIG);
82
		
84
		
83
		// Iniatilisation du layoutContainer
85
		// Iniatilisation du layoutContainer
84
		setLayout(new FitLayout());
86
		setLayout(new FitLayout());
85
		setBorders(false);
87
		setBorders(false);
86
		
88
		
87
		// Création du panneau du FORMULAIRE GÉNÉRAL
89
		// Création du panneau du FORMULAIRE GÉNÉRAL
88
		panneauFormulaire = new FormPanel();
90
		panneauFormulaire = new FormPanel();
89
		panneauFormulaire.setBodyBorder(false);
91
		panneauFormulaire.setBodyBorder(false);
90
		panneauFormulaire.setFrame(true);
92
		panneauFormulaire.setFrame(true);
91
 		panneauFormulaire.setCollapsible(false);
93
 		panneauFormulaire.setCollapsible(false);
92
		panneauFormulaire.setButtonAlign(HorizontalAlignment.CENTER);  
94
		panneauFormulaire.setButtonAlign(HorizontalAlignment.CENTER);  
93
		panneauFormulaire.setLayout(new FitLayout());
95
		panneauFormulaire.setLayout(new FitLayout());
94
 
96
 
95
		if (modeDeCreation.equals(MODE_AJOUTER)) {
97
		if (modeDeCreation.equals(MODE_AJOUTER)) {
96
			panneauFormulaire.setIcon(Images.ICONES.formAjouter());
98
			panneauFormulaire.setIcon(Images.ICONES.formAjouter());
97
		} else if (modeDeCreation.equals(MODE_AJOUTER)) {
99
		} else if (modeDeCreation.equals(MODE_AJOUTER)) {
98
			panneauFormulaire.setIcon(Images.ICONES.formModifier());
100
			panneauFormulaire.setIcon(Images.ICONES.formModifier());
99
		}
101
		}
100
		
102
		
101
		barreOutilsValidation = new FormulaireBarreValidation(creerEcouteurValidation());
103
		barreOutilsValidation = new FormulaireBarreValidation(creerEcouteurValidation());
102
		panneauFormulaire.setBottomComponent(barreOutilsValidation);
104
		panneauFormulaire.setBottomComponent(barreOutilsValidation);
103
		
105
		
104
		add(panneauFormulaire);
106
		add(panneauFormulaire);
105
	}
107
	}
106
	
108
	
107
	public SelectionListener<ButtonEvent> creerEcouteurValidation() {
109
	public SelectionListener<ButtonEvent> creerEcouteurValidation() {
108
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
110
		SelectionListener<ButtonEvent> ecouteur = new SelectionListener<ButtonEvent>() {
109
			@Override
111
			@Override
110
			public void componentSelected(ButtonEvent ce) {
112
			public void componentSelected(ButtonEvent ce) {
111
				String code = ((Button) ce.getComponent()).getData("code");
113
				String code = ((Button) ce.getComponent()).getData("code");
112
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
114
				if (code.equals(FormulaireBarreValidation.CODE_BOUTON_VALIDER)) {
113
					soumettreFormulaire();
115
					soumettreFormulaire();
114
					clicBoutonvalidation = true;
116
					clicBoutonvalidation = true;
115
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
117
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_APPLIQUER)) {
116
					soumettreFormulaire();
118
					soumettreFormulaire();
117
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
119
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_ANNULER)) {
118
					mediateur.clicMenu(menuIdCourant);
120
					mediateur.clicMenu(menuIdCourant);
119
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
121
				} else if (code.equals(FormulaireBarreValidation.CODE_BOUTON_REINITIALISER)) {
120
					reinitialiserFormulaire();
122
					reinitialiserFormulaire();
121
				}
123
				}
122
			}
124
			}
123
		};
125
		};
124
		
126
		
125
		return ecouteur;
127
		return ecouteur;
126
	}
128
	}
127
	
129
	
128
	public abstract boolean verifierFormulaire();
130
	public abstract boolean verifierFormulaire();
129
	
131
	
130
	public abstract boolean soumettreFormulaire();
132
	public abstract boolean soumettreFormulaire();
131
	
133
	
132
	public abstract void reinitialiserFormulaire();
134
	public abstract void reinitialiserFormulaire();
133
	
135
	
134
	public TabItem creerOnglet(String nom, String id) {
136
	public TabItem creerOnglet(String nom, String id) {
135
		TabItem onglet = new TabItem();
137
		TabItem onglet = new TabItem();
136
		onglet.setId(id);
138
		onglet.setId(id);
137
		onglet.setText(nom);
139
		onglet.setText(nom);
138
		FormulaireOnglet.parametrer(onglet);
140
		FormulaireOnglet.parametrer(onglet);
139
		return onglet;
141
		return onglet;
140
	}
142
	}
141
 
143
 
142
	public void controlerFermetureApresRafraichissement() {
144
	public void controlerFermetureApresRafraichissement() {
143
		// Si le bouton Valider a été cliqué, nous affichons la liste des structures
145
		// Si le bouton Valider a été cliqué, nous affichons la liste des structures
144
		if (clicBoutonvalidation) {
146
		if (clicBoutonvalidation) {
145
			fermerFormulaire();
147
			fermerFormulaire();
146
		}
148
		}
147
	}
149
	}
148
	
150
	
149
	public void fermerFormulaire() {
151
	public void fermerFormulaire() {
150
		clicBoutonvalidation = false;
152
		clicBoutonvalidation = false;
151
		panneauFormulaire.setEnabled(false);
153
		panneauFormulaire.setEnabled(false);
152
		mediateur.clicMenu(menuIdCourant);
154
		mediateur.clicMenu(menuIdCourant);
153
	}
155
	}
154
	
156
	
155
	/** Méthode simplifiant la création de FormLayout.
157
	/** Méthode simplifiant la création de FormLayout.
156
	 * Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
158
	 * Chacun des paramètres peut prendre la valeur null pour utiliser la valeur par défaut.
157
	 * 
159
	 * 
158
	 * @param labelWidth largeur des labels. 
160
	 * @param labelWidth largeur des labels. 
159
	 * @param labelAlign alignement des labels
161
	 * @param labelAlign alignement des labels
160
	 * @return
162
	 * @return
161
	 */
163
	 */
162
	public static FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign) {
164
	public static FormLayout creerFormLayout(Integer labelWidth, LabelAlign labelAlign) {
163
		FormLayout formLayout = new FormLayout();
165
		FormLayout formLayout = new FormLayout();
164
		if (labelWidth != null) {
166
		if (labelWidth != null) {
165
			formLayout.setLabelWidth(labelWidth);
167
			formLayout.setLabelWidth(labelWidth);
166
		}
168
		}
167
		if (labelAlign != null) {
169
		if (labelAlign != null) {
168
			formLayout.setLabelAlign(labelAlign);
170
			formLayout.setLabelAlign(labelAlign);
169
		}
171
		}
170
		return formLayout;
172
		return formLayout;
171
	}
173
	}
172
	
174
	
173
	/** Méthode simplifiant la création de bouton radio oui/non
175
	/** Méthode simplifiant la création de bouton radio oui/non
174
	 * 
176
	 * 
175
	 * @param listeNom nom de la liste de valeur
177
	 * @param listeNom nom de la liste de valeur
176
	 * @return
178
	 * @return
177
	 */
179
	 */
178
	public RadioGroup creerChoixUniqueRadioGroupe(String groupeNom, String listeNom) {
180
	public RadioGroup creerChoixUniqueRadioGroupe(String groupeNom, String listeNom) {
179
		groupeNom += "_grp";
181
		groupeNom += "_grp";
180
		// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
182
		// NOTE : il semblerait qu'il faille aussi utiliser setName() pour éviter tout problème...
181
		RadioGroup radioGroup = new RadioGroup(groupeNom);
183
		RadioGroup radioGroup = new RadioGroup(groupeNom);
182
		radioGroup.setName(groupeNom);
184
		radioGroup.setName(groupeNom);
183
 
185
 
184
		if (listeNom.equals("ouiNon")) {
186
		if (listeNom.equals("ouiNon")) {
185
			ValeurListe ouiNonListe = new ValeurListe();
187
			ValeurListe ouiNonListe = new ValeurListe();
186
			ouiNonListe.ajouter(new Valeur("1", i18nC.oui(), "NULL", "NULL"));
188
			ouiNonListe.ajouter(new Valeur("1", i18nC.oui(), "NULL", "NULL"));
187
			ouiNonListe.ajouter(new Valeur("0", i18nC.non(), "NULL", "NULL"));
189
			ouiNonListe.ajouter(new Valeur("0", i18nC.non(), "NULL", "NULL"));
188
			creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
190
			creerChoixUniqueBoutonRadio(radioGroup, ouiNonListe);
189
		}
191
		}
190
		
192
		
191
		return radioGroup;
193
		return radioGroup;
192
	}
194
	}
193
	
195
	
194
	public void creerChoixUniqueBoutonRadio(RadioGroup radioGroupe, ValeurListe listeValeurs) {
196
	public void creerChoixUniqueBoutonRadio(RadioGroup radioGroupe, ValeurListe listeValeurs) {
195
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
197
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
196
			Valeur val = listeValeurs.get(it.next());
198
			Valeur val = listeValeurs.get(it.next());
197
			
199
			
198
			Radio radioBtn = new Radio();
200
			Radio radioBtn = new Radio();
199
			radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
201
			radioBtn.setName(radioGroupe.getName().replace("_grp", ""));
200
			radioBtn.setId(val.getId()+"_"+radioBtn.getName());
202
			radioBtn.setId(val.getId()+"_"+radioBtn.getName());
201
			radioBtn.setBoxLabel(val.getNom());
203
			radioBtn.setBoxLabel(val.getNom());
202
			radioBtn.setValueAttribute(val.getId());
204
			radioBtn.setValueAttribute(val.getId());
203
			radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
205
			radioBtn.addListener(Events.Change, new Listener<ComponentEvent>() {
204
	
206
	
205
				public void handleEvent(ComponentEvent be) {
207
				public void handleEvent(ComponentEvent be) {
206
					//Window.alert(((Radio) be.component).getName());
208
					//Window.alert(((Radio) be.component).getName());
207
					afficherChampSupplementaire(((Radio) be.getComponent()));
209
					afficherChampSupplementaire(((Radio) be.getComponent()));
208
				}
210
				}
209
				
211
				
210
			});
212
			});
211
			
213
			
212
			if (! val.getDescription().equals("NULL")) {
214
			if (! val.getDescription().equals("NULL")) {
213
				radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
215
				radioBtn.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
214
			}
216
			}
215
			radioGroupe.add(radioBtn);
217
			radioGroupe.add(radioBtn);
216
		}
218
		}
217
	}
219
	}
218
	
220
	
219
	public void afficherChampSupplementaire(Radio radioBtn) {
221
	public void afficherChampSupplementaire(Radio radioBtn) {
220
		GWT.log("Vous devez redéfinir la méthode afficherChampSupplementaire(Radio radioBtn) dans votre classe formulaire.", null);
222
		GWT.log("Vous devez redéfinir la méthode afficherChampSupplementaire(Radio radioBtn) dans votre classe formulaire.", null);
221
	};
223
	};
222
	
224
	
223
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
225
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
224
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
226
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
225
	 * Ajoute ou pas un champ "Autre".
227
	 * Ajoute ou pas un champ "Autre".
226
	 * 
228
	 * 
227
	 * @return ContentPanel le panneau contenant les cases à cocher
229
	 * @return ContentPanel le panneau contenant les cases à cocher
228
	 */
230
	 */
229
	public static LayoutContainer creerChoixMultipleCp() {
231
	public static LayoutContainer creerChoixMultipleCp() {
230
		LayoutContainer conteneur = new LayoutContainer();
232
		LayoutContainer conteneur = new LayoutContainer();
231
		conteneur.setLayout(creerFormLayout(650, LabelAlign.TOP));
233
		conteneur.setLayout(creerFormLayout(650, LabelAlign.TOP));
232
		return conteneur;
234
		return conteneur;
233
	}
235
	}
234
	
236
	
235
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
237
	/** Méthode simplifiant la création de choix multiple sous forme de case à cocher.
236
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
238
	 * Apelle un service retournant la liste des valeurs représentant les cases à cocher.
237
	 * Ajoute ou pas un champ "Autre".
239
	 * Ajoute ou pas un champ "Autre".
238
	 * 
240
	 * 
239
	 * @param cp panneau conteant le groupe de case à cocher
241
	 * @param cp panneau conteant le groupe de case à cocher
240
	 * @param cacGroup le groupe de case à cocher
242
	 * @param cacGroup le groupe de case à cocher
241
	 * @param listeValeurs la liste de valeurs à transformer en case à cocher
243
	 * @param listeValeurs la liste de valeurs à transformer en case à cocher
242
	 * @param boolAutreChp booléen indiquant si oui ou non le champ autre doit apparaître 
244
	 * @param boolAutreChp booléen indiquant si oui ou non le champ autre doit apparaître 
243
	 * @return
245
	 * @return
244
	 */
246
	 */
245
	public static void creerChoixMultipleCac(LayoutContainer cp, final CheckBoxGroup cacGroupe, ValeurListe listeValeurs, final Field<String> autreChp) {
247
	public static void creerChoixMultipleCac(LayoutContainer cp, final CheckBoxGroup cacGroupe, ValeurListe listeValeurs, final Field<String> autreChp) {
246
		cp.addListener(Events.Hide, new Listener<BaseEvent>() {
248
		cp.addListener(Events.Hide, new Listener<BaseEvent>() {
247
			public void handleEvent(BaseEvent be) {
249
			public void handleEvent(BaseEvent be) {
248
				cacGroupe.reset();
250
				cacGroupe.reset();
249
				autreChp.setValue("");
251
				autreChp.setValue("");
250
			}
252
			}
251
			
253
			
252
		});
254
		});
253
		
255
		
254
		cacGroupe.setAutoWidth(true);
256
		cacGroupe.setAutoWidth(true);
255
		cacGroupe.setStyleAttribute("padding", "3px");
257
		cacGroupe.setStyleAttribute("padding", "3px");
256
		cacGroupe.setData("liste_id", listeValeurs.getId());
258
		cacGroupe.setData("liste_id", listeValeurs.getId());
257
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
259
		for (Iterator<String> it = listeValeurs.keySet().iterator(); it.hasNext();) {
258
			Valeur val = listeValeurs.get(it.next());
260
			Valeur val = listeValeurs.get(it.next());
259
			String nom =  val.get("nom");
261
			String nom =  val.get("nom");
260
			CheckBox cac = new CheckBox();
262
			CheckBox cac = new CheckBox();
261
			cac.setId("val-"+val.getId());
263
			cac.setId("val-"+val.getId());
262
			cac.setData("id", val.getId());
264
			cac.setData("id", val.getId());
263
			cac.setBoxLabel(nom);
265
			cac.setBoxLabel(nom);
264
			if (! val.getDescription().equals("NULL")) {
266
			if (! val.getDescription().equals("NULL")) {
265
				cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
267
				cac.setToolTip(new ToolTipConfig(val.getNom(), val.getDescription()));
266
			}
268
			}
267
			cacGroupe.add(cac);
269
			cacGroupe.add(cac);
268
		}
270
		}
269
		cp.add(cacGroupe);
271
		cp.add(cacGroupe);
270
		
272
		
271
		if (autreChp != null) {
273
		if (autreChp != null) {
272
			// FIXME : éviter le chevauchement du texte des cases à cocher avec le label "Autre" sur les petits écrans
274
			// FIXME : éviter le chevauchement du texte des cases à cocher avec le label "Autre" sur les petits écrans
273
			LayoutContainer conteneur = new LayoutContainer();
275
			LayoutContainer conteneur = new LayoutContainer();
274
			conteneur.setLayout(creerFormLayout(50, LabelAlign.TOP));
276
			conteneur.setLayout(creerFormLayout(50, LabelAlign.TOP));
275
			autreChp.setId("autre-"+listeValeurs.getId());
277
			autreChp.setId("autre-"+listeValeurs.getId());
276
			autreChp.setFieldLabel("Autre");
278
			autreChp.setFieldLabel("Autre");
277
			autreChp.setLabelStyle("font-weight:normal;");
279
			autreChp.setLabelStyle("font-weight:normal;");
278
			conteneur.add(autreChp, new FormData(500, 0));
280
			conteneur.add(autreChp, new FormData(500, 0));
279
			
281
			
280
			cp.add(conteneur);
282
			cp.add(conteneur);
281
		}
283
		}
282
		cp.layout();
284
		cp.layout();
283
	}
285
	}
284
	
286
	
285
	@SuppressWarnings({"unchecked"})
287
	@SuppressWarnings({"unchecked"})
286
	public static void rafraichirComboBox(aDonneeListe<?> listeValeurs, ComboBox combo) {
288
	public static void rafraichirComboBox(aDonneeListe<?> listeValeurs, ComboBox combo) {
287
		rafraichirComboBox(listeValeurs, combo, "nom");
289
		rafraichirComboBox(listeValeurs, combo, "nom");
288
	}
290
	}
289
	
291
	
290
	@SuppressWarnings({"unchecked"})
292
	@SuppressWarnings({"unchecked"})
291
	public static void rafraichirComboBox(aDonneeListe<?> listeValeurs, ComboBox combo, String champATrier) {
293
	public static void rafraichirComboBox(aDonneeListe<?> listeValeurs, ComboBox combo, String champATrier) {
292
		List<?> liste = listeValeurs.toList();
294
		List<?> liste = listeValeurs.toList();
293
		if (liste.size() > 0) {
295
		if (liste.size() > 0) {
294
			ListStore store = combo.getStore();
296
			ListStore store = combo.getStore();
295
			store.removeAll();
297
			store.removeAll();
296
			store.add(liste);
298
			store.add(liste);
297
			store.sort(champATrier, SortDir.ASC);
299
			store.sort(champATrier, SortDir.ASC);
298
			combo.setStore(store);
300
			combo.setStore(store);
299
		}
301
		}
300
	}
302
	}
301
	
303
	
302
	public static Listener<BaseEvent> creerEcouteurChampObligatoire() {
304
	public static Listener<BaseEvent> creerEcouteurChampObligatoire() {
303
		return new Listener<BaseEvent>() {
305
		return new Listener<BaseEvent>() {
304
			@Override
306
			@Override
305
			public void handleEvent(BaseEvent be) {
307
			public void handleEvent(BaseEvent be) {
306
				Field<?> champ = null;
308
				Field<?> champ = null;
307
				boolean etreVide = true;
309
				boolean etreVide = true;
308
				if (be.getSource() instanceof TextField<?>) {
310
				if (be.getSource() instanceof TextField<?>) {
309
					champ = (TextField<?>) be.getSource();
311
					champ = (TextField<?>) be.getSource();
310
					etreVide = (champ.getRawValue().isEmpty()) ? true : false;
312
					etreVide = (champ.getRawValue().isEmpty()) ? true : false;
311
				} else if (be.getSource() instanceof TextArea) {
313
				} else if (be.getSource() instanceof TextArea) {
312
					champ = (TextArea) be.getSource();
314
					champ = (TextArea) be.getSource();
313
					etreVide = (champ.getRawValue().isEmpty()) ? true : false;
315
					etreVide = (champ.getRawValue().isEmpty()) ? true : false;
314
				} else if (be.getSource() instanceof ChampComboBoxListeValeurs) {
316
				} else if (be.getSource() instanceof ChampComboBoxListeValeurs) {
315
					champ = (ChampComboBoxListeValeurs) be.getSource();
317
					champ = (ChampComboBoxListeValeurs) be.getSource();
316
					etreVide = (champ.getValue() == null) ? true : false;
318
					etreVide = (champ.getValue() == null) ? true : false;
317
				} else if (be.getSource() instanceof ComboBox<?>) {
319
				} else if (be.getSource() instanceof ComboBox<?>) {
318
					champ = (ComboBox<?>) be.getSource();
320
					champ = (ComboBox<?>) be.getSource();
319
					etreVide = (champ.getValue() == null) ? true : false;
321
					etreVide = (champ.getValue() == null) ? true : false;
320
				}
322
				}
321
				champ.removeStyleName(ComposantClass.OBLIGATOIRE);
323
				champ.removeStyleName(ComposantClass.OBLIGATOIRE);
322
				champ.removeStyleName(ComposantClass.OBLIGATOIRE_OK);
324
				champ.removeStyleName(ComposantClass.OBLIGATOIRE_OK);
323
				if (etreVide == false) {
325
				if (etreVide == false) {
324
					champ.addStyleName(ComposantClass.OBLIGATOIRE_OK);
326
					champ.addStyleName(ComposantClass.OBLIGATOIRE_OK);
325
				} else {
327
				} else {
326
					champ.addStyleName(ComposantClass.OBLIGATOIRE);
328
					champ.addStyleName(ComposantClass.OBLIGATOIRE);
327
				}
329
				}
328
			}
330
			}
329
		};
331
		};
330
	}
332
	}
331
}
333
}