Subversion Repositories eFlore/Applications.cel

Rev

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 = "";
        }
}