Subversion Repositories eFlore/Applications.del

Rev

Details | 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;
9
import org.tela_botanica.del.client.pagination.PaginationPresenteur;
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);
27
		afficherImagesEtMoyenneVoteProtocole();
28
 
29
	}
30
 
31
	private void afficherImagesEtMoyenneVoteProtocole() {
32
 
33
		// Remise à zéro du panneau d'affichage et des composants
34
		vue.nettoyer();
35
 
36
		// TODO : créer une méthode globale pour l'application ? voir
37
		// superclasse présenteur ?
38
		// FIXME : ne s'affiche pas
39
		vue.startChargement();
40
		vue.creerPanneauxObservation(CacheClient.getInstance().getImages());
41
 
42
		Iterator<Panel> panelIterator = vue.getPanneauxImages().iterator();
43
		for (Image image : CacheClient.getInstance().getImages()) {
44
			Panel imagePanel = panelIterator.next();
45
			ImagePresenteur imagePresenteur = new ImagePresenteur(image, CacheClient.getInstance().getProtocoleCourant());
46
			imagePresenteur.go(imagePanel);
47
			observationPresenteurs.add(imagePresenteur);
48
		}
49
 
50
		vue.afficherPanneauxImage(0, vue.getNbImagesPerPage());
51
		createPaginationWidget(CacheClient.getInstance().getImages().size());
52
 
53
		vue.stopChargement();
54
 
55
	}
56
 
57
	public void fermerTousPanneauxDetailsObservations() {
58
		for (ImagePresenteur observationPresenteur : observationPresenteurs) {
59
			if (observationPresenteur.isDetailsOpen()) {
60
				observationPresenteur.cacherDetails();
61
			}
62
		}
63
	}
64
 
65
	private void createPaginationWidget(int nbImages) {
66
 
67
		new PaginationPresenteur(nbImages) {
68
 
69
			@Override
70
			public void changerPage(int debut, int fin) {
71
				showImagePanels(debut, fin);
72
			}
73
		}.go(vue.getPanneauPagination());
74
	}
75
 
76
	public void showImagePanels(int first, int last) {
77
		vue.afficherPanneauxImage(first, last);
78
	}
79
 
80
	public ResultatRechercheImageVue getView() {
81
		return vue;
82
	}
83
 
84
	public static ResultatRechercheImagePresenteur getInstance() {
85
		return instance;
86
	}
87
 
88
}