Subversion Repositories eFlore/Applications.coel

Rev

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

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