Subversion Repositories eFlore/Applications.del

Rev

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

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