Rev 2602 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.tela_botanica.client.cel2;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.dao.ListeReferentielChampsEtendusDAO;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.Utilisateur;
import org.tela_botanica.client.util.autocompletion.AutoCompletionComboBox;
import com.google.gwt.core.client.Callback;
import com.google.gwt.http.client.Response;
import com.google.gwt.user.client.Timer;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.ListenerConfig;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.Record;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.ToolTip;
import com.gwtext.client.widgets.form.ComboBox;
import com.gwtext.client.widgets.form.Field;
import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter;
public class ChampSaisieEtendu extends AutoCompletionComboBox {
private String cle = null;
private String label = null;
private String description = null;
private ToolTip tpDesc = null;
public ChampSaisieEtendu(String label, String cle, String urlRequete) {
super(label, urlRequete);
this.cle =cle;
this.label = label;
// A activer pour télécharger la description
// si jamais on le décide
addListener(new ComboBoxListenerAdapter() {
@Override
public void onRender(Component component) {
ChampSaisieEtendu.this.getEl().addListener("mouseover", new EventCallback() {
@Override
public void execute(EventObject e) {
if(description == null) {
telechargerEtAfficherDescriptionDistante();
} else {
afficherDescription(description);
}
}
});
}
});
}
private void telechargerEtAfficherDescriptionDistante() {
ListeReferentielChampsEtendusDAO.telechargerDescriptionWikini(cle, new Callback<String, String>() {
@Override
public void onSuccess(String description) {
ChampSaisieEtendu.this.description = description;
afficherDescription(description);
}
@Override
public void onFailure(String description) {
afficherDescription(description);
}
});
}
private void afficherDescription(String description) {
if(!description.trim().isEmpty()) {
if(tpDesc == null) {
tpDesc = new ToolTip(description);
tpDesc.applyTo(this.getElement());
tpDesc.showAt(ChampSaisieEtendu.this.getEl().getX(), ChampSaisieEtendu.this.getEl().getY());
} else {
tpDesc.show();
}
}
}
public String getCle() {
return cle;
}
public String getLabel() {
return label;
}
@Override
protected Map<String, String> parserResultatRequete(Response response) {
return ListeReferentielChampsEtendusDAO.parserRetourListeValeursChampsEtendus(response);
}
@Override
protected void onModificationValeur() {
// TODO Auto-generated method stub
}
@Override
protected void onSelectionValeur() {
// TODO Auto-generated method stub
}
@Override
protected void onValidationSaisie() {
// TODO Auto-generated method stub
}
@Override
protected String preTraiterUrlRequete(String urlRequete, String valeur) {
return urlRequete;
}
}