Subversion Repositories eFlore/Archives.cel-v2

Rev

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

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