Subversion Repositories eFlore/Applications.del

Rev

Rev 677 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 677 Rev 903
Line 20... Line 20...
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;
Line 22... Line 22...
22
 
22
 
Line -... Line 23...
-
 
23
public class ResultatsRechercheObservationsPresenteur extends Presenteur {
23
public class ResultatsRechercheObservationsPresenteur extends Presenteur {
24
 
24
 
25
	/**
25
	private ObservationService serviceObs;
26
	 * Interface vue : création des composants graphiques
26
 
27
	 * */
27
	public abstract interface Vue extends IsWidget {
28
	public abstract interface Vue extends IsWidget {
28
		public HasWidgets getZoneObservations();
29
		public HasWidgets getZoneObservations();
29
		public HasWidgets getZonePaginationHaut();
30
		public HasWidgets getZonePaginationHaut();
Line 34... Line 35...
34
		public HasClickHandlers getTriParDateAscendant();
35
		public HasClickHandlers getTriParDateAscendant();
35
		public HasClickHandlers getTriParDateDescendant();
36
		public HasClickHandlers getTriParDateDescendant();
36
		public void afficherElementsAucunResultatTrouve();
37
		public void afficherElementsAucunResultatTrouve();
37
		public void afficherElementsResultatsTrouves();	
38
		public void afficherElementsResultatsTrouves();	
38
		public HasClickHandlers getLabelDate();
39
		public HasClickHandlers getLabelDate();
39
		public void masquerDateAscendant();
-
 
40
		public void masquerDateDescendant();
-
 
41
		public void afficherDateAscendant();
-
 
42
		public void afficherDateDescendant();
40
		public void setModeTri(ModeTri mode);
43
	}
41
	}
Line 44... Line 42...
44
 
42
 
-
 
43
	private Vue vue;
45
	private Vue vue;
44
	private ObservationService serviceObs;
-
 
45
	private ModeTri triCourantDate = ModeTri.TRI_DESCENDANT;
Line -... Line 46...
-
 
46
	private CacheClient cache = CacheClient.getInstance();
-
 
47
	
-
 
48
	/**
-
 
49
	 * Constructeur de la classe 
-
 
50
	 * @param ObservationService serviceObs le service pour récupérer les observations
46
	private ModeTri triCourantDate = ModeTri.TRI_DESCENDANT;
51
	 * @Vue Vue l'objet implémentant l'interface 
47
	
52
	 * */
-
 
53
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
48
	public ResultatsRechercheObservationsPresenteur(ObservationService serviceObs, Vue vue) {
54
		this.vue = vue;
49
		this.vue = vue;
-
 
50
		this.serviceObs = serviceObs;
-
 
51
		vue.masquerDateAscendant();
55
		vue.setModeTri(triCourantDate);
Line -... Line 56...
-
 
56
		this.serviceObs = serviceObs;
-
 
57
	}
-
 
58
 
-
 
59
	/**
52
		//vue.masquerDateDescendant();
60
	 * Lancer l'affichage de la recherche dans le composant passé en paramètre
53
	}
61
	 * @param HasWidgets composite le conteneur de widgets dans lequel ajouter la vue
54
 
62
	 * */
55
	public void go(HasWidgets composite) {
63
	public void go(HasWidgets composite) {
56
		composite.add(vue.asWidget());
64
		composite.add(vue.asWidget());
Line -... Line 65...
-
 
65
		lancerRechercheEtCreerWidgetPagination();
-
 
66
		gererEvenements();
57
		lancerRechercheEtCreerWidgetPagination();
67
	}
58
		gererEvenements();
68
 
-
 
69
	/**
Line 59... Line -...
59
	}
-
 
60
 
-
 
61
	protected void gererEvenements() {
-
 
62
 
-
 
63
		
-
 
64
		ClickHandler surClicDate = new ClickHandler() {
-
 
65
			@Override
-
 
66
			public void onClick(ClickEvent event) {
-
 
67
				
-
 
68
				if (triCourantDate == ModeTri.TRI_ASCENDANT) {
-
 
69
					triCourantDate = ModeTri.TRI_DESCENDANT;
-
 
70
					vue.masquerDateAscendant();
-
 
71
					vue.afficherDateDescendant();
-
 
72
				} else {
-
 
73
					triCourantDate = ModeTri.TRI_ASCENDANT;
70
	 * Initier un callback pour créer le widget de pagination et afficher les observations recues
74
					vue.masquerDateDescendant();
71
	 * et lancer la recherche avec le service
75
					vue.afficherDateAscendant();
-
 
76
				}
-
 
77
				
-
 
78
				InformationsRecherche informationsRechercheObservations = CacheClient.getInstance().getInformationsRechercheObservation();
-
 
Line 79... Line -...
79
				informationsRechercheObservations.setTriParDate(triCourantDate);
-
 
80
				informationsRechercheObservations.setTriParNbVotes(ModeTri.PAS_DE_TRI);
-
 
81
				chercherEtAfficherObservationsPageEnCours();
-
 
82
			}
-
 
83
		};
-
 
84
		
-
 
85
		vue.getLabelDate().addClickHandler(surClicDate);
-
 
86
		vue.getTriParDateAscendant().addClickHandler(surClicDate);
-
 
87
		vue.getTriParDateDescendant().addClickHandler(surClicDate);
72
	 * */
88
	}
-
 
89
 
-
 
90
	public void chargerEtAfficherObservations(int debut, int fin) {
73
	public void lancerRechercheEtCreerWidgetPagination() {
-
 
74
		
91
		vue.startChargement();
75
		int debut = (cache.getPageCouranteRechercheObservations() - 1) * cache.getPasPagination();
92
		vue.nettoyer();
76
		int fin = cache.getPageCouranteRechercheObservations() * cache.getPasPagination();
93
		ObservationsCallback callback = new ObservationsCallback() {
77
		
94
 
-
 
95
			@Override
-
 
96
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
78
		ObservationsCallback callback = new ObservationsCallback() {
97
				afficherObservations(observationsRecues);
79
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
98
			}
-
 
99
		};
-
 
100
		serviceObs.getObservations(CacheClient.getInstance().getInformationsRechercheObservation(), debut, fin, callback);
-
 
101
	}
-
 
102
 
-
 
103
	private void afficherObservations(ObservationServiceResultat observationServiceResultat) {
-
 
104
		vue.nettoyer();
-
 
105
 
-
 
106
		if (observationServiceResultat.getObservations() == null || observationServiceResultat.getObservations().size() == 0) {
-
 
107
			vue.afficherElementsAucunResultatTrouve();
-
 
108
		}
-
 
109
 
-
 
110
		else {
-
 
111
			vue.afficherElementsResultatsTrouves();
-
 
112
			for (Observation observation : observationServiceResultat.getObservations()) {
80
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
113
				ObservationPresenteur presenteur = new ObservationPresenteur(new ObservationVue(), observation);
81
				afficherObservations(observationsRecues);
-
 
82
			}
-
 
83
		};
-
 
84
		
-
 
85
		serviceObs.getObservations(cache.getInformationsRechercheObservation(), debut, fin, callback);
114
				presenteur.go(vue.getZoneObservations());
86
	}
115
			}
87
	
116
		}
-
 
117
		vue.stopChargement();
88
	/**
118
	}
-
 
119
 
89
	 * Créer les widgets de pagination en fonction du nombre d'observation
120
	private void creerWidgetPagination(int nbObservations) {
-
 
121
		vue.getZonePaginationHaut().clear();
90
	 * @param int nbObservations le nombre d'observations à afficher
-
 
91
	 * */
-
 
92
	private void creerWidgetPagination(int nbObservations) {
-
 
93
		vue.getZonePaginationHaut().clear();
-
 
94
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
122
		vue.getZonePaginationBas().clear();
95
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
123
		PaginationPresenteur paginationPresenteurHaut = creerPresenteurPagination(nbObservations);
96
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
124
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
97
		
-
 
98
		vue.getZonePaginationBas().clear();
-
 
99
		PaginationPresenteur paginationPresenteurBas = creerPresenteurPagination(nbObservations);
-
 
100
		paginationPresenteurBas.setGroupePagination("pagination_observations");
-
 
101
		paginationPresenteurBas.go(vue.getZonePaginationBas());
125
		paginationPresenteurHaut.setGroupePagination("pagination_observations");
102
	}
126
		paginationPresenteurBas.setGroupePagination("pagination_observations");
103
	
Line 127... Line 104...
127
		paginationPresenteurHaut.go(vue.getZonePaginationHaut());
104
	/**
128
		paginationPresenteurBas.go(vue.getZonePaginationBas());
105
	 * Créer un présenteur du widget pagination
129
	}
106
	 * @param int nbObservations le nombre total d'observation à afficher
130
 
107
	 * */
131
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
108
	private PaginationPresenteur creerPresenteurPagination(int nbObservations) {
Line 132... Line 109...
132
		PaginationPresenteur paginationPresenteurHaut = new PaginationPresenteur(new PaginationVue(), nbObservations, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheObservations()) {
109
		PaginationPresenteur presenteur = new PaginationPresenteur(new PaginationVue(), nbObservations, cache.getPasPagination(), cache.getPageCouranteRechercheObservations()) {
133
 
110
 
134
			@Override
111
			@Override
135
			public void chargerElements(int debut, int fin) {
112
			public void chargerElements(int debut, int fin) {
Line 136... Line 113...
136
				chargerEtAfficherObservations(debut, fin);
113
				chargerEtAfficherObservations(debut, fin);
137
				CacheClient.getInstance().setPageCouranteRechercheObservations(getPageCourante());
114
				cache.setPageCouranteRechercheObservations(getPageCourante());
-
 
115
			}
-
 
116
 
-
 
117
			@Override
-
 
118
			public void actualiserPasCache(int pas) {
-
 
119
				cache.setPasPagination(pas);
-
 
120
			}
-
 
121
 
-
 
122
		};
-
 
123
		return presenteur;
-
 
124
	}
-
 
125
	
-
 
126
	/**
-
 
127
	 * Gestion des évènements de la vue recherche Observation
-
 
128
	 * */
-
 
129
	protected void gererEvenements() {
-
 
130
		
-
 
131
		ClickHandler surClicDate = new ClickHandler() {
-
 
132
			/**
-
 
133
			 * Gestion du clic sur l'option de tri par date d'observation
-
 
134
			 * Masque les éléments de tri qui sont en cours et affiche les autres
-
 
135
			 * */
-
 
136
			public void onClick(ClickEvent event) {
-
 
137
				toggleModeTri();
-
 
138
				
138
			}
139
				InformationsRecherche informationsRechercheObservations = cache.getInformationsRechercheObservation();
Line -... Line 140...
-
 
140
				informationsRechercheObservations.setTriParDate(triCourantDate);
-
 
141
				chercherEtAfficherObservationsPageEnCours();
-
 
142
			}
-
 
143
		};
-
 
144
		
-
 
145
		vue.getLabelDate().addClickHandler(surClicDate);
-
 
146
		vue.getTriParDateAscendant().addClickHandler(surClicDate);
-
 
147
		vue.getTriParDateDescendant().addClickHandler(surClicDate);
-
 
148
	}
-
 
149
 
-
 
150
	/**
-
 
151
	 * Inverser le mode de tri en fonction du précédent
-
 
152
	 * */
-
 
153
	public void toggleModeTri() {
-
 
154
		if (triCourantDate == ModeTri.TRI_ASCENDANT) {
-
 
155
			triCourantDate = ModeTri.TRI_DESCENDANT;
139
 
156
		} else {
-
 
157
			triCourantDate = ModeTri.TRI_ASCENDANT;
-
 
158
		}
-
 
159
		
-
 
160
		vue.setModeTri(triCourantDate);
-
 
161
	}
-
 
162
	
-
 
163
	/**
-
 
164
	 * Initialiser les variable de début et fin et lancer le chargement des observations 
-
 
165
	 * */
-
 
166
	public void chercherEtAfficherObservationsPageEnCours() {
-
 
167
		int debut = (cache.getPageCouranteRechercheObservations() - 1) * cache.getPasPagination();
-
 
168
		int fin = (cache.getPageCouranteRechercheObservations()) * cache.getPasPagination();
-
 
169
		chargerEtAfficherObservations(debut, fin);
-
 
170
	}
140
			@Override
171
	
-
 
172
	/**
141
			public void actualiserPasCache(int pas) {
173
	 * Lancer le service pour charger les observations entre debut et fin et les afficher 
142
				CacheClient.getInstance().setPasPagination(pas);
174
	 * @param int debut l'entier de départ de la requete
143
			}
-
 
144
 
175
	 * @param int fin l'entier de limite de la requete
145
		};
176
	 * */
146
		return paginationPresenteurHaut;
177
	public void chargerEtAfficherObservations(int debut, int fin) {
147
	}
-
 
148
 
-
 
149
	public void lancerRechercheEtCreerWidgetPagination() {
-
 
150
		ObservationsCallback callback = new ObservationsCallback() {
178
		vue.startChargement();
151
			@Override
179
		vue.nettoyer();
Line -... Line 180...
-
 
180
		
152
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
181
		ObservationsCallback surReceptionObservation = new ObservationsCallback() {
153
				creerWidgetPagination(observationsRecues.getNbTotalObservationsPourLaRecherche());
182
 
-
 
183
			@Override
154
				afficherObservations(observationsRecues);
184
			public void surObservationsRecues(ObservationServiceResultat observationsRecues) {
155
			}
185
				afficherObservations(observationsRecues);
156
		};
-
 
Line -... Line 186...
-
 
186
			}
-
 
187
		};
-
 
188
		serviceObs.getObservations(cache.getInformationsRechercheObservation(), debut, fin, surReceptionObservation);
-
 
189
	}
-
 
190
 
-
 
191
	/**
-
 
192
	 * Parcrourir les résultats de la recherche pour initier l'affichage de chaque observation
-
 
193
	 * @param ObservationServiceResultat resultats les résultats issus de la requête
-
 
194
	 * */
-
 
195
	private void afficherObservations(ObservationServiceResultat resultats) {
-
 
196
		vue.nettoyer();
157
 
197