Subversion Repositories eFlore/Applications.cel

Rev

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