Subversion Repositories eFlore/Applications.del

Rev

Rev 241 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
178 benjamin 1
package org.tela_botanica.del.client.vues.rechercheimages.resultats;
2
 
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
 
7
import org.tela_botanica.del.client.cache.CacheClient;
8
import org.tela_botanica.del.client.modeles.Image;
256 gduche 9
import org.tela_botanica.del.client.composants.pagination.PaginationPresenteur;
178 benjamin 10
import org.tela_botanica.del.client.vues.rechercheimages.resultats.images.ImagePresenteur;
11
 
12
import com.google.gwt.user.client.ui.HasWidgets;
13
import com.google.gwt.user.client.ui.Panel;
14
 
15
public class ResultatRechercheImagePresenteur {
16
 
17
	private final ResultatRechercheImageVue vue = new ResultatRechercheImageVue();
18
	private static ResultatRechercheImagePresenteur instance;
19
	private List<ImagePresenteur> observationPresenteurs = new ArrayList<ImagePresenteur>();
20
 
21
	public ResultatRechercheImagePresenteur() {
22
		instance = this;
23
	}
24
 
25
	public void go(HasWidgets composite) {
26
		composite.add(vue);
224 aurelien 27
		createPaginationWidget(CacheClient.getInstance().getImages().size());
241 gduche 28
		reactualiserImagesEtMoyenneVoteProtocole(0, 10);
178 benjamin 29
 
30
	}
31
 
241 gduche 32
	private void reactualiserImagesEtMoyenneVoteProtocole(int premier, int dernier) {
178 benjamin 33
 
34
		// Remise à zéro du panneau d'affichage et des composants
35
		vue.nettoyer();
36
 
37
		// TODO : créer une méthode globale pour l'application ? voir
38
		// superclasse présenteur ?
39
		// FIXME : ne s'affiche pas
40
		vue.startChargement();
41
 
224 aurelien 42
		List<Panel> panneauxImagesAffichees = new ArrayList<Panel>();
43
		List<Image> imagesAffichees = CacheClient.getInstance().getSousListeImages(premier, dernier);
44
		vue.creerPanneauxObservations(imagesAffichees.size());
241 gduche 45
 
178 benjamin 46
		Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
224 aurelien 47
		for (Image image : imagesAffichees) {
178 benjamin 48
			Panel imagePanel = panelIterator.next();
49
			ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant());
50
			imagePresenteur.go(imagePanel);
224 aurelien 51
			panneauxImagesAffichees.add(imagePanel);
178 benjamin 52
			observationPresenteurs.add(imagePresenteur);
53
		}
241 gduche 54
 
224 aurelien 55
		vue.afficherPanneauxObservation(panneauxImagesAffichees);
178 benjamin 56
		vue.stopChargement();
57
 
58
	}
59
 
60
	public void fermerTousPanneauxDetailsObservations() {
61
		for (ImagePresenteur observationPresenteur : observationPresenteurs) {
62
			if (observationPresenteur.isDetailsOpen()) {
63
				observationPresenteur.cacherDetails();
64
			}
65
		}
66
	}
67
 
68
	private void createPaginationWidget(int nbImages) {
69
 
70
		new PaginationPresenteur(nbImages) {
71
 
72
			@Override
73
			public void changerPage(int debut, int fin) {
74
				showImagePanels(debut, fin);
75
			}
76
		}.go(vue.getPanneauPagination());
77
	}
78
 
79
	public void showImagePanels(int first, int last) {
241 gduche 80
		reactualiserImagesEtMoyenneVoteProtocole(first, last);
178 benjamin 81
	}
82
 
83
	public ResultatRechercheImageVue getView() {
84
		return vue;
85
	}
86
 
87
	public static ResultatRechercheImagePresenteur getInstance() {
88
		return instance;
89
	}
90
 
91
}