Subversion Repositories eFlore/Applications.cel

Rev

Details | Last modification | View Log | RSS feed

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