Subversion Repositories eFlore/Applications.del

Rev

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

Rev 491 Rev 511
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.InformationsRecherche;
7
import org.tela_botanica.del.client.modeles.InformationsRecherche;
8
import org.tela_botanica.del.client.modeles.ModeTri;
8
import org.tela_botanica.del.client.modeles.ModeTri;
9
import org.tela_botanica.del.client.modeles.Observation;
9
import org.tela_botanica.del.client.modeles.Observation;
10
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
10
import org.tela_botanica.del.client.modeles.ObservationServiceResultat;
11
import org.tela_botanica.del.client.services.rest.ObservationService;
11
import org.tela_botanica.del.client.services.rest.ObservationService;
12
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
12
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
13
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations.ObservationPresenteur;
13
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations.ObservationPresenteur;
14
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations.ObservationVue;
14
import org.tela_botanica.del.client.vues.rechercheobservations.resultats.observations.ObservationVue;
15
 
15
 
16
import com.google.gwt.event.dom.client.ClickEvent;
16
import com.google.gwt.event.dom.client.ClickEvent;
17
import com.google.gwt.event.dom.client.ClickHandler;
17
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
19
import com.google.gwt.user.client.ui.HasWidgets;
19
import com.google.gwt.user.client.ui.HasWidgets;
20
import com.google.gwt.user.client.ui.IsWidget;
20
import com.google.gwt.user.client.ui.IsWidget;
21
 
21
 
22
public class ResultatsRechercheObservationsPresenteur extends Presenteur {
22
public class ResultatsRechercheObservationsPresenteur extends Presenteur {
23
 
23
 
24
	private ObservationService serviceObs;
24
	private ObservationService serviceObs;
25
 
25
 
26
	public abstract interface Vue extends IsWidget {
26
	public abstract interface Vue extends IsWidget {
27
 
27
 
28
		public HasWidgets getZoneObservations();
28
		public HasWidgets getZoneObservations();
29
 
29
 
30
		public HasWidgets getZonePaginationHaut();
30
		public HasWidgets getZonePaginationHaut();
31
 
31
 
32
		public HasWidgets getZonePaginationBas();
32
		public HasWidgets getZonePaginationBas();
33
 
33
 
34
		public void startChargement();
34
		public void startChargement();
35
 
35
 
36
		public void stopChargement();
36
		public void stopChargement();
37
 
37
 
38
		public void nettoyer();
38
		public void nettoyer();
39
 
-
 
40
		public HasClickHandlers getTriParNbVotesAscendant();
-
 
41
 
-
 
42
		public HasClickHandlers getTriParNbVotesDescendant();
-
 
43
 
39
 
44
		public HasClickHandlers getTriParDateAscendant();
40
		public HasClickHandlers getTriParDateAscendant();
45
 
41
 
46
		public HasClickHandlers getTriParDateDescendant();
42
		public HasClickHandlers getTriParDateDescendant();
47
	}
43
	}
48
 
44
 
49
	private Vue vue;
45
	private Vue vue;
50
 
46
 
51
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
47
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
52
		this.vue = vue;
48
		this.vue = vue;
53
		this.serviceObs = serviceObs;
49
		this.serviceObs = serviceObs;
54
	}
50
	}
55
 
51
 
56
	public void go(HasWidgets composite) {
52
	public void go(HasWidgets composite) {
57
		composite.add(vue.asWidget());
53
		composite.add(vue.asWidget());
58
		lancerRechercheEtCreerWidgetPagination();
54
		lancerRechercheEtCreerWidgetPagination();
59
		gererEvenements();
55
		gererEvenements();
60
	}
56
	}
61
 
57
 
62
	protected void gererEvenements() {
58
	protected void gererEvenements() {
63
 
-
 
64
		vue.getTriParNbVotesAscendant().addClickHandler(new ClickHandler() {
-
 
65
 
-
 
66
			@Override
-
 
67
			public void onClick(ClickEvent arg0) {
-
 
68
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
-
 
69
				informationsRechercheObservations.setTriParNbVotes(ModeTri.TRI_ASCENDANT);
-
 
70
				informationsRechercheObservations.setTriParDate(ModeTri.PAS_DE_TRI);
-
 
71
				chercherEtAfficherObservationsPageEnCours();
-
 
72
			}
-
 
73
		});
-
 
74
 
-
 
75
		vue.getTriParNbVotesDescendant().addClickHandler(new ClickHandler() {
-
 
76
 
-
 
77
			@Override
-
 
78
			public void onClick(ClickEvent arg0) {
-
 
79
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
-
 
80
				informationsRechercheObservations.setTriParNbVotes(ModeTri.TRI_DESCENDANT);
-
 
81
				informationsRechercheObservations.setTriParDate(ModeTri.PAS_DE_TRI);
-
 
82
				chercherEtAfficherObservationsPageEnCours();
-
 
83
			}
-
 
84
		});
-
 
85
 
59
 
86
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
60
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
87
 
61
 
88
			@Override
62
			@Override
89
			public void onClick(ClickEvent arg0) {
63
			public void onClick(ClickEvent arg0) {
90
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
64
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
91
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_ASCENDANT);
65
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_ASCENDANT);
92
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
66
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
93
				chercherEtAfficherObservationsPageEnCours();
67
				chercherEtAfficherObservationsPageEnCours();
94
			}
68
			}
95
		});
69
		});
96
 
70
 
97
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
71
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
98
 
72
 
99
			@Override
73
			@Override
100
			public void onClick(ClickEvent arg0) {
74
			public void onClick(ClickEvent arg0) {
101
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
75
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
102
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_DESCENDANT);
76
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_DESCENDANT);
103
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
77
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
104
				chercherEtAfficherObservationsPageEnCours();
78
				chercherEtAfficherObservationsPageEnCours();
105
			}
79
			}
106
		});
80
		});
107
	}
81
	}
108
 
82
 
109
	public void chargerEtAfficherObservations(int debut, int fin) {
83
	public void chargerEtAfficherObservations(int debut, int fin) {
110
		vue.startChargement();
84
		vue.startChargement();
111
		vue.nettoyer();
85
		vue.nettoyer();
112
		ObservationsCallback callback = new ObservationsCallback() {
86
		ObservationsCallback callback = new ObservationsCallback() {
113
 
87
 
114
			@Override
88
			@Override
115
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
89
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
116
				afficherObservations(observationsRecues);
90
				afficherObservations(observationsRecues);
117
			}
91
			}
118
		};
92
		};
119
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
93
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
120
	}
94
	}
121
 
95
 
122
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
96
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
123
		vue.nettoyer();
97
		vue.nettoyer();
124
		for (Observation observation : observationServiceResultat.getObservations()) {
98
		for (Observation observation : observationServiceResultat.getObservations()) {
125
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
99
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
126
			presenteur.go(vue.getZoneObservations());
100
			presenteur.go(vue.getZoneObservations());
127
		}
101
		}
128
		vue.stopChargement();
102
		vue.stopChargement();
129
	}
103
	}
130
 
104
 
131
	private void creerWidgetPagination(int nbObservations) {
105
	private void creerWidgetPagination(int nbObservations) {
132
		vue.getZonePaginationHaut().clear();
106
		vue.getZonePaginationHaut().clear();
133
		vue.getZonePaginationBas().clear();
107
		vue.getZonePaginationBas().clear();
134
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
108
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
135
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
109
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
136
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
110
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
137
		paginationPresenteurBas.setGroupePagination("pagination_observations");
111
		paginationPresenteurBas.setGroupePagination("pagination_observations");
138
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
112
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
139
		paginationPresenteurBas.go(vue.getZonePaginationBas());
113
		paginationPresenteurBas.go(vue.getZonePaginationBas());
140
	}
114
	}
141
 
115
 
142
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
116
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
143
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) {
117
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) {
144
 
118
 
145
			@Override
119
			@Override
146
			public void chargerElements(int debut, int fin) {
120
			public void chargerElements(int debut, int fin) {
147
				chargerEtAfficherObservations(debut, fin);
121
				chargerEtAfficherObservations(debut, fin);
148
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
122
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
149
			}
123
			}
150
 
124
 
151
			@Override
125
			@Override
152
			public void actualiserPasCache(int pas) {
126
			public void actualiserPasCache(int pas) {
153
				CacheClient.getInstance().setPasPagination(pas);
127
				CacheClient.getInstance().setPasPagination(pas);
154
			}
128
			}
155
 
129
 
156
		};
130
		};
157
		return paginationPresenteurHaut;
131
		return paginationPresenteurHaut;
158
	}
132
	}
159
 
133
 
160
	public void lancerRechercheEtCreerWidgetPagination() {
134
	public void lancerRechercheEtCreerWidgetPagination() {
161
		ObservationsCallback callback = new ObservationsCallback() {
135
		ObservationsCallback callback = new ObservationsCallback() {
162
			@Override
136
			@Override
163
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
137
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
164
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
138
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
165
				afficherObservations(observationsRecues);
139
				afficherObservations(observationsRecues);
166
			}
140
			}
167
		};
141
		};
168
 
142
 
169
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
143
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
170
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
144
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
171
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
145
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
172
	}
146
	}
173
 
147
 
174
	public void chercherEtAfficherObservationsPageEnCours() {
148
	public void chercherEtAfficherObservationsPageEnCours() {
175
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
149
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
176
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
150
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
177
		chargerEtAfficherObservations(debut, fin);
151
		chargerEtAfficherObservations(debut, fin);
178
	}
152
	}
179
 
153
 
180
}
154
}