Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
161 gduche 1
package org.tela_botanica.del.client.vues.rechercheobservations;
2
 
3
import java.util.HashMap;
4
import java.util.Iterator;
5
 
6
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
7
 
8
import com.google.gwt.event.dom.client.ClickEvent;
9
import com.google.gwt.event.dom.client.ClickHandler;
10
import com.google.gwt.event.dom.client.KeyCodes;
11
import com.google.gwt.event.dom.client.KeyPressEvent;
12
import com.google.gwt.event.dom.client.KeyPressHandler;
13
import com.google.gwt.user.client.ui.HasWidgets;
14
import com.google.gwt.user.client.ui.Panel;
15
import com.google.gwt.user.client.ui.RootPanel;
16
import com.google.gwt.user.client.ui.TextBox;
17
 
18
public class RechercheObservationsPresenteur extends Presenteur {
19
 
20
	public RechercheObservationsPresenteur() {
21
		super(new RechercheObservationsVue());
22
	}
23
 
24
	public void go(HasWidgets composite) {
25
		if (composite == null) {
26
			composite = RootPanel.get();
27
		}
28
		composite.add(this.getVue());
29
		handleEvents();
30
	}
31
 
32
	protected void handleEvents() {
33
 
34
		RechercheObservationsVue vue = (RechercheObservationsVue) getVue();
35
 
36
		// Gestion du clic dans la zone de saisie
37
		vue.recherchePrincipale.addClickHandler(new ClickHandler() {
38
 
39
			public void onClick(ClickEvent event) {
40
				TextBox recherchePrincipale = (TextBox) event.getSource();
41
				if (recherchePrincipale.getText().equals("Recherche libre")) {
42
					recherchePrincipale.setText("");
43
				}
44
			}
45
		});
46
 
47
		// Gestion de l'affichage de la recherche Avancée
48
		vue.lienRechercheAvancee.addClickHandler(new ClickHandler() {
49
 
50
			public void onClick(ClickEvent event) {
51
				Panel rechercheAvancee = ((RechercheObservationsVue) getVue()).rechercheAvancee;
52
				rechercheAvancee.setVisible(!rechercheAvancee.isVisible());
53
			}
54
		});
55
 
56
		// Gestion de l'évènement recherche sur le clic ou sur l'appui de la
57
		// touche Entrée
58
		vue.boutonRecherche.addClickHandler(new ClickHandler() {
59
 
60
			public void onClick(ClickEvent event) {
61
				lancerRecherche();
62
			}
63
		});
64
 
65
		vue.boutonRechercheAvancee.addClickHandler(new ClickHandler() {
66
			public void onClick(ClickEvent event) {
67
				lancerRecherche();
68
			}
69
		});
70
 
71
		vue.recherchePrincipale.addKeyPressHandler(new KeyPressHandler() {
72
 
73
			public void onKeyPress(KeyPressEvent event) {
74
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
75
					lancerRecherche();
76
				}
77
			}
78
		});
79
	}
80
 
81
	// Lancer la recherche
82
	public void lancerRecherche() {
83
 
84
		RechercheObservationsVue vue = (RechercheObservationsVue) getVue();
85
 
86
		// Masquer la recherche Avancée
87
		vue.rechercheAvancee.setVisible(false);
88
 
89
		// Collecter les valeurs du formulaire
90
		HashMap<String, String> valeursRecherche = new HashMap<String, String>();
91
		valeursRecherche.put("search", vue.recherchePrincipale.getText());
92
		valeursRecherche.put("dept", vue.departement.getText());
93
		valeursRecherche.put("com", vue.commune.getText());
94
		valeursRecherche.put("taxon", vue.taxon.getText());
95
		valeursRecherche.put("fam", vue.famille.getText());
96
		valeursRecherche.put("gen", vue.genre.getText());
97
		valeursRecherche.put("tag", vue.tag.getText());
98
		valeursRecherche.put("motCle", vue.motCle.getText());
99
		valeursRecherche.put("auteur", vue.auteur.getText());
100
		valeursRecherche.put("date", vue.date.getText());
101
 
102
		vue.recherchePrecedente.setText(getChaineRecherche(valeursRecherche));
103
	}
104
 
105
	private String getChaineRecherche(HashMap<String, String> valeursRecherche) {
106
		Iterator<String> itCles = valeursRecherche.keySet().iterator();
107
		String chaineRecherche = "";
108
		while (itCles.hasNext()) {
109
			String cle = itCles.next();
110
			String valeur = valeursRecherche.get(cle);
111
			if (valeur != "") {
112
				chaineRecherche += cle + ":=" + valeur + " ";
113
			}
114
		}
115
		return chaineRecherche;
116
	}
117
}