Subversion Repositories eFlore/Applications.cel

Rev

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