Subversion Repositories eFlore/Applications.del

Rev

Rev 408 | Rev 451 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.composants.moteurrecherche;

import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.InformationsRecherche;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class MoteurRechercheVue extends Composite implements MoteurRecherchePresenteur.Vue {

        interface Binder extends UiBinder<Widget, MoteurRechercheVue> {
        }

        private static Binder uiBinder = GWT.create(Binder.class);
        private String labelRecherche = "";

        @UiField
        Panel rechercheAvancee, taxon;
        @UiField
        Label lienRechercheAvancee, recherchePrecedente;
        @UiField
        Button boutonRecherche, boutonRechercheAvancee, boutonFermer, boutonVider;
        @UiField
        TextBox recherchePrincipale, departement, commune, famille, genre, tag, motCle, auteur, date;

        public MoteurRechercheVue(String labelRecherche) {
                initWidget(uiBinder.createAndBindUi(this));
                this.labelRecherche = labelRecherche;
                recherchePrincipale.setText(labelRecherche);
                rechercheAvancee.setVisible(false);
        }

        public String getLabelRecherche() {
                return labelRecherche;
        }

        @Override
        public HasClickHandlers getLienRechercheAvancee() {
                return lienRechercheAvancee;
        }

        @Override
        public void basculerAffichageZoneCache() {
                rechercheAvancee.setVisible(!rechercheAvancee.isVisible());
                recherchePrincipale.setVisible(!recherchePrincipale.isVisible());
                boutonRecherche.setVisible(!boutonRecherche.isVisible());
        }

        @Override
        public HasClickHandlers getBoutonRechercheSimple() {
                return boutonRecherche;
        }
        
        @Override
        public HasClickHandlers getBoutonFermer() {
                return boutonFermer;
        }
        
        @Override
        public HasClickHandlers getBoutonVider() {
                return boutonVider;
        }

        @Override
        public HasClickHandlers getBoutonRechercheAvancee() {
                return boutonRechercheAvancee;
        }

        @Override
        public HasKeyPressHandlers getChampSaisie() {
                return recherchePrincipale;
        }

        @Override
        public String getValeurRechercheSimple() {
                return recherchePrincipale.getText();
        }

        @Override
        public HasClickHandlers getChampSaisieCliquable() {
                return recherchePrincipale;
        }

        @Override
        public void setValeurRechercheSimple(String valeurRecherche) {
                recherchePrincipale.setText(valeurRecherche);
        }

        public void chargerValeursRechercheSimplePrecedente(InformationsRecherche informationsRecherche) {

                this.nettoyer();
                if (informationsRecherche.getRechercheLibre() != null && !informationsRecherche.getRechercheLibre().equals("")) {
                        getRecherchePrincipale().setText(informationsRecherche.getRechercheLibre());
                }
                afficherLigneInfoRecherche(informationsRecherche);
        }

        public void chargerValeursRecherchePrecedente(InformationsRecherche informationsRecherche) {
                informationsRecherche.setRechercheLibre(null);
                getRecherchePrincipale().setText("");
                getDepartement().setText(informationsRecherche.getDepartement());
                getCommune().setText(informationsRecherche.getCommune());
                getFamille().setText(informationsRecherche.getFamille());
                getGenre().setText(informationsRecherche.getGenre());
                getTag().setText(informationsRecherche.getTag());
                getMotCle().setText(informationsRecherche.getMotClef());
                getAuteur().setText(informationsRecherche.getAuteur());
                getDate().setText(informationsRecherche.getDate());
                
                afficherLigneInfoRecherche(informationsRecherche);
        }

        /**
         * Affiche la ligne d'en tête montrant les elements de la requête à
         * l'utilisateur
         * 
         * @param informationRecherche
         */
        private void afficherLigneInfoRecherche(InformationsRecherche informationRecherche) {

                //tax dep com fam gen ta mo au date
                StringBuffer texteRecherchePrecedente = new StringBuffer();
                
                if (informationRecherche.getRechercheLibre()!=null&&!informationRecherche.getRechercheLibre().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().rechercheLibre() + ":" + informationRecherche.getRechercheLibre() + " ");
                }
                if (informationRecherche.getTaxon() != null&&!informationRecherche.getTaxon().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().taxon() + ":" + informationRecherche.getTaxon() + " ");
                }
                if (informationRecherche.getDepartement()!=null && !informationRecherche.getDepartement().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().departement() + ":" + informationRecherche.getDepartement() + " ");
                }
                if (informationRecherche.getCommune()!=null && !informationRecherche.getCommune().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().commune() + ":" + informationRecherche.getCommune() + " ");
                }
                if (informationRecherche.getFamille()!=null && !informationRecherche.getFamille().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().famille() + ":" + informationRecherche.getFamille() + " ");
                }
                if (informationRecherche.getGenre()!=null && !informationRecherche.getGenre().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().genre() + ":" + informationRecherche.getGenre() + " ");
                }
                if (informationRecherche.getTag()!=null && !informationRecherche.getTag().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().tag() + ":" + informationRecherche.getTag() + " ");
                }
                if (informationRecherche.getMotClef()!=null && !informationRecherche.getMotClef().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().mot_clef() + ":" + informationRecherche.getMotClef() + " ");
                }
                if (informationRecherche.getAuteur()!=null && !informationRecherche.getAuteur().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().auteur() + ":" + informationRecherche.getAuteur() + " ");
                }
                if (informationRecherche.getDate()!=null && !informationRecherche.getDate().equals("")) {
                        texteRecherchePrecedente.append(I18n.getVocabulary().date() + ":" + informationRecherche.getDate() + " ");
                }
                
                
                
                recherchePrecedente.setText(texteRecherchePrecedente.toString());
        }

        public void nettoyer() {
                chargerValeursRecherchePrecedente(new InformationsRecherche());
        }
        
        public HasText getRecherchePrincipale() {
                return recherchePrincipale;
        }

        public HasText getDepartement() {
                return departement;
        }

        public HasText getCommune() {
                return commune;
        }

        public HasWidgets getTaxon() {
                return taxon;
        }

        public HasText getFamille() {
                return famille;
        }

        public HasText getGenre() {
                return genre;
        }

        public HasText getTag() {
                return tag;
        }

        public HasText getMotCle() {
                return motCle;
        }

        public HasText getAuteur() {
                return auteur;
        }

        public HasText getDate() {
                return date;
        }

        public void focusSaisie() {
                this.recherchePrincipale.setFocus(true);
        }
}