Subversion Repositories eFlore/Applications.cel

Rev

Rev 235 | 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
 
84
			public void onKey(int key, EventObject e) {
85
 
86
				valider();
87
			}
88
 
89
		});
90
 
91
		ok.addListener(new ButtonListenerAdapter() {
92
 
93
			public void onClick(Button button, EventObject e) {
94
				valider();
95
			}
96
		});
97
 
98
		afficherNuage.addListener(new ButtonListenerAdapter() {
99
 
100
			public void onClick(Button button, EventObject e) {
101
		//		oMediateur.afficherNuageMotsCles();
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
		if(nouvelleDonnees instanceof String) {
113
 
114
			champRecherche.setValue(champRecherche.getValueAsString()+" "+(String)nouvelleDonnees);
115
		}
116
		filtreModifie = false;
117
 
118
	}
119
 
120
	/**
121
	 * renvoie l'état du filtre (modifié ou non)
122
	 *
123
	 * @return l'état du filtre
124
	 */
125
	public boolean renvoyerEtatFiltre() {
126
 
127
		return filtreModifie;
128
	}
129
 
130
	/**
131
	 * Renvoie le nom du filtre
132
	 *
133
	 * @return le nom du filtre
134
	 */
135
	public String renvoyerNomFiltre() {
136
 
137
		return "Recherche Mots clés";
138
	}
139
 
140
	/**
141
	 * Renvoie un tableau contenant le nom du champ à filtrer et la valeur
142
	 *
143
	 * @return un tableau contenant le nom du champ à filtrer et sa valeur
144
	 */
145
	public String[] renvoyerValeursAFiltrer() {
146
 
147
		String[] valeurFiltre = new String[0];
148
		if(!motsAChercher.equals("")) {
149
			valeurFiltre = new String[2];
150
			valeurFiltre[0] = "mots_cles";
151
			valeurFiltre[1] = motsAChercher;
152
		}
153
		return valeurFiltre;
154
	}
155
 
156
	/**
157
	 * Accesseur pour le médiateur
158
	 *
159
	 * @return le médiateur associé
160
	 */
161
	public ObservationMediateur getIMediateur() {
162
		return oMediateur;
163
	}
164
 
165
	/**
166
	 * Effectue quelque opérations dans la classe et envoie une requête de
167
	 * données au médiateur
168
	 */
169
	public void valider() {
170
		filtreModifie = true;
171
		motsAChercher = champRecherche.getText();
172
		oMediateur.obtenirNombreObservation();
173
	}
174
 
175
	/**
176
	 * Affiche la fenetre
177
	 */
178
	public void afficherFiltre() {
179
 
180
		champRecherche.setValue(motsAChercher);
181
	}
182
}