Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues;

import org.tela_botanica.client.image.ImageMediateur;

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.layout.VerticalLayout;


/**
 * Panneau contenant les filtres qu'on peut appliquer aux images
 * @author aurelien
 *
 */
public class PanneauFiltresVues extends Panel {

        /**
         * Le médiateur associé
         */
        @SuppressWarnings("unused")
        private ImageMediateur iMediateur = null ;
        
        /**
         * L'arbre pour la recherche par mots clés
         */
        private ArbreMotsClesFiltreVue motsClesFiltres = null ;
        /**
         * La barre de recherche par commentaires
         */
        private BarreRechercheFiltreVue commFiltresVues = null ;
        
        /**
         * Recherche par date 
         */
        private DateFiltreVue dateFiltreVues = null ;
        
        /**
         * Bouton de validation
         */
        private Button valider = null ;
        
        /**
         * Construcuteur sans argument (privé car on ne doit pas l'utiliser)
         */
        @SuppressWarnings("unused")
        private PanneauFiltresVues()
        {
                super() ;
        }
        
        /**
         * Constructeur avec arguments
         * @param im le médiateur à associer
         */
        public PanneauFiltresVues(ImageMediateur im)
        {
                super("Rechercher des images") ;
                iMediateur = im ;
                
                this.setCollapsible(true) ;
                setLayout(new VerticalLayout()) ;
                
                commFiltresVues = new BarreRechercheFiltreVue(im) ;
                add(commFiltresVues) ;
                
                dateFiltreVues = new DateFiltreVue(im) ;
                add(dateFiltreVues) ;
                
                motsClesFiltres = new ArbreMotsClesFiltreVue(im) ;
                add(motsClesFiltres) ;
                
                Panel panelValidation = new Panel() ;
                valider = new Button("Rechercher") ;
                panelValidation.add(valider) ;
                panelValidation.setBorder(false) ;
                add(panelValidation) ;
                
                valider.addListener(new ButtonListenerAdapter() {

                        public void onClick(Button button, EventObject e) {
                                
                                iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage()) ;
                                
                        }
                        
                }) ;
        }
        
        /**
         * Accesseur pour le filtre des mots clés
         * @return le filtre des mots clés
         */
        public ArbreMotsClesFiltreVue getMotsClesFiltre()
        {
                return motsClesFiltres ;
        }
        
        /**
         * Accesseur pour le filtre par commentaire
         * @return le filtre des commentaires
         */
        public BarreRechercheFiltreVue getBarreRecherche()
        {
                return commFiltresVues ;
        }

        /**
         * Renvoie un booléen indiquant si un des filtres a été modifié
         * @return true sur un des filtres est modifié, false sinon
         */
        public boolean renvoyerEtatFiltre() {
                
                return (motsClesFiltres.renvoyerEtatFiltre() || commFiltresVues.renvoyerEtatFiltre() || dateFiltreVues.renvoyerEtatFiltre() ) ;
        }
        
        /**
         * Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre", "valeur"
         * @return un tableau contenant les noms et les valeurs à filtrer
         */
        public String[][] renvoyerValeursAFiltrer()
        {
                String[][] filtres = { motsClesFiltres.renvoyerValeursAFiltrer(), commFiltresVues.renvoyerValeursAFiltrer() , dateFiltreVues.renvoyerValeursAFiltrer() } ;
                return filtres ;
        }

}