Subversion Repositories eFlore/Applications.del

Rev

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

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