New file |
0,0 → 1,132 |
package org.tela_botanica.client.composants; |
|
import org.tela_botanica.client.Mediateur; |
import org.tela_botanica.client.RegistreId; |
import org.tela_botanica.client.configuration.Configuration; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.ValeurListe; |
import org.tela_botanica.client.vues.Formulaire; |
|
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 { |
private Configuration config = null; |
private Mediateur mediateur = null; |
|
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); |
} |
|
public ChampComboBoxListeValeurs(String labelDuChamp, ValeurListe listeDeValeurs, int tabIndex) { |
initialiserChampComboBox(labelDuChamp, null, tabIndex); |
rafraichir(listeDeValeurs); |
} |
|
private void initialiserChampComboBox(String labelDuChamp, String codeDeLaliste, int tabIndex) { |
config = (Configuration) Registry.get(RegistreId.CONFIG); |
mediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR); |
|
setForceSelection(true); |
setTriggerAction(TriggerAction.ALL); |
setDisplayField("nom"); |
setStore(new ListStore<Valeur>()); |
setEditable(false); |
|
setTabIndex(tabIndex); |
|
if (labelDuChamp == null) { |
setLabelSeparator(""); |
} else { |
setFieldLabel(labelDuChamp); |
} |
|
setValidator(new Validator() { |
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 = Mediateur.i18nC.selectionnerValeurOuNull(); |
|
} |
return retour; |
} |
}); |
|
if (codeDeLaliste != null) { |
setListeCode(codeDeLaliste); |
mediateur.obtenirListeValeurEtRafraichir(this, getListeCode(), null); |
} |
} |
|
public String getListeCode() { |
return listeValeursCode; |
} |
public void setListeCode(String code) { |
listeValeursCode = code; |
} |
|
public String getValeur() { |
String valeur = ""; |
if (getValue() != null) { |
valeur = getValue().getId(); |
} |
return valeur; |
} |
|
public void peupler(String valeur) { |
if (valeur.matches("[0-9]+")) { |
valeurDefautId = valeur; |
actualiserValeurParDefaut(); |
} else { |
setRawValue(valeur); |
} |
} |
|
public String getTrie() { |
String champATrier = "nom"; |
if (nomChampATrier != null) { |
champATrier = nomChampATrier; |
} |
return champATrier; |
} |
public void setTrie(String champATrier) { |
nomChampATrier = champATrier; |
} |
|
public void actualiserValeurParDefaut() { |
if (valeurDefautId != null && getStore() != null) { |
setValue(getStore().findModel("id_valeur", valeurDefautId)); |
} |
} |
|
public void rafraichir(Object nouvellesDonnees) { |
if (nouvellesDonnees instanceof ValeurListe) { |
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); |
} |
} |
|
} |
Property changes: |
Added: svn:mergeinfo |
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r1136-1367 |