Subversion Repositories eFlore/Applications.del

Rev

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

Rev 511 Rev 564
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
 
39
 
40
		public HasClickHandlers getTriParDateAscendant();
40
		public HasClickHandlers getTriParDateAscendant();
41
 
41
 
42
		public HasClickHandlers getTriParDateDescendant();
42
		public HasClickHandlers getTriParDateDescendant();
-
 
43
 
-
 
44
		public void afficherElementsAucunResultatTrouve();
-
 
45
 
-
 
46
		public void afficherElementsResultatsTrouves();
43
	}
47
	}
44
 
48
 
45
	private Vue vue;
49
	private Vue vue;
46
 
50
 
47
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
51
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
48
		this.vue = vue;
52
		this.vue = vue;
49
		this.serviceObs = serviceObs;
53
		this.serviceObs = serviceObs;
50
	}
54
	}
51
 
55
 
52
	public void go(HasWidgets composite) {
56
	public void go(HasWidgets composite) {
53
		composite.add(vue.asWidget());
57
		composite.add(vue.asWidget());
54
		lancerRechercheEtCreerWidgetPagination();
58
		lancerRechercheEtCreerWidgetPagination();
55
		gererEvenements();
59
		gererEvenements();
56
	}
60
	}
57
 
61
 
58
	protected void gererEvenements() {
62
	protected void gererEvenements() {
59
 
63
 
60
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
64
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
61
 
65
 
62
			@Override
66
			@Override
63
			public void onClick(ClickEvent arg0) {
67
			public void onClick(ClickEvent arg0) {
64
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
68
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
65
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_ASCENDANT);
69
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_ASCENDANT);
66
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
70
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
67
				chercherEtAfficherObservationsPageEnCours();
71
				chercherEtAfficherObservationsPageEnCours();
68
			}
72
			}
69
		});
73
		});
70
 
74
 
71
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
75
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
72
 
76
 
73
			@Override
77
			@Override
74
			public void onClick(ClickEvent arg0) {
78
			public void onClick(ClickEvent arg0) {
75
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
79
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
76
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_DESCENDANT);
80
				informationsRechercheObservations.setTriParDate(ModeTri.TRI_DESCENDANT);
77
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
81
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
78
				chercherEtAfficherObservationsPageEnCours();
82
				chercherEtAfficherObservationsPageEnCours();
79
			}
83
			}
80
		});
84
		});
81
	}
85
	}
82
 
86
 
83
	public void chargerEtAfficherObservations(int debut, int fin) {
87
	public void chargerEtAfficherObservations(int debut, int fin) {
84
		vue.startChargement();
88
		vue.startChargement();
85
		vue.nettoyer();
89
		vue.nettoyer();
86
		ObservationsCallback callback = new ObservationsCallback() {
90
		ObservationsCallback callback = new ObservationsCallback() {
87
 
91
 
88
			@Override
92
			@Override
89
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
93
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
90
				afficherObservations(observationsRecues);
94
				afficherObservations(observationsRecues);
91
			}
95
			}
92
		};
96
		};
93
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
97
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
94
	}
98
	}
95
 
99
 
96
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
100
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
97
		vue.nettoyer();
101
		vue.nettoyer();
-
 
102
 
-
 
103
		if (observationServiceResultat.getObservations() == null || observationServiceResultat.getObservations().size() == 0) {
-
 
104
			vue.afficherElementsAucunResultatTrouve();
-
 
105
		}
-
 
106
 
-
 
107
		else {
-
 
108
			vue.afficherElementsResultatsTrouves();
98
		for (Observation observation : observationServiceResultat.getObservations()) {
109
			for (Observation observation : observationServiceResultat.getObservations()) {
99
			ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
110
				ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
100
			presenteur.go(vue.getZoneObservations());
111
				presenteur.go(vue.getZoneObservations());
-
 
112
			}
101
		}
113
		}
102
		vue.stopChargement();
114
		vue.stopChargement();
103
	}
115
	}
104
 
116
 
105
	private void creerWidgetPagination(int nbObservations) {
117
	private void creerWidgetPagination(int nbObservations) {
106
		vue.getZonePaginationHaut().clear();
118
		vue.getZonePaginationHaut().clear();
107
		vue.getZonePaginationBas().clear();
119
		vue.getZonePaginationBas().clear();
108
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
120
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
109
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
121
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
110
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
122
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
111
		paginationPresenteurBas.setGroupePagination("pagination_observations");
123
		paginationPresenteurBas.setGroupePagination("pagination_observations");
112
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
124
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
113
		paginationPresenteurBas.go(vue.getZonePaginationBas());
125
		paginationPresenteurBas.go(vue.getZonePaginationBas());
114
	}
126
	}
115
 
127
 
116
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
128
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
117
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) {
129
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) {
118
 
130
 
119
			@Override
131
			@Override
120
			public void chargerElements(int debut, int fin) {
132
			public void chargerElements(int debut, int fin) {
121
				chargerEtAfficherObservations(debut, fin);
133
				chargerEtAfficherObservations(debut, fin);
122
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
134
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
123
			}
135
			}
124
 
136
 
125
			@Override
137
			@Override
126
			public void actualiserPasCache(int pas) {
138
			public void actualiserPasCache(int pas) {
127
				CacheClient.getInstance().setPasPagination(pas);
139
				CacheClient.getInstance().setPasPagination(pas);
128
			}
140
			}
129
 
141
 
130
		};
142
		};
131
		return paginationPresenteurHaut;
143
		return paginationPresenteurHaut;
132
	}
144
	}
133
 
145
 
134
	public void lancerRechercheEtCreerWidgetPagination() {
146
	public void lancerRechercheEtCreerWidgetPagination() {
135
		ObservationsCallback callback = new ObservationsCallback() {
147
		ObservationsCallback callback = new ObservationsCallback() {
136
			@Override
148
			@Override
137
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
149
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
138
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
150
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
139
				afficherObservations(observationsRecues);
151
				afficherObservations(observationsRecues);
140
			}
152
			}
141
		};
153
		};
142
 
154
 
143
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
155
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
144
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
156
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
145
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
157
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
146
	}
158
	}
147
 
159
 
148
	public void chercherEtAfficherObservationsPageEnCours() {
160
	public void chercherEtAfficherObservationsPageEnCours() {
149
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
161
		int debut = (CacheClient.getInstance().getPageCouranteRechercheObservations() - 1) * CacheClient.getInstance().getPasPagination();
150
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
162
		int fin = (CacheClient.getInstance().getPageCouranteRechercheObservations()) * CacheClient.getInstance().getPasPagination();
151
		chargerEtAfficherObservations(debut, fin);
163
		chargerEtAfficherObservations(debut, fin);
152
	}
164
	}
153
 
165
 
154
}
166
}