Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1864 → Rev 1865

/branches/v1.8-narince/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java
New file
0,0 → 1,158
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.Style.SortDir;
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;
}
 
/**
* Définit le nom du champ selon lequel trier, et si trierJusteApres vaut true, trie
* @param champATrier
*/
public void setTrie(String champATrier, boolean trierJusteApres) {
nomChampATrier = champATrier;
if (trierJusteApres) {
trier();
}
}
 
/**
* Définit le nom du champ selon lequel trier, et trie juste après
* @param champATrier
*/
public void setTrie(String champATrier) {
setTrie(champATrier, true);
}
public void actualiserValeurParDefaut() {
if (valeurDefautId != null && getStore() != null) {
setValue(getStore().findModel("id_valeur", valeurDefautId));
}
}
 
/**
* Trie le contenu de la comboboîte selon le nomChampATrier défini. S'il n'y en a aucun, échoue silencieusement (niark niark)
*/
public void trier() {
if (! this.nomChampATrier.isEmpty()) {
this.getStore().sort(this.nomChampATrier, SortDir.ASC);
}
}
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.1-aramon/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r1383-1511
Merged /branches/v1.0-syrah/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r1136-1367
Merged /trunk/src/org/tela_botanica/client/composants/ChampComboBoxListeValeurs.java:r11-853,1209-1382