Subversion Repositories eFlore/Applications.cel

Rev

Rev 155 | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues;

import org.tela_botanica.client.observation.ObservationMediateur;

import com.google.gwt.user.client.Window;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.ContainerListener;
import com.gwtext.client.widgets.event.ContainerListenerAdapter;
import com.gwtext.client.widgets.event.PanelListener;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.layout.AccordionLayout;
import com.gwtext.client.widgets.layout.AnchorLayout;
import com.gwtext.client.widgets.layout.AnchorLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.layout.RowLayout;
import com.gwtext.client.widgets.layout.RowLayoutData;
import com.gwtext.client.widgets.layout.VerticalLayout;

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

        /**
         * Le médiateur associé
         */
        private ObservationMediateur observationMediateur = null;
        
        /**
         * L'arbre pour la recherche entite geographique
         * 
         */
        private ArbreEntiteGeographiqueObservationFiltreVue arbreEntiteGeographiqueObservationFiltreVue = null;
        
        /**
         * L'arbre pour la recherche date
         * 
         */
        private ArbreDateObservationFiltreVue arbreDateObservationFiltreVue = null;
        
        private ArbreMotsClesFiltreVue arbreMotsClesFiltreVue = null ;
        
        
        

        /**
         * Construcuteur sans argument (privé car on ne doit pas l'utiliser)
         */
        @SuppressWarnings("unused")
        private PanneauFiltresObservationVues() {
                super();
        }

        /**
         * Constructeur avec arguments
         * 
         * @param im
         *            le médiateur à associer
         */
        public PanneauFiltresObservationVues(ObservationMediateur obs) {
                
                super("Filtres");
                
                observationMediateur = obs;
                
                this.setCollapsible(true);
                //this.setLayout(new AnchorLayout()) ;
                this.setLayout(new RowLayout());
                
                arbreEntiteGeographiqueObservationFiltreVue = new ArbreEntiteGeographiqueObservationFiltreVue(observationMediateur);
                add(arbreEntiteGeographiqueObservationFiltreVue,new RowLayoutData());
                //arbreEntiteGeographiqueObservationFiltreVue.setHeight(300) ;
                arbreEntiteGeographiqueObservationFiltreVue.setWidth("100%") ;
                arbreEntiteGeographiqueObservationFiltreVue.setBorder(false);
                
                arbreDateObservationFiltreVue = new ArbreDateObservationFiltreVue(observationMediateur) ;
                //arbreDateObservationFiltreVue.setHeight(300) ;
                add(arbreDateObservationFiltreVue, new RowLayoutData());
                arbreDateObservationFiltreVue.setWidth("100%") ;
                arbreDateObservationFiltreVue.setBorder(false);
                
                arbreMotsClesFiltreVue = new ArbreMotsClesFiltreVue(observationMediateur);
                add(arbreMotsClesFiltreVue, new RowLayoutData());
                arbreMotsClesFiltreVue.setWidth("100%") ;
                arbreMotsClesFiltreVue.setTitle("Mots Clés");
                arbreMotsClesFiltreVue.setTitleCollapse(true);
                arbreMotsClesFiltreVue.setCollapsible(true);
                arbreMotsClesFiltreVue.setBorder(false);
                arbreMotsClesFiltreVue.hide();
                
        }

        /**
         * Accesseur pour le filtre des mots clés
         * 
         * @return le filtre des mots clés
         */
        
        public ArbreEntiteGeographiqueObservationFiltreVue getArbreEntiteGeographiqueObservationFiltreVue() {
                return arbreEntiteGeographiqueObservationFiltreVue;
        }
        
        public ArbreDateObservationFiltreVue getArbreDateObservationFiltreVue() {
                return arbreDateObservationFiltreVue;
        }
        
        public ArbreMotsClesFiltreVue getArbreMotsClesFiltreVue() {
                return arbreMotsClesFiltreVue;
        }
        
        /**
         * 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 (arbreEntiteGeographiqueObservationFiltreVue.renvoyerEtatFiltre() || arbreDateObservationFiltreVue.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 = { arbreEntiteGeographiqueObservationFiltreVue.renvoyerValeursAFiltrer(),
                                                                arbreDateObservationFiltreVue.renvoyerValeursAFiltrer(),
                                                                arbreMotsClesFiltreVue.renvoyerValeursAFiltrer()
                                 };
                
                return filtres;
        }

}