Subversion Repositories eFlore/Applications.cel

Rev

Rev 184 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
184 david 1
package org.tela_botanica.client.vues;
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
		setAutoWidth(true);
72
		setCollapsible(true);
73
 
74
		ajouterListeners();
75
	}
76
 
77
	/**
78
	 * ajoute des listeners
79
	 */
80
	private void ajouterListeners() {
81
 
82
		// gestion de la touche entrée
83
		champRecherche.addKeyListener(EventObject.ENTER, new KeyListener() {
84
 
85
			public void onKey(int key, EventObject e) {
86
 
87
				valider();
88
			}
89
 
90
		});
91
 
92
		ok.addListener(new ButtonListenerAdapter() {
93
 
94
			public void onClick(Button button, EventObject e) {
95
				valider();
96
			}
97
		});
98
 
99
		afficherNuage.addListener(new ButtonListenerAdapter() {
100
 
101
			public void onClick(Button button, EventObject e) {
102
		//		oMediateur.afficherNuageMotsCles();
103
			}
104
		});
105
	}
106
 
107
	/**
108
	 * Fonction héritée de l'interface rafraichissable
109
	 */
110
	public void rafraichir(Object nouvelleDonnees,
111
			boolean repandreRaffraichissement) {
112
 
113
		if(nouvelleDonnees instanceof String) {
114
 
115
			champRecherche.setValue(champRecherche.getValueAsString()+" "+(String)nouvelleDonnees);
116
		}
117
		filtreModifie = false;
118
 
119
	}
120
 
121
	/**
122
	 * renvoie l'état du filtre (modifié ou non)
123
	 *
124
	 * @return l'état du filtre
125
	 */
126
	public boolean renvoyerEtatFiltre() {
127
 
128
		return filtreModifie;
129
	}
130
 
131
	/**
132
	 * Renvoie le nom du filtre
133
	 *
134
	 * @return le nom du filtre
135
	 */
136
	public String renvoyerNomFiltre() {
137
 
138
		return "Recherche Mots clés";
139
	}
140
 
141
	/**
142
	 * Renvoie un tableau contenant le nom du champ à filtrer et la valeur
143
	 *
144
	 * @return un tableau contenant le nom du champ à filtrer et sa valeur
145
	 */
146
	public String[] renvoyerValeursAFiltrer() {
147
 
148
		String[] valeurFiltre = new String[0];
149
		if(!motsAChercher.equals("")) {
150
			valeurFiltre = new String[2];
151
			valeurFiltre[0] = "mots_cles";
152
			valeurFiltre[1] = motsAChercher;
153
		}
154
		return valeurFiltre;
155
	}
156
 
157
	/**
158
	 * Accesseur pour le médiateur
159
	 *
160
	 * @return le médiateur associé
161
	 */
162
	public ObservationMediateur getIMediateur() {
163
		return oMediateur;
164
	}
165
 
166
	/**
167
	 * Effectue quelque opérations dans la classe et envoie une requête de
168
	 * données au médiateur
169
	 */
170
	public void valider() {
171
		filtreModifie = true;
172
		motsAChercher = champRecherche.getText();
173
		oMediateur.obtenirNombreObservation();
174
	}
175
 
176
	/**
177
	 * Affiche la fenetre
178
	 */
179
	public void afficherFiltre() {
180
 
181
		champRecherche.setValue(motsAChercher);
182
	}
183
}