Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 854 → Rev 858

/trunk/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java
11,6 → 11,8
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.Validator;
import com.google.gwt.core.client.GWT;
 
public class ChampComboBoxListeValeurs extends ComboBox<Valeur> implements Rafraichissable {
19,8 → 21,17
 
private String listeValeursCode = null;
private String nomChampATrier = null;
private String valeurDefautId = null;
public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste) {
initialiserChampComboBox(labelDuChamp, codeDeLaliste, 0);
}
public ChampComboBoxListeValeurs(String labelDuChamp, String codeDeLaliste, int tabIndex) {
initialiserChampComboBox(labelDuChamp, codeDeLaliste, tabIndex);
}
private void initialiserChampComboBox(String labelDuChamp, String codeDeLaliste, int tabIndex) {
config = (Configuration) Registry.get(RegistreId.CONFIG);
mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
30,8 → 41,30
setStore(new ListStore<Valeur>());
setEditable(false);
 
setFieldLabel(labelDuChamp);
setTabIndex(tabIndex);
if (labelDuChamp == null) {
setLabelSeparator("");
} else {
setFieldLabel(labelDuChamp);
}
setValidator(new Validator() {
@Override
public String validate(Field<?> field, String value) {
String retour = null;
if (field.getRawValue().equals("")) {
field.setValue(null);
} else if (getStore().findModel("nom", field.getRawValue()) == null) {
String contenuBrut = field.getRawValue();
field.setValue(null);
field.setRawValue(contenuBrut);
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
}
return retour;
}
});
setListeCode(codeDeLaliste);
mediateur.obtenirListeValeurEtRafraichir(this, getListeCode());
}
43,6 → 76,11
listeValeursCode = code;
}
public void setValeurDefaut(String id) {
valeurDefautId = id;
actualiserValeurParDefaut();
}
public String getTrie() {
String champATrier = "nom";
if (nomChampATrier != null) {
54,6 → 92,12
nomChampATrier = champATrier;
}
public void actualiserValeurParDefaut() {
if (valeurDefautId != null && getStore() != null) {
setValue(getStore().findModel("id_valeur", valeurDefautId));
}
}
@Override
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof ValeurListe) {
60,6 → 104,7
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
if (listeValeurs.getId().equals(config.getListeId(getListeCode()))) {
Formulaire.rafraichirComboBox(listeValeurs, this, getTrie());
actualiserValeurParDefaut();
}
} else {
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);