Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
322 gduche 1
package org.tela_botanica.del.client.composants.moteurrecherche;
2
 
3
import java.util.HashMap;
4
 
5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
6
import org.tela_botanica.del.client.i18n.I18n;
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.HasClickHandlers;
11
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
12
import com.google.gwt.event.dom.client.KeyCodes;
13
import com.google.gwt.event.dom.client.KeyPressEvent;
14
import com.google.gwt.event.dom.client.KeyPressHandler;
15
import com.google.gwt.user.client.Window;
16
import com.google.gwt.user.client.ui.HasWidgets;
17
import com.google.gwt.user.client.ui.IsWidget;
18
 
19
public abstract class MoteurRecherchePresenteur extends Presenteur {
20
 
21
	public abstract interface Vue extends IsWidget {
22
		public abstract HasClickHandlers getLienRechercheAvancee();
23
		public abstract void basculerAffichageZoneCache();
24
		public abstract HasClickHandlers getBoutonRechercheSimple();
25
		public abstract HasClickHandlers getBoutonRechercheAvancee();
26
		public abstract HasKeyPressHandlers getChampSaisie();
27
		public abstract HasClickHandlers getChampSaisieCliquable();
28
		public abstract String getValeurRechercheSimple();
29
		public void setValeurRechercheSimple(String valeurRecherche);
30
		public String getLabelRecherche();
31
		public abstract HashMap<String, String> collecterFormulaire();
32
		public String getChaineRecherche();
33
		public abstract void setRecherchePrecedente();
34
	}
35
 
36
	private Vue vue;
37
 
38
	public MoteurRecherchePresenteur(Vue vue) {
39
		this.vue = vue;
40
		gererEvenements();
41
	}
42
 
43
	@Override
44
	public void go(HasWidgets composite) {
45
		composite.add(vue.asWidget());
46
	}
47
 
48
	@Override
49
	protected void gererEvenements() {
50
		vue.getLienRechercheAvancee().addClickHandler(new ClickHandler() {
51
			public void onClick(ClickEvent event) {
52
				vue.basculerAffichageZoneCache();
53
			}
54
		});
55
 
56
		vue.getBoutonRechercheSimple().addClickHandler(new ClickHandler() {
57
			public void onClick(ClickEvent event) {
58
				afficherInfoRecherche();
59
				lancerRecherche(vue.getChaineRecherche());
60
			}
61
		});
62
 
63
		vue.getBoutonRechercheAvancee().addClickHandler(new ClickHandler() {
64
			public void onClick(ClickEvent event) {
65
				afficherInfoRecherche();
66
				lancerRecherche(vue.getChaineRecherche());
67
			}
68
		});
69
 
70
		vue.getChampSaisie().addKeyPressHandler(new KeyPressHandler() {
71
 
72
			public void onKeyPress(KeyPressEvent event) {
73
				if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
74
					afficherInfoRecherche();
75
					lancerRecherche(vue.getChaineRecherche());
76
				}
77
			}
78
		});
79
 
80
		vue.getChampSaisieCliquable().addClickHandler(new ClickHandler() {
81
 
82
			@Override
83
			public void onClick(ClickEvent event) {
84
				if (vue.getValeurRechercheSimple().equals(vue.getLabelRecherche())) {
85
					vue.setValeurRechercheSimple("");
86
				}
87
			}
88
		});
89
 
90
	}
91
 
92
	private void afficherInfoRecherche() {
93
		vue.setRecherchePrecedente();
94
	}
95
 
96
	public abstract void lancerRecherche(String termeRecherche);
97
}