Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | 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;
4
import org.tela_botanica.client.interfaces.Filtrable;
5
import org.tela_botanica.client.interfaces.Rafraichissable;
6
 
7
import com.google.gwt.user.client.ui.Label;
8
import com.gwtext.client.core.EventObject;
9
import com.gwtext.client.widgets.Panel;
10
import com.gwtext.client.widgets.event.KeyListener;
11
import com.gwtext.client.widgets.form.TextField;
12
 
13
/**
5 aperonnet 14
 * Fenêtre de recherche pour les mots clés, contenant un champ texte, et un
15
 * bouton cliquable
16
 *
2 aperonnet 17
 * @author aurelien
5 aperonnet 18
 *
2 aperonnet 19
 */
5 aperonnet 20
public class BarreRechercheFiltreVue extends Panel implements Rafraichissable,
21
		Filtrable {
2 aperonnet 22
 
23
	/**
24
	 * Médiateur associé à la vue
25
	 */
5 aperonnet 26
	private ImageMediateur iMediateur = null;
27
 
2 aperonnet 28
	/**
5 aperonnet 29
	 * Barre de recherche
2 aperonnet 30
	 *
31
	 */
5 aperonnet 32
	private TextField champRecherche = null;
33
 
2 aperonnet 34
	/**
35
	 * Booleen d'etat du filtre
36
	 */
5 aperonnet 37
	private boolean filtreModifie = false;
38
 
2 aperonnet 39
	/**
40
	 * mot(s) à chercher
41
	 */
5 aperonnet 42
	private String motsAChercher = "";
43
 
2 aperonnet 44
	/**
45
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
46
	 */
47
	@SuppressWarnings("unused")
5 aperonnet 48
	private BarreRechercheFiltreVue() {
49
		super();
2 aperonnet 50
	}
5 aperonnet 51
 
2 aperonnet 52
	/**
5 aperonnet 53
	 * Constructeur avec médiateur
54
	 *
2 aperonnet 55
	 * @param im
56
	 */
5 aperonnet 57
	public BarreRechercheFiltreVue(ImageMediateur im) {
58
		super();
59
		iMediateur = im;
60
 
168 aurelien 61
		Label labelRecherche = new Label("Par commentaires :");
5 aperonnet 62
		champRecherche = new TextField();
63
 
64
		add(labelRecherche);
65
		add(champRecherche);
66
 
67
		setPaddings(5);
68
		setBorder(false);
69
		setAutoWidth(true);
70
		setCollapsible(true);
71
 
72
		ajouterListeners();
2 aperonnet 73
	}
5 aperonnet 74
 
2 aperonnet 75
	/**
76
	 * ajoute des listeners
77
	 */
5 aperonnet 78
	private void ajouterListeners() {
79
 
2 aperonnet 80
		// gestion de la touche entrée
81
		champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() {
82
 
83
			public void onKey(int key, EventObject e) {
5 aperonnet 84
 
85
				valider();
86
				getIMediateur().obtenirPhotoGalerie(
87
						getIMediateur().getFiltreCommentaires());
2 aperonnet 88
			}
5 aperonnet 89
 
90
		});
2 aperonnet 91
	}
5 aperonnet 92
 
2 aperonnet 93
	/**
94
	 * Fonction héritée de l'interface rafraichissable
95
	 */
96
	public void rafraichir(Object nouvelleDonnees,
97
			boolean repandreRaffraichissement) {
5 aperonnet 98
 
99
		filtreModifie = false;
100
 
2 aperonnet 101
	}
102
 
103
	/**
104
	 * renvoie l'état du filtre (modifié ou non)
5 aperonnet 105
	 *
2 aperonnet 106
	 * @return l'état du filtre
107
	 */
108
	public boolean renvoyerEtatFiltre() {
5 aperonnet 109
 
110
		return filtreModifie;
2 aperonnet 111
	}
112
 
113
	/**
114
	 * Renvoie le nom du filtre
5 aperonnet 115
	 *
2 aperonnet 116
	 * @return le nom du filtre
117
	 */
118
	public String renvoyerNomFiltre() {
5 aperonnet 119
 
120
		return "Recherche Commentaires";
2 aperonnet 121
	}
5 aperonnet 122
 
2 aperonnet 123
	/**
124
	 * Renvoie un tableau contenant le nom du champ à filtrer et la valeur
5 aperonnet 125
	 *
2 aperonnet 126
	 * @return un tableau contenant le nom du champ à filtrer et sa valeur
127
	 */
128
	public String[] renvoyerValeursAFiltrer() {
5 aperonnet 129
 
130
		valider() ;
131
		String[] valeurFiltre = { "ci_meta_comment", motsAChercher };
132
		return valeurFiltre;
2 aperonnet 133
	}
5 aperonnet 134
 
2 aperonnet 135
	/**
136
	 * Accesseur pour le médiateur
5 aperonnet 137
	 *
138
	 * @return le médiateur associé
2 aperonnet 139
	 */
5 aperonnet 140
	public ImageMediateur getIMediateur() {
141
		return iMediateur;
2 aperonnet 142
	}
5 aperonnet 143
 
2 aperonnet 144
	/**
5 aperonnet 145
	 * Effectue quelque opérations dans la classe et envoie une requête de
146
	 * données au médiateur
2 aperonnet 147
	 */
5 aperonnet 148
	public void valider() {
149
		filtreModifie = true;
150
		motsAChercher = champRecherche.getText();
2 aperonnet 151
	}
5 aperonnet 152
 
2 aperonnet 153
	/**
154
	 * Affiche la fenetre
155
	 */
156
	public void afficherFiltre() {
5 aperonnet 157
 
158
		champRecherche.setValue(motsAChercher);
2 aperonnet 159
	}
160
 
161
}