6,11 → 6,17 |
import org.tela_botanica.client.composants.pagination.ChargeurListe; |
import org.tela_botanica.client.composants.pagination.Proxy; |
import org.tela_botanica.client.composants.pagination.TransformateurJSONaModelData; |
import org.tela_botanica.client.interfaces.Rafraichissable; |
import org.tela_botanica.client.modeles.Information; |
import org.tela_botanica.client.modeles.Valeur; |
import org.tela_botanica.client.modeles.collection.Collection; |
import org.tela_botanica.client.synchronisation.Sequenceur; |
import org.tela_botanica.client.util.Debug; |
import org.tela_botanica.client.vues.Formulaire; |
|
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.Events; |
import com.extjs.gxt.ui.client.event.FieldEvent; |
import com.extjs.gxt.ui.client.event.Listener; |
import com.extjs.gxt.ui.client.store.ListStore; |
import com.extjs.gxt.ui.client.util.Size; |
33,8 → 39,9 |
import com.extjs.gxt.ui.client.data.ModelData; |
import com.extjs.gxt.ui.client.data.ModelType; |
import com.extjs.gxt.ui.client.data.PagingLoadResult; |
import com.google.gwt.user.client.rpc.AsyncCallback; |
|
public class ChampComboBoxRechercheTempsReelPaginable extends LayoutContainer { |
public class ChampComboBoxRechercheTempsReelPaginable extends LayoutContainer implements Rafraichissable { |
|
//-------------// |
// ATTRIBUTS // |
44,6 → 51,7 |
private ComboBox<ModelData> combo = null; |
|
private Proxy<?> proxy = null; |
private AsyncCallback callback = null; |
private TransformateurJSONaModelData<PagingLoadResult<ModelData>> reader = null; |
private ChargeurListe<PagingLoadResult<ModelData>> loader = null; |
|
56,6 → 64,9 |
private String displayName = ""; |
private String recherche = ""; |
|
private String champValeurInitiale = ""; |
private String valeurInitiale = ""; |
|
//-------------// |
// METHODES // |
//-------------// |
63,6 → 74,7 |
/*-------------- |
Constructeur |
--------------*/ |
|
public ChampComboBoxRechercheTempsReelPaginable(Proxy<?> proxy, ModelType modeltype, String displayName) { |
|
this.modeltype = modeltype; |
75,7 → 87,7 |
|
reader = new TransformateurJSONaModelData<PagingLoadResult<ModelData>>(modeltype); |
|
loader = new ChargeurListe<PagingLoadResult<ModelData>>(proxy, reader); |
loader = new ChargeurListe<PagingLoadResult<ModelData>>(proxy, reader, this); |
loader.setLimit(plc.getLimit()); |
loader.setOffset(plc.getOffset()); |
|
105,15 → 117,18 |
combo.setPageSize(plc.getLimit()); |
store = new ListStore<ModelData>(loader); |
combo.setStore(store); |
loader.load(plc, recherche); |
loader.load(plc, recherche, false); |
|
combo.addListener(Events.KeyUp, new Listener<BaseEvent>() { |
combo.addListener(Events.KeyUp, new Listener<FieldEvent>() { |
|
public void handleEvent(BaseEvent be) { |
recherche = combo.getRawValue(); |
plc.setLimit(limit); plc.setOffset(start); |
loader.setLimit(limit); loader.setOffset(start); |
loader.load(plc, recherche); |
public void handleEvent(FieldEvent fe) { |
// on vérifie que les touches enfoncées ne sont pas les flèches du clavier |
if (fe.getKeyCode() <= 38 || fe.getKeyCode() >= 40) { |
recherche = combo.getRawValue(); |
plc.setLimit(limit); plc.setOffset(start); |
loader.setLimit(limit); loader.setOffset(start); |
loader.load(plc, recherche, false); |
} |
} |
|
}); |
131,7 → 146,7 |
|
public ModelData getValeur() |
{ |
if (!Util.isEmptyString(combo.getRawValue())) return combo.getSelection().get(0); |
if (combo.getSelection() != null && combo.getSelection().size() > 0) return combo.getSelection().get(0); |
else return null; |
} |
|
174,10 → 189,33 |
combo.setSelection(selection); |
} |
|
public void chargerValeurInitiale(String valeurInitiale, String champ) |
{ |
this.valeurInitiale = valeurInitiale; |
this.champValeurInitiale = champ; |
|
loader.load(plc, valeurInitiale, true); |
} |
|
/*----------------------------- |
Rafraichir |
-----------------------------*/ |
public void rafraichir(Object nouvellesDonnees) { |
|
if (nouvellesDonnees instanceof Information) { |
Information info = (Information) nouvellesDonnees; |
if (info.getType().equals("selectionnerValeurCombo")) { |
if (combo.getStore().findModel(champValeurInitiale, valeurInitiale) == null) Debug.log("ERREUR. Modele non trouvé"); |
else combo.setValue(combo.getStore().findModel(champValeurInitiale, valeurInitiale)); |
} |
} |
} |
|
/*---------------- |
Méthode privées |
-----------------*/ |
|
|
|
} |
|