Subversion Repositories eFlore/Applications.cel

Rev

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