Subversion Repositories eFlore/Applications.cel

Rev

Rev 318 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
195 david 1
package org.tela_botanica.client.vues.image;
2 aperonnet 2
 
3
import org.tela_botanica.client.image.ImageMediateur;
195 david 4
import org.tela_botanica.client.vues.ArbreMotsClesFiltreVue;
2 aperonnet 5
 
6
import com.gwtext.client.core.EventObject;
318 aurelien 7
import com.gwtext.client.core.Ext;
2 aperonnet 8
import com.gwtext.client.widgets.Button;
9
import com.gwtext.client.widgets.Panel;
10
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
11
import com.gwtext.client.widgets.layout.VerticalLayout;
12
 
13
/**
14
 * Panneau contenant les filtres qu'on peut appliquer aux images
5 aperonnet 15
 *
2 aperonnet 16
 * @author aurelien
5 aperonnet 17
 *
2 aperonnet 18
 */
99 jpm 19
public class PanneauFiltresImagesVues extends Panel {
2 aperonnet 20
 
21
	/**
22
	 * Le médiateur associé
23
	 */
5 aperonnet 24
	private ImageMediateur iMediateur = null;
25
 
2 aperonnet 26
	/**
27
	 * L'arbre pour la recherche par mots clés
28
	 */
5 aperonnet 29
	private ArbreMotsClesFiltreVue motsClesFiltres = null;
2 aperonnet 30
	/**
31
	 * La barre de recherche par commentaires
32
	 */
5 aperonnet 33
	private BarreRechercheFiltreVue commFiltresVues = null;
34
 
2 aperonnet 35
	/**
5 aperonnet 36
	 * Recherche par date
2 aperonnet 37
	 */
5 aperonnet 38
	private DateFiltreVue dateFiltreVues = null;
39
 
2 aperonnet 40
	/**
5 aperonnet 41
	 * Recherche par contenu du tampon
42
	 */
43
	private SelectionFiltreVue selectionFiltreVue = null;
44
 
45
	/**
2 aperonnet 46
	 * Bouton de validation
47
	 */
5 aperonnet 48
	private Button valider = null;
49
 
2 aperonnet 50
	/**
51
	 * Construcuteur sans argument (privé car on ne doit pas l'utiliser)
52
	 */
53
	@SuppressWarnings("unused")
99 jpm 54
	private PanneauFiltresImagesVues() {
5 aperonnet 55
		super();
2 aperonnet 56
	}
5 aperonnet 57
 
2 aperonnet 58
	/**
59
	 * Constructeur avec arguments
5 aperonnet 60
	 *
61
	 * @param im
62
	 *            le médiateur à associer
2 aperonnet 63
	 */
99 jpm 64
	public PanneauFiltresImagesVues(ImageMediateur im) {
167 aurelien 65
		super("Filtres");
5 aperonnet 66
		iMediateur = im;
318 aurelien 67
 
5 aperonnet 68
		this.setCollapsible(true);
69
		setLayout(new VerticalLayout());
70
 
71
		commFiltresVues = new BarreRechercheFiltreVue(im);
72
		add(commFiltresVues);
73
 
74
		dateFiltreVues = new DateFiltreVue(im);
75
		add(dateFiltreVues);
76
 
77
		selectionFiltreVue = new SelectionFiltreVue(im);
78
		add(selectionFiltreVue);
79
 
80
		motsClesFiltres = new ArbreMotsClesFiltreVue(im);
81
		add(motsClesFiltres);
82
 
83
		Panel panelValidation = new Panel();
84
		valider = new Button("Rechercher");
85
		panelValidation.add(valider);
86
		panelValidation.setBorder(false);
87
		add(panelValidation);
88
 
2 aperonnet 89
		valider.addListener(new ButtonListenerAdapter() {
90
 
91
			public void onClick(Button button, EventObject e) {
5 aperonnet 92
 
93
				iMediateur.obtenirPhotoGalerie(iMediateur.getGalerieImage());
94
 
2 aperonnet 95
			}
5 aperonnet 96
 
97
		});
2 aperonnet 98
	}
5 aperonnet 99
 
2 aperonnet 100
	/**
101
	 * Accesseur pour le filtre des mots clés
5 aperonnet 102
	 *
2 aperonnet 103
	 * @return le filtre des mots clés
104
	 */
5 aperonnet 105
	public ArbreMotsClesFiltreVue getMotsClesFiltre() {
106
		return motsClesFiltres;
2 aperonnet 107
	}
5 aperonnet 108
 
2 aperonnet 109
	/**
110
	 * Accesseur pour le filtre par commentaire
5 aperonnet 111
	 *
2 aperonnet 112
	 * @return le filtre des commentaires
113
	 */
5 aperonnet 114
	public BarreRechercheFiltreVue getBarreRecherche() {
115
		return commFiltresVues;
2 aperonnet 116
	}
117
 
118
	/**
119
	 * Renvoie un booléen indiquant si un des filtres a été modifié
5 aperonnet 120
	 *
2 aperonnet 121
	 * @return true sur un des filtres est modifié, false sinon
122
	 */
123
	public boolean renvoyerEtatFiltre() {
5 aperonnet 124
 
125
		return (motsClesFiltres.renvoyerEtatFiltre()
126
				|| commFiltresVues.renvoyerEtatFiltre()
127
				|| dateFiltreVues.renvoyerEtatFiltre()
128
				|| selectionFiltreVue.renvoyerEtatFiltre());
2 aperonnet 129
	}
5 aperonnet 130
 
2 aperonnet 131
	/**
5 aperonnet 132
	 * Renvoie un tableau à 2 niveaux contenant des paires "nom_de_filtre",
133
	 * "valeur"
134
	 *
2 aperonnet 135
	 * @return un tableau contenant les noms et les valeurs à filtrer
136
	 */
5 aperonnet 137
	public String[][] renvoyerValeursAFiltrer() {
138
		String[][] filtres = { motsClesFiltres.renvoyerValeursAFiltrer(),
139
				commFiltresVues.renvoyerValeursAFiltrer(),
140
				dateFiltreVues.renvoyerValeursAFiltrer(),
141
				selectionFiltreVue.renvoyerValeursAFiltrer() };
142
 
143
		return filtres;
2 aperonnet 144
	}
145
 
146
}