Subversion Repositories eFlore/Applications.del

Rev

Rev 436 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 436 Rev 445
1
package org.tela_botanica.del.client.vues.rechercheobservations;
1
package org.tela_botanica.del.client.vues.rechercheobservations;
2
 
-
 
3
import org.tela_botanica.del.client.cache.CacheClient;
2
 
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
3
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
-
 
6
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
-
 
7
import org.tela_botanica.del.client.composants.pagination.PaginationVue;
4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
-
 
9
import org.tela_botanica.del.client.modeles.Observation;
-
 
10
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
11
import org.tela_botanica.del.client.services.rest.ObservationService;
6
import org.tela_botanica.del.client.services.rest.ObservationService;
-
 
7
import org.tela_botanica.del.client.services.rest.ObservationServiceConcret;
-
 
8
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsPresenteur;
12
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
9
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.ResultatsRechercheObservationsVue;
13
 
10
 
14
import com.google.gwt.user.client.ui.HasWidgets;
11
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.IsWidget;
12
import com.google.gwt.user.client.ui.IsWidget;
16
 
13
 
17
public class RechercheObservationsPresenteur extends Presenteur {
14
public class RechercheObservationsPresenteur extends Presenteur {
18
 
-
 
19
	private ObservationService serviceObs;
-
 
20
 
15
 
21
	public abstract interface Vue extends IsWidget {
16
	public abstract interface Vue extends IsWidget {
22
		public HasWidgets getZoneRecherche();
17
		public HasWidgets getZoneRecherche();
23
 
18
 
24
		public HasWidgets getZoneObservations();
-
 
25
 
-
 
26
		public HasWidgets getZonePaginationHaut();
-
 
27
 
-
 
28
		public HasWidgets getZonePaginationBas();
-
 
29
 
-
 
30
		public void startChargement();
-
 
31
 
-
 
32
		public void stopChargement();
-
 
33
 
-
 
34
		public void nettoyer();
19
		public HasWidgets getZoneResultats();
35
	}
20
	}
36
 
21
 
37
	private Vue vue;
22
	private Vue vue;
38
 
23
 
39
	public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
24
	public RechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
40
 
25
 
41
		this.vue = vue;
26
		this.vue = vue;
42
		this.serviceObs = serviceObs;
-
 
43
	}
27
	}
44
 
28
 
45
	public void go(HasWidgets composite) {
29
	public void go(HasWidgets composite) {
46
 
30
 
47
		composite.add(vue.asWidget());
31
		composite.add(vue.asWidget());
48
		ajouterMoteurRechercheAvancee();
32
		ajouterMoteurRechercheAvancee();
49
 
-
 
50
		ObservationsCallback callback = new ObservationsCallback() {
-
 
51
			@Override
-
 
52
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
-
 
53
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
-
 
54
				afficherObservations(observationsRecues);
-
 
55
			}
-
 
56
		};
-
 
57
 
-
 
58
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), 0, CacheClient.getInstance().getPasPagination(), callback);
33
 
59
	}
34
	}
60
 
35
 
61
	protected void ajouterMoteurRechercheAvancee() {
36
	protected void ajouterMoteurRechercheAvancee() {
62
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
37
		MoteurRecherchePresenteur presenteur = new MoteurRecherchePresenteur(new MoteurRechercheVue("") {
63
		}, false, true) {
38
		}, false, true) {
64
 
39
 
65
			@Override
40
			@Override
66
			public void lancerRecherche() {
41
			public void lancerRecherche() {
67
				chargerEtAfficherObservations(0, CacheClient.getInstance().getPasPagination());
42
				chercherObservations();
68
			}
43
			}
69
		};
44
		};
70
		presenteur.go(vue.getZoneRecherche());
45
		presenteur.go(vue.getZoneRecherche());
71
	}
46
	}
72
 
-
 
73
	protected void gererEvenements() {
-
 
74
	}
-
 
75
 
47
 
76
	public void chargerEtAfficherObservations(int debut, int fin) {
-
 
77
		vue.startChargement();
48
	public void chercherObservations() {
78
		vue.nettoyer();
-
 
79
		ObservationsCallback callback = new ObservationsCallback() {
-
 
80
 
-
 
81
			@Override
-
 
82
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
-
 
83
				afficherObservations(observationsRecues);
-
 
84
			}
-
 
85
		};
-
 
86
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
-
 
87
	}
-
 
88
 
49
		vue.getZoneResultats().clear();
89
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
-
 
90
		vue.nettoyer();
-
 
91
		for (Observation observation : observationServiceResultat.getObservations()) {
-
 
92
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
-
 
93
			presenteur.go(vue.getZoneObservations());
-
 
94
		}
-
 
95
		vue.stopChargement();
50
		new ResultatsRechercheObservationsPresenteur(new ObservationServiceConcret(), new ResultatsRechercheObservationsVue()).go(vue.getZoneResultats());
96
	}
-
 
97
 
-
 
98
	private void creerWidgetPagination(int nbObservations) {
-
 
99
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
-
 
100
 
-
 
101
			@Override
-
 
102
			public void changerPage(int debut, int fin) {
-
 
103
				chargerEtAfficherObservations(debut, fin);
-
 
104
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
-
 
105
			}
-
 
106
 
51
	}
107
			@Override
-
 
108
			public void actualiserPasCache(int pas) {
-
 
109
				CacheClient.getInstance().setPasPagination(pas);
-
 
110
			}
-
 
111
 
-
 
112
		};
-
 
113
 
-
 
114
		PaginationPresenteur paginationPresenteurBas = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination()) {
-
 
115
 
-
 
116
			@Override
-
 
117
			public void changerPage(int debut, int fin) {
-
 
118
				chargerEtAfficherObservations(debut, fin);
-
 
119
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
-
 
120
			}
-
 
121
 
-
 
122
			@Override
-
 
123
			public void actualiserPasCache(int pas) {
-
 
124
				CacheClient.getInstance().setPasPagination(pas);
-
 
125
			}
-
 
126
 
-
 
127
		};
-
 
128
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
52
 
129
		paginationPresenteurBas.go(vue.getZonePaginationBas());
53
	protected void gererEvenements() {
130
	}
54
	}
131
 
55
 
132
}
56
}