Subversion Repositories eFlore/Applications.coel

Rev

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

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