Subversion Repositories eFlore/Archives.cel-v2

Rev

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