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 509
1
package org.tela_botanica.del.client.vues.rechercheimages.resultats;
1
package org.tela_botanica.del.client.vues.rechercheimages.resultats;
2
 
2
 
3
import java.util.ArrayList;
3
import java.util.ArrayList;
4
import java.util.Iterator;
4
import java.util.Iterator;
5
import java.util.List;
5
import java.util.List;
6
 
6
 
7
import org.tela_botanica.del.client.cache.CacheClient;
7
import org.tela_botanica.del.client.cache.CacheClient;
8
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
8
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
9
import org.tela_botanica.del.client.composants.pagination.PaginationVue;
9
import org.tela_botanica.del.client.composants.pagination.PaginationVue;
10
import org.tela_botanica.del.client.modeles.Image;
10
import org.tela_botanica.del.client.modeles.Image;
11
import org.tela_botanica.del.client.modeles.ImageServiceResultat;
11
import org.tela_botanica.del.client.modeles.ImageServiceResultat;
12
import org.tela_botanica.del.client.modeles.InformationsRecherche;
12
import org.tela_botanica.del.client.modeles.InformationsRecherche;
13
import org.tela_botanica.del.client.modeles.ModeTri;
13
import org.tela_botanica.del.client.modeles.ModeTri;
-
 
14
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
-
 
15
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
-
 
16
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
14
import org.tela_botanica.del.client.services.rest.ImageService;
17
import org.tela_botanica.del.client.services.rest.ImageService;
15
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
18
import org.tela_botanica.del.client.services.rest.async.ImagesParTaxonCallback;
16
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur;
19
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur;
17
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue;
20
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImageVue;
18
 
21
 
19
import com.google.gwt.event.dom.client.ClickEvent;
22
import com.google.gwt.event.dom.client.ClickEvent;
20
import com.google.gwt.event.dom.client.ClickHandler;
23
import com.google.gwt.event.dom.client.ClickHandler;
21
import com.google.gwt.event.dom.client.HasClickHandlers;
24
import com.google.gwt.event.dom.client.HasClickHandlers;
22
import com.google.gwt.user.client.ui.HasWidgets;
25
import com.google.gwt.user.client.ui.HasWidgets;
23
import com.google.gwt.user.client.ui.IsWidget;
26
import com.google.gwt.user.client.ui.IsWidget;
24
import com.google.gwt.user.client.ui.Panel;
27
import com.google.gwt.user.client.ui.Panel;
25
 
28
 
26
public class ResultatRechercheImagePresenteur {
29
public class ResultatRechercheImagePresenteur {
27
 
30
 
28
	public abstract interface Vue extends IsWidget {
31
	public abstract interface Vue extends IsWidget {
29
		public void startChargement();
32
		public void startChargement();
30
 
33
 
31
		public void nettoyer();
34
		public void nettoyer();
32
 
35
 
33
		public void afficherPanneauxObservation(List<Panel> panneauxImagesAffichees);
36
		public void afficherPanneauxObservation(List<Panel> panneauxImagesAffichees);
34
 
37
 
35
		public void creerPanneauxObservations(int size);
38
		public void creerPanneauxObservations(int size);
36
 
39
 
37
		public void stopChargement();
40
		public void stopChargement();
38
 
41
 
39
		public List<Panel> getPanneauxImages();
42
		public List<Panel> getPanneauxImages();
40
 
43
 
41
		public HasWidgets getPanneauPagination();
44
		public HasWidgets getPanneauPagination();
42
 
45
 
43
		public HasWidgets getPanneauPaginationHaut();
46
		public HasWidgets getPanneauPaginationHaut();
44
 
47
 
45
		public HasClickHandlers getTriParNbVotesAscendant();
48
		public HasClickHandlers getTriParNbVotesAscendant();
46
 
49
 
47
		public HasClickHandlers getTriParNbVotesDescendant();
50
		public HasClickHandlers getTriParNbVotesDescendant();
48
 
51
 
49
		public HasClickHandlers getTriParDateAscendant();
52
		public HasClickHandlers getTriParDateAscendant();
50
 
53
 
51
		public HasClickHandlers getTriParDateDescendant();
54
		public HasClickHandlers getTriParDateDescendant();
52
	}
55
	}
53
 
56
 
54
	// new ResultatRechercheImageVue();
57
	// new ResultatRechercheImageVue();
55
	private Vue vue;
58
	private Vue vue;
56
	private List<ImagePresenteur> ImagePresenteurs = new ArrayList<ImagePresenteur>();
59
	private List<ImagePresenteur> ImagePresenteurs = new ArrayList<ImagePresenteur>();
57
	private ImageService imageService;
60
	private ImageService imageService;
58
 
61
 
59
	public ResultatRechercheImagePresenteur(ImageService imageService, Vue vue) {
62
	public ResultatRechercheImagePresenteur(ImageService imageService, Vue vue) {
60
		this.vue = vue;
63
		this.vue = vue;
61
		this.imageService = imageService;
64
		this.imageService = imageService;
62
	}
65
	}
63
 
66
 
64
	public void go(HasWidgets composite) {
67
	public void go(HasWidgets composite) {
65
		composite.add(vue.asWidget());
68
		composite.add(vue.asWidget());
66
		vue.startChargement();
69
		vue.startChargement();
67
		rechercherImagesEtCreerWidgetPagination();
70
		rechercherImagesEtCreerWidgetPagination();
68
		gererEvenements();
71
		gererEvenements();
69
	}
72
	}
70
 
73
 
71
	public void gererEvenements() {
74
	public void gererEvenements() {
72
 
75
 
73
		vue.getTriParNbVotesAscendant().addClickHandler(new ClickHandler() {
76
		vue.getTriParNbVotesAscendant().addClickHandler(new ClickHandler() {
74
 
77
 
75
			@Override
78
			@Override
76
			public void onClick(ClickEvent arg0) {
79
			public void onClick(ClickEvent arg0) {
77
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
80
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
-
 
81
				int IdProtocole = CacheClient.getInstance().getProtocoleCourant().getId();
78
				informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_ASCENDANT);
82
				informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_ASCENDANT);
-
 
83
				informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole+"");
79
				informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
84
				informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
80
				chargerEtAfficherImagesPageEnCours();
85
				chargerEtAfficherImagesPageEnCours();
81
			}
86
			}
82
		});
87
		});
83
 
88
 
84
		vue.getTriParNbVotesDescendant().addClickHandler(new ClickHandler() {
89
		vue.getTriParNbVotesDescendant().addClickHandler(new ClickHandler() {
85
 
90
 
86
			@Override
91
			@Override
87
			public void onClick(ClickEvent arg0) {
92
			public void onClick(ClickEvent arg0) {
88
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
93
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
-
 
94
				int IdProtocole = CacheClient.getInstance().getProtocoleCourant().getId();
89
				informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_DESCENDANT);
95
				informationsRechercheImages.setTriParNbVotes(ModeTri.TRI_DESCENDANT);
-
 
96
				informationsRechercheImages.setIdProtocoleSelectionne(IdProtocole+"");
90
				informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
97
				informationsRechercheImages.setTriParDate(ModeTri.PAS_DE_TRI);
91
				chargerEtAfficherImagesPageEnCours();
98
				chargerEtAfficherImagesPageEnCours();
92
			}
99
			}
93
		});
100
		});
94
 
101
 
95
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
102
		vue.getTriParDateAscendant().addClickHandler(new ClickHandler() {
96
 
103
 
97
			@Override
104
			@Override
98
			public void onClick(ClickEvent arg0) {
105
			public void onClick(ClickEvent arg0) {
99
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
106
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
100
				informationsRechercheImages.setTriParDate(ModeTri.TRI_ASCENDANT);
107
				informationsRechercheImages.setTriParDate(ModeTri.TRI_ASCENDANT);
101
				informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
108
				informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
102
				chargerEtAfficherImagesPageEnCours();
109
				chargerEtAfficherImagesPageEnCours();
103
			}
110
			}
104
		});
111
		});
105
 
112
 
106
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
113
		vue.getTriParDateDescendant().addClickHandler(new ClickHandler() {
107
 
114
 
108
			@Override
115
			@Override
109
			public void onClick(ClickEvent arg0) {
116
			public void onClick(ClickEvent arg0) {
110
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
117
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
111
				informationsRechercheImages.setTriParDate(ModeTri.TRI_DESCENDANT);
118
				informationsRechercheImages.setTriParDate(ModeTri.TRI_DESCENDANT);
112
				informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
119
				informationsRechercheImages.setTriParNbVotes(ModeTri.PAS_DE_TRI);
113
				chargerEtAfficherImagesPageEnCours();
120
				chargerEtAfficherImagesPageEnCours();
114
			}
121
			}
-
 
122
		});
-
 
123
		
-
 
124
		BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
-
 
125
			@Override
-
 
126
			public void onChangementProtocole(EvenementChangementProtocole event) {
-
 
127
				InformationsRecherche informationsRechercheImages = CacheClient.getInstance().getInformationsRechercheImage();
-
 
128
				if(informationsRechercheImages.getTriParNbVotes() != ModeTri.PAS_DE_TRI) {
-
 
129
					informationsRechercheImages.setIdProtocoleSelectionne(event.getProtocole().getId()+"");
-
 
130
					chargerEtAfficherImagesPageEnCours();
-
 
131
				}
-
 
132
			}
115
		});
133
		});
116
	}
134
	}
117
 
135
 
118
	public void rechercherImagesEtCreerWidgetPagination() {
136
	public void rechercherImagesEtCreerWidgetPagination() {
119
 
137
 
120
		// appel du service d'image pour avoir le nb total d'elements pour la
138
		// appel du service d'image pour avoir le nb total d'elements pour la
121
		// pagination
139
		// pagination
122
		ImagesParTaxonCallback callback = new ImagesParTaxonCallback() {
140
		ImagesParTaxonCallback callback = new ImagesParTaxonCallback() {
123
			@Override
141
			@Override
124
			public void surImagesRecues(ImageServiceResultat imagesRecues) {
142
			public void surImagesRecues(ImageServiceResultat imagesRecues) {
125
				creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche());
143
				creerWidgetPagination(imagesRecues.getNbTotalImagesPourLaRecherche());
126
				afficherImages(imagesRecues);
144
				afficherImages(imagesRecues);
127
			}
145
			}
128
		};
146
		};
129
 
147
 
130
		final int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination();
148
		final int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination();
131
		final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination();
149
		final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination();
132
		imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), debut, fin, callback);
150
		imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), debut, fin, callback);
133
	}
151
	}
134
 
152
 
135
	private void chargerEtAfficherImages(final int premier, final int dernier) {
153
	private void chargerEtAfficherImages(final int premier, final int dernier) {
136
		vue.startChargement();
154
		vue.startChargement();
137
		vue.nettoyer();
155
		vue.nettoyer();
138
 
156
 
139
		ImagesParTaxonCallback callback = new ImagesParTaxonCallback() {
157
		ImagesParTaxonCallback callback = new ImagesParTaxonCallback() {
140
			@Override
158
			@Override
141
			public void surImagesRecues(ImageServiceResultat imagesRecues) {
159
			public void surImagesRecues(ImageServiceResultat imagesRecues) {
142
				afficherImages(imagesRecues);
160
				afficherImages(imagesRecues);
143
			}
161
			}
144
		};
162
		};
145
		imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback);
163
		imageService.getImagesParTaxon(CacheClient.getInstance().getInformationsRechercheImage(), premier, dernier, callback);
146
 
164
 
147
	}
165
	}
148
 
166
 
149
	private void afficherImages(ImageServiceResultat imageServiceResult) {
167
	private void afficherImages(ImageServiceResultat imageServiceResult) {
150
 
168
 
151
		List<Image> images = imageServiceResult.getImages();
169
		List<Image> images = imageServiceResult.getImages();
152
 
170
 
153
		List<Panel> panneauxImagesAffichees = new ArrayList<Panel>();
171
		List<Panel> panneauxImagesAffichees = new ArrayList<Panel>();
154
		vue.creerPanneauxObservations(imageServiceResult.getImages().size());
172
		vue.creerPanneauxObservations(imageServiceResult.getImages().size());
155
 
173
 
156
		Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
174
		Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
157
		for (Image image : images) {
175
		for (Image image : images) {
158
			Panel imagePanel = panelIterator.next();
176
			Panel imagePanel = panelIterator.next();
159
			ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue());
177
			ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant(), new ImageVue());
160
			imagePresenteur.go(imagePanel);
178
			imagePresenteur.go(imagePanel);
161
			panneauxImagesAffichees.add(imagePanel);
179
			panneauxImagesAffichees.add(imagePanel);
162
			ImagePresenteurs.add(imagePresenteur);
180
			ImagePresenteurs.add(imagePresenteur);
163
		}
181
		}
164
 
182
 
165
		vue.afficherPanneauxObservation(panneauxImagesAffichees);
183
		vue.afficherPanneauxObservation(panneauxImagesAffichees);
166
		vue.stopChargement();
184
		vue.stopChargement();
167
	}
185
	}
168
 
186
 
169
	private void creerWidgetPagination(int nbImages) {
187
	private void creerWidgetPagination(int nbImages) {
170
 
188
 
171
		PaginationPresenteur imagesPaginationPresenteurHaut = creerPresenteurPagination(nbImages);
189
		PaginationPresenteur imagesPaginationPresenteurHaut = creerPresenteurPagination(nbImages);
172
		PaginationPresenteur imagesPaginationPresenteurBas = creerPresenteurPagination(nbImages);
190
		PaginationPresenteur imagesPaginationPresenteurBas = creerPresenteurPagination(nbImages);
173
		imagesPaginationPresenteurHaut.setGroupePagination("pagination_images");
191
		imagesPaginationPresenteurHaut.setGroupePagination("pagination_images");
174
		imagesPaginationPresenteurBas.setGroupePagination("pagination_images");
192
		imagesPaginationPresenteurBas.setGroupePagination("pagination_images");
175
		imagesPaginationPresenteurHaut.go(vue.getPanneauPaginationHaut());
193
		imagesPaginationPresenteurHaut.go(vue.getPanneauPaginationHaut());
176
		imagesPaginationPresenteurBas.go(vue.getPanneauPagination());
194
		imagesPaginationPresenteurBas.go(vue.getPanneauPagination());
177
	}
195
	}
178
 
196
 
179
	public PaginationPresenteur creerPresenteurPagination(int nbImages) {
197
	public PaginationPresenteur creerPresenteurPagination(int nbImages) {
180
		PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheImage()) {
198
		PaginationPresenteur imagesPaginationPresenteur = new PaginationPresenteur(new PaginationVue(), nbImages, CacheClient.getInstance().getPasPagination(), CacheClient.getInstance().getPageCouranteRechercheImage()) {
181
			@Override
199
			@Override
182
			public void chargerElements(int debut, int fin) {
200
			public void chargerElements(int debut, int fin) {
183
 
201
 
184
				chargerEtAfficherImages(debut, fin);
202
				chargerEtAfficherImages(debut, fin);
185
				CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante());
203
				CacheClient.getInstance().setPageCouranteRechercheImages(getPageCourante());
186
			}
204
			}
187
 
205
 
188
			@Override
206
			@Override
189
			public void actualiserPasCache(int pas) {
207
			public void actualiserPasCache(int pas) {
190
				CacheClient.getInstance().setPasPagination(pas);
208
				CacheClient.getInstance().setPasPagination(pas);
191
			}
209
			}
192
		};
210
		};
193
		return imagesPaginationPresenteur;
211
		return imagesPaginationPresenteur;
194
	}
212
	}
195
 
213
 
196
	public void chargerEtAfficherImagesPageEnCours() {
214
	public void chargerEtAfficherImagesPageEnCours() {
197
		final int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination();
215
		final int debut = (CacheClient.getInstance().getPageCouranteRechercheImage() - 1) * CacheClient.getInstance().getPasPagination();
198
		final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination();
216
		final int fin = (CacheClient.getInstance().getPageCouranteRechercheImage()) * CacheClient.getInstance().getPasPagination();
199
		chargerEtAfficherImages(debut, fin);
217
		chargerEtAfficherImages(debut, fin);
200
	}
218
	}
201
}
219
}