Subversion Repositories eFlore/Applications.coel

Rev

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

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