Subversion Repositories eFlore/Applications.del

Rev

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

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