Subversion Repositories eFlore/Applications.cel

Rev

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

Rev Author Line No. Line
195 david 1
package org.tela_botanica.client.vues.observation;
184 david 2
 
3
import org.tela_botanica.client.interfaces.Filtrable;
4
import org.tela_botanica.client.interfaces.Rafraichissable;
5
import org.tela_botanica.client.observation.ObservationMediateur;
6
 
7
import com.google.gwt.user.client.ui.Label;
8
import com.gwtext.client.core.EventObject;
9
import com.gwtext.client.widgets.Button;
10
import com.gwtext.client.widgets.Panel;
11
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
12
import com.gwtext.client.widgets.event.KeyListener;
13
import com.gwtext.client.widgets.form.TextField;
14
 
15
public class MotsClesObsVue extends Panel implements Filtrable, Rafraichissable {
16
 
17
	private ObservationMediateur oMediateur = null ;
18
 
19
	/**
20
	 * Barre de recherche
21
	 *
22
	 */
23
	private TextField champRecherche = null;
24
 
25
	/**
26
	 * Booleen d'etat du filtre
27
	 */
28
	private boolean filtreModifie = false;
29
 
30
	/**
31
	 * mot(s) à chercher
32
	 */
33
	private String motsAChercher = "";
34
 
35
	/**
36
	 * bouton de validation
37
	 */
38
	private Button ok = null ;
39
 
40
	private Button afficherNuage = null;
41
 
42
	/**
43
	 * Constructeur sans argument (privé car ne doit pas être utilisé)
44
	 */
45
	@SuppressWarnings("unused")
46
	private MotsClesObsVue() {
47
		super();
48
	}
49
 
50
	/**
51
	 * Constructeur avec médiateur
52
	 *
53
	 * @param im
54
	 */
55
	public MotsClesObsVue(ObservationMediateur om) {
56
		super();
57
		oMediateur = om;
58
 
59
		Label labelRecherche = new Label("Mots clés :");
60
		champRecherche = new TextField();
61
		ok = new Button("Rechercher");
62
		afficherNuage = new Button("Voir les mots clés");
63
 
64
		add(labelRecherche);
65
		add(champRecherche);
66
		add(ok);
67
		add(afficherNuage);
68
 
69
		setPaddings(5);
70
		setBorder(false);
71
		setCollapsible(true);
72
 
73
		ajouterListeners();
74
	}
75
 
76
	/**
77
	 * ajoute des listeners
78
	 */
79
	private void ajouterListeners() {
80
 
81
		// gestion de la touche entrée
82
		champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() {
83
 
1292 aurelien 84
			@Override
184 david 85
			public void onKey(int key, EventObject e) {
86
 
87
				valider();
88
			}
89
 
90
		});
91
 
92
		ok.addListener(new ButtonListenerAdapter() {
93
 
1292 aurelien 94
			@Override
184 david 95
			public void onClick(Button button, EventObject e) {
96
				valider();
97
			}
98
		});
99
 
100
		afficherNuage.addListener(new ButtonListenerAdapter() {
101
 
1292 aurelien 102
			@Override
184 david 103
			public void onClick(Button button, EventObject e) {
104
		//		oMediateur.afficherNuageMotsCles();
105
			}
106
		});
107
	}
108
 
109
	/**
110
	 * Fonction héritée de l'interface rafraichissable
111
	 */
1292 aurelien 112
	@Override
184 david 113
	public void rafraichir(Object nouvelleDonnees,
114
			boolean repandreRaffraichissement) {
115
 
116
		if(nouvelleDonnees instanceof String) {
117
 
118
			champRecherche.setValue(champRecherche.getValueAsString()+" "+(String)nouvelleDonnees);
119
		}
120
		filtreModifie = false;
121
 
122
	}
123
 
124
	/**
125
	 * renvoie l'état du filtre (modifié ou non)
126
	 *
127
	 * @return l'état du filtre
128
	 */
1292 aurelien 129
	@Override
184 david 130
	public boolean renvoyerEtatFiltre() {
131
 
132
		return filtreModifie;
133
	}
134
 
135
	/**
136
	 * Renvoie le nom du filtre
137
	 *
138
	 * @return le nom du filtre
139
	 */
1292 aurelien 140
	@Override
184 david 141
	public String renvoyerNomFiltre() {
142
 
143
		return "Recherche Mots clés";
144
	}
145
 
146
	/**
147
	 * Renvoie un tableau contenant le nom du champ à filtrer et la valeur
148
	 *
149
	 * @return un tableau contenant le nom du champ à filtrer et sa valeur
150
	 */
1292 aurelien 151
	@Override
184 david 152
	public String[] renvoyerValeursAFiltrer() {
153
 
154
		String[] valeurFiltre = new String[0];
155
		if(!motsAChercher.equals("")) {
156
			valeurFiltre = new String[2];
157
			valeurFiltre[0] = "mots_cles";
158
			valeurFiltre[1] = motsAChercher;
159
		}
160
		return valeurFiltre;
161
	}
162
 
163
	/**
164
	 * Accesseur pour le médiateur
165
	 *
166
	 * @return le médiateur associé
167
	 */
168
	public ObservationMediateur getIMediateur() {
169
		return oMediateur;
170
	}
171
 
172
	/**
173
	 * Effectue quelque opérations dans la classe et envoie une requête de
174
	 * données au médiateur
175
	 */
1292 aurelien 176
	@Override
184 david 177
	public void valider() {
178
		filtreModifie = true;
179
		motsAChercher = champRecherche.getText();
180
		oMediateur.obtenirNombreObservation();
181
	}
182
 
183
	/**
184
	 * Affiche la fenetre
185
	 */
186
	public void afficherFiltre() {
187
 
188
		champRecherche.setValue(motsAChercher);
189
	}
682 aurelien 190
 
1292 aurelien 191
	@Override
682 aurelien 192
	public void viderFiltre() {
193
		champRecherche.setValue("");
194
		motsAChercher = "";
195
	}
184 david 196
}