Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.modeles;

import com.google.gwt.http.client.URL;

public class InformationsRecherche {

        private String rechercheLibre;

        private String departement;

        private String taxon;

        private String genre;

        private String motClef;

        private String date;

        private String commune;

        private String famille;

        private String tag;

        private String auteur;

        private String idProtocoleSelectionne = null;

        private ModeTri triParNbVotes = ModeTri.PAS_DE_TRI;

        private ModeTri triParDate = ModeTri.PAS_DE_TRI;

        public String getRechercheLibre() {
                return rechercheLibre;
        }

        public void setRechercheLibre(String rechercheLibre) {
                this.rechercheLibre = rechercheLibre;
        }

        public String getDepartement() {
                return departement;
        }

        public void setDepartement(String departement) {
                this.departement = departement;
        }

        public String getTaxon() {
                return taxon;
        }

        public void setTaxon(String taxon) {
                this.taxon = taxon;
        }

        public String getGenre() {
                return genre;
        }

        public void setGenre(String genre) {
                this.genre = genre;
        }

        public String getMotClef() {
                return motClef;
        }

        public void setMotClef(String motClef) {
                this.motClef = motClef;
        }

        public String getDate() {
                return date;
        }

        public void setDate(String date) {
                this.date = date;
        }

        public String getCommune() {
                return commune;
        }

        public void setCommune(String commune) {
                String[] tableauCommuneDpt = commune.split(" ");
                if (tableauCommuneDpt.length == 2) {
                        String dpt = tableauCommuneDpt[1].replaceAll("\\(", "").replaceAll("\\)", "");
                        setDepartement(dpt);
                        this.commune = tableauCommuneDpt[0];
                } else {
                        this.commune = commune;
                }

        }

        public String getFamille() {
                return famille;
        }

        public void setFamille(String famille) {
                this.famille = famille;
        }

        public String getTag() {
                return tag;
        }

        public void setTag(String tag) {
                this.tag = tag;
        }

        public String getAuteur() {
                return auteur;
        }

        public void setAuteur(String auteur) {
                this.auteur = auteur;
        }

        public ModeTri getTriParNbVotes() {
                return triParNbVotes;
        }

        public void setTriParNbVotes(ModeTri triParNbVotes) {
                this.triParNbVotes = triParNbVotes;
        }

        public void setIdProtocoleSelectionne(String idProtocoleSelectionne) {
                this.idProtocoleSelectionne = idProtocoleSelectionne;
        }

        public String getIdProtocoleSelectionne() {
                return idProtocoleSelectionne;
        }

        public ModeTri getTriParDate() {
                return triParDate;
        }

        public void setTriParDate(ModeTri triParDate) {
                this.triParDate = triParDate;
        }

        public String versChaineRequete() {
                String chaine = "";
                chaine += estNonNull(rechercheLibre) ? "&masque=" + URL.encode(rechercheLibre) : "";
                chaine += estNonNull(departement) ? "&masque.departement=" + URL.encode(departement) : "";
                chaine += estNonNull(taxon) ? "&masque.ns=" + URL.encode(taxon) : "";
                chaine += estNonNull(genre) ? "&masque.genre=" + URL.encode(genre) : "";
                chaine += estNonNull(motClef) ? "&masque.tag=" + URL.encode(motClef) : "";
                chaine += estNonNull(date) ? "&masque.date=" + URL.encode(date) : "";
                chaine += estNonNull(commune) ? "&masque.commune=" + URL.encode(commune) : "";
                chaine += estNonNull(famille) ? "&masque.famille=" + URL.encode(famille) : "";
                chaine += estNonNull(auteur) ? "&masque.auteur=" + URL.encode(auteur) : "";
                
                //TODO: réadapter les web services pour que ceux-ci prennent en compte un tri
                chaine += triParDate != ModeTri.PAS_DE_TRI ? "&tri=date_observation" : "";
                chaine += triParNbVotes != ModeTri.PAS_DE_TRI ? "&tri=nb_votes" : "";
                chaine += triParDate != ModeTri.PAS_DE_TRI ? "&ordre=" + triParDate : "";
                chaine += triParNbVotes != ModeTri.PAS_DE_TRI ? "&ordre=" + triParNbVotes : "";
                chaine += estNonNull(idProtocoleSelectionne) ? "&id_protocole=" + idProtocoleSelectionne : "";

                return chaine;
        }

        private boolean estNonNull(String critere) {
                return critere != null && !critere.trim().isEmpty();
        }
}