Rev 195 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.image;
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
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 PanneauFiltresImagesVues extends Panel {
/**
* Le médiateur associé
*/
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;
/**
* Recherche par contenu du tampon
*/
private SelectionFiltreVue selectionFiltreVue = null;
/**
* Bouton de validation
*/
private Button valider = null;
/**
* Construcuteur sans argument (privé car on ne doit pas l'utiliser)
*/
@SuppressWarnings("unused")
private PanneauFiltresImagesVues() {
super();
}
/**
* Constructeur avec arguments
*
* @param im
* le médiateur à associer
*/
public PanneauFiltresImagesVues(ImageMediateur im) {
super("Filtres");
iMediateur = im;
this.setCollapsible(true);
setLayout(new VerticalLayout());
commFiltresVues = new BarreRechercheFiltreVue(im);
add(commFiltresVues);
dateFiltreVues = new DateFiltreVue(im);
add(dateFiltreVues);
selectionFiltreVue = new SelectionFiltreVue(im);
add(selectionFiltreVue);
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()
|| selectionFiltreVue.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(),
selectionFiltreVue.renvoyerValeursAFiltrer() };
return filtres;
}
}