Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 858 Rev 862
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
2
 
2
 
3
import org.tela_botanica.client.Mediateur;
3
import org.tela_botanica.client.Mediateur;
4
import org.tela_botanica.client.RegistreId;
4
import org.tela_botanica.client.RegistreId;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
import org.tela_botanica.client.modeles.Configuration;
6
import org.tela_botanica.client.modeles.Configuration;
7
import org.tela_botanica.client.modeles.Valeur;
7
import org.tela_botanica.client.modeles.Valeur;
8
import org.tela_botanica.client.modeles.ValeurListe;
8
import org.tela_botanica.client.modeles.ValeurListe;
9
import org.tela_botanica.client.vues.Formulaire;
9
import org.tela_botanica.client.vues.Formulaire;
10
 
10
 
11
import com.extjs.gxt.ui.client.Registry;
11
import com.extjs.gxt.ui.client.Registry;
12
import com.extjs.gxt.ui.client.store.ListStore;
12
import com.extjs.gxt.ui.client.store.ListStore;
13
import com.extjs.gxt.ui.client.widget.form.ComboBox;
13
import com.extjs.gxt.ui.client.widget.form.ComboBox;
14
import com.extjs.gxt.ui.client.widget.form.Field;
14
import com.extjs.gxt.ui.client.widget.form.Field;
15
import com.extjs.gxt.ui.client.widget.form.Validator;
15
import com.extjs.gxt.ui.client.widget.form.Validator;
16
import com.google.gwt.core.client.GWT;
16
import com.google.gwt.core.client.GWT;
17
 
17
 
18
public class ChampComboBoxListeValeurs extends ComboBox<Valeur> implements Rafraichissable {
18
public class ChampComboBoxListeValeurs extends ComboBox<Valeur> implements Rafraichissable {
19
	private Configuration config = null;
19
	private Configuration config = null;
20
	private Mediateur mediateur = null;
20
	private Mediateur mediateur = null;
21
 
21
 
22
	private String listeValeursCode = null;
22
	private String listeValeursCode = null;
23
	private String nomChampATrier = null;
23
	private String nomChampATrier = null;
24
	private String valeurDefautId = null;
24
	private String valeurDefautId = null;
25
	
25
	
26
	public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste) {
26
	public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste) {
27
		initialiserChampComboBox(labelDuChamp, codeDeLaliste, 0);
27
		initialiserChampComboBox(labelDuChamp, codeDeLaliste, 0);
28
	}
28
	}
29
	
29
	
30
	public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste, int tabIndex) {
30
	public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste, int tabIndex) {
31
		initialiserChampComboBox(labelDuChamp, codeDeLaliste, tabIndex);
31
		initialiserChampComboBox(labelDuChamp, codeDeLaliste, tabIndex);
32
	}
32
	}
-
 
33
	
-
 
34
	public ChampComboBoxListeValeurs(String labelDuChamp, ValeurListe listeDeValeurs, int tabIndex) {
-
 
35
		initialiserChampComboBox(labelDuChamp, null, tabIndex);
-
 
36
		rafraichir(listeDeValeurs);
-
 
37
	}
33
	
38
	
34
	private void initialiserChampComboBox(String labelDuChamp, String codeDeLaliste, int tabIndex) {
39
	private void initialiserChampComboBox(String labelDuChamp, String codeDeLaliste, int tabIndex) {
35
		config = (Configuration) Registry.get(RegistreId.CONFIG);
40
		config = (Configuration) Registry.get(RegistreId.CONFIG);
36
		mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
41
		mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
37
		
42
		
38
		setForceSelection(true);
43
		setForceSelection(true);
39
		setTriggerAction(TriggerAction.ALL);
44
		setTriggerAction(TriggerAction.ALL);
40
		setDisplayField("nom");
45
		setDisplayField("nom");
41
		setStore(new ListStore<Valeur>());
46
		setStore(new ListStore<Valeur>());
42
		setEditable(false);
47
		setEditable(false);
43
 
48
 
44
		setTabIndex(tabIndex);
49
		setTabIndex(tabIndex);
45
		
50
		
46
		if (labelDuChamp == null) {
51
		if (labelDuChamp == null) {
47
			setLabelSeparator("");
52
			setLabelSeparator("");
48
		} else {
53
		} else {
49
			setFieldLabel(labelDuChamp);
54
			setFieldLabel(labelDuChamp);
50
		}
55
		}
51
		
56
		
52
		setValidator(new Validator() {
57
		setValidator(new Validator() {
53
			@Override
58
			@Override
54
			public String validate(Field<?> field, String value) {
59
			public String validate(Field<?> field, String value) {
55
				String retour = null;
60
				String retour = null;
56
				if (field.getRawValue().equals("")) {
61
				if (field.getRawValue().equals("")) {
57
					field.setValue(null);
62
					field.setValue(null);
58
				} else if (getStore().findModel("nom", field.getRawValue()) == null) {
63
				} else if (getStore().findModel("nom", field.getRawValue()) == null) {
59
					String contenuBrut = field.getRawValue();
64
					String contenuBrut = field.getRawValue();
60
					field.setValue(null);
65
					field.setValue(null);
61
					field.setRawValue(contenuBrut);
66
					field.setRawValue(contenuBrut);
62
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
67
					retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
63
				}
68
				}
64
				return retour;
69
				return retour;
65
			}
70
			}
66
		});
71
		});
-
 
72
		
67
		
73
		if (codeDeLaliste != null) {
68
		setListeCode(codeDeLaliste);
74
			setListeCode(codeDeLaliste);
-
 
75
			mediateur.obtenirListeValeurEtRafraichir(this, getListeCode());
69
		mediateur.obtenirListeValeurEtRafraichir(this, getListeCode());
76
		}
70
	}
77
	}
71
	
78
	
72
	public String getListeCode() {
79
	public String getListeCode() {
73
		return listeValeursCode;
80
		return listeValeursCode;
74
	}
81
	}
75
	public void setListeCode(String code) {
82
	public void setListeCode(String code) {
76
		listeValeursCode = code;
83
		listeValeursCode = code;
77
	}
84
	}
78
	
85
	
79
	public void setValeurDefaut(String id) {
86
	public void setValeurDefaut(String id) {
80
		valeurDefautId = id;
87
		valeurDefautId = id;
81
		actualiserValeurParDefaut();
88
		actualiserValeurParDefaut();
82
	}
89
	}
83
	
90
	
84
	public String getTrie() {
91
	public String getTrie() {
85
		String champATrier = "nom";
92
		String champATrier = "nom";
86
		if (nomChampATrier != null) {
93
		if (nomChampATrier != null) {
87
			champATrier = nomChampATrier;
94
			champATrier = nomChampATrier;
88
		}
95
		}
89
		return champATrier;
96
		return champATrier;
90
	}
97
	}
91
	public void setTrie(String champATrier) {
98
	public void setTrie(String champATrier) {
92
		nomChampATrier = champATrier;
99
		nomChampATrier = champATrier;
93
	}
100
	}
94
	
101
	
95
	public void actualiserValeurParDefaut() {
102
	public void actualiserValeurParDefaut() {
96
		if (valeurDefautId != null && getStore() != null) {
103
		if (valeurDefautId != null && getStore() != null) {
97
			setValue(getStore().findModel("id_valeur", valeurDefautId));
104
			setValue(getStore().findModel("id_valeur", valeurDefautId));
98
		}
105
		}
99
	}
106
	}
100
	
107
	
101
	@Override
108
	@Override
102
	public void rafraichir(Object nouvellesDonnees) {
109
	public void rafraichir(Object nouvellesDonnees) {
103
		if (nouvellesDonnees instanceof ValeurListe) {
110
		if (nouvellesDonnees instanceof ValeurListe) {
104
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
111
			ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
105
			if (listeValeurs.getId().equals(config.getListeId(getListeCode()))) {
112
			if (listeValeurs.getId().equals(config.getListeId(getListeCode()))) {
106
				Formulaire.rafraichirComboBox(listeValeurs, this, getTrie());
113
				Formulaire.rafraichirComboBox(listeValeurs, this, getTrie());
107
				actualiserValeurParDefaut();
114
				actualiserValeurParDefaut();
108
			} 
115
			} 
109
		} else {
116
		} else {
110
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
117
			GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
111
		}
118
		}
112
	}
119
	}
113
 
120
 
114
}
121
}