Rev 1292 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.observation.filtres;
import org.tela_botanica.client.interfaces.Filtrable;
import org.tela_botanica.client.observation.ObservationMediateur;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.form.TextField;
public class RechercheLibreVue extends Panel implements Filtrable {
private ObservationMediateur oMediateur = null;
private TextField champRecherche = null;
private static String titrePanneau = "Recherche libre";
private String valeurRecherchee= "";
private Button boutonRechercher = null;
private boolean estModifie = true;
private final int KEY_ENTER = 13;
public RechercheLibreVue(ObservationMediateur om) {
super(titrePanneau);
oMediateur = om;
champRecherche = new TextField();
champRecherche.setWidth("90%");
boutonRechercher = new Button("Rechercher");
boutonRechercher.addListener(new ButtonListenerAdapter() {
@Override
public void onClick(Button button, EventObject e) {
valider();
}
});
champRecherche.addKeyPressListener(new EventCallback() {
@Override
public void execute(EventObject e) {
switch(e.getKey()) {
case KEY_ENTER:
valider();
break;
}
}
});
add(champRecherche);
add(boutonRechercher);
setCollapsible(true);
setTitleCollapse(true);
setPaddings(5);
}
@Override
public boolean renvoyerEtatFiltre() {
return estModifie;
}
@Override
public String renvoyerNomFiltre() {
return "Recherche libre";
}
@Override
public String[] renvoyerValeursAFiltrer() {
String nom = "recherche";
if(champRecherche.getValueAsString() != null && !champRecherche.getValueAsString().trim().equals("")) {
valeurRecherchee = champRecherche.getValueAsString();
} else {
valeurRecherchee = "";
}
String[] valeurs = {nom,valeurRecherchee};
return valeurs;
}
@Override
public void valider() {
if(champRecherche.getValueAsString() != null && champRecherche.getValueAsString() != valeurRecherchee) {
estModifie = true;
oMediateur.obtenirNombreObservation();
} else {
estModifie = false;
}
}
public void raz() {
if(champRecherche.isCreated()) {
champRecherche.reset();
valeurRecherchee = "";
}
}
@Override
public void viderFiltre() {
champRecherche.setValue("");
valeurRecherchee = "";
}
}