Subversion Repositories eFlore/Applications.cel

Rev

Rev 1396 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues.image.filtres;

import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.Filtrable;
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 RechercheFiltreTaxonVue extends Panel implements Filtrable {

        private ImageMediateur iMediateur = 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 RechercheFiltreTaxonVue(ImageMediateur im) {
                super(titrePanneau);
                iMediateur = im;
                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();
                        nom = "recherche";
                } else {
                        nom = "recherche";
                        valeurRecherchee = "";
                }
                
                String[] valeurs = {nom,valeurRecherchee};
                return valeurs;
        }


        @Override
        public void valider() {
                if(champRecherche.getValueAsString() != null && champRecherche.getValueAsString() != valeurRecherchee) {
                        estModifie = true;
                        iMediateur.obtenirNombreMiniListeObservations();
                } else {
                        estModifie = false;
                }
        }
        
        public void raz() {
                if(champRecherche.isCreated()) {
                        champRecherche.reset();
                        valeurRecherchee = "";
                }
        }

        @Override
        public void viderFiltre() {
                champRecherche.setValue("");
                valeurRecherchee = "";
        }
}