Subversion Repositories eFlore/Archives.cel-v2

Rev

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.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.menu.event.MenuListenerAdapter;

public class MenuFiltreVue extends Menu {

        /**
         * Le médiateur associé à la vue
         */
        private ImageMediateur iMediateur ;
        
        /**
         * Item pour la recherche par mots clés
         */
        private Item chercherImage = null ;
        
        /**
         * Item pour la recherche sur les commentaires
         */
        private Item chercherCommentaire = null ;
        
        /**
         * Constructeur sans argument (privé car ne doit être utilisé) 
         */
        private MenuFiltreVue()
        {
                super();
        }
        
        /**
         * Constructeur avec paramètre
         * @param im le médiateur à associer
         */
        public MenuFiltreVue(ImageMediateur im)
        {
                super() ;
                
                iMediateur = im ;
                
                // on construit le menu
                chercherImage = new Item("Filtrer par les mots clés") ;
                chercherCommentaire = new Item("Filtrer par les commentaires") ;
                addItem(chercherImage) ;
                addItem(chercherCommentaire) ;
                
                // on ajoute les listeners
                ajouterListeners() ;    
        }
        
        /**
         * Ajoute les listeners pour la gestions des évènements
         */
        private void ajouterListeners()
        {
                this.addListener(new MenuListenerAdapter() {

                        // gestion du clic sur un item
                        
                        public void onItemClick(BaseItem item, EventObject e) {
                                
                                // si c'est la recherche par mots clé
                                if(item.equals(chercherImage))
                                {
                                        // on notifie le médiateur
                                        getIMediateur().afficherFiltreMotsCles() ;
                                }
                                
                                // si c'est la recherche par commentaires
                                if(item.equals(chercherCommentaire))
                                {
                                        // on notifie le médiateur
                                        getIMediateur().afficherFiltreCommentaires() ;
                                }
                                
                                // enfin, on cache le menu
                                hide() ;
                                
                        }
                        
                }) ;
        }
        
        /**
         * Accesseur pour le médiateur
         * @return le médiateur associé à la vue
         */
        public ImageMediateur getIMediateur()
        {
                return iMediateur ;
        }
        
}