Subversion Repositories eFlore/Applications.del

Rev

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

Rev 471 Rev 477
1
package org.tela_botanica.del.client.vues.rechercheobservations.observationimages;
1
package org.tela_botanica.del.client.composants.observations;
2
 
2
 
3
import java.util.List;
3
import java.util.List;
4
 
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
5
import org.tela_botanica.del.client.composants.fenetereoverlay.FenetreOverlayDefilantePresenteur;
6
import org.tela_botanica.del.client.composants.fenetreOverlayDefilante.FenetreOverlayDefilantePresenteur;
6
import org.tela_botanica.del.client.composants.fenetereoverlay.FenetreOverlayDefilanteVue;
-
 
7
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur;
7
import org.tela_botanica.del.client.composants.fenetreOverlayDefilante.FenetreOverlayDefilanteVue;
8
import org.tela_botanica.del.client.composants.images.DetailImageVue;
8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
9
import org.tela_botanica.del.client.modeles.Image;
10
import org.tela_botanica.del.client.modeles.Image;
10
import org.tela_botanica.del.client.modeles.Observation;
11
import org.tela_botanica.del.client.modeles.Observation;
11
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur;
-
 
12
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImageVue;
-
 
13
 
12
 
14
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickEvent;
15
import com.google.gwt.event.dom.client.ClickHandler;
14
import com.google.gwt.event.dom.client.ClickHandler;
16
import com.google.gwt.event.dom.client.HasClickHandlers;
15
import com.google.gwt.event.dom.client.HasClickHandlers;
17
import com.google.gwt.user.client.ui.HasWidgets;
16
import com.google.gwt.user.client.ui.HasWidgets;
18
import com.google.gwt.user.client.ui.IsWidget;
17
import com.google.gwt.user.client.ui.IsWidget;
19
 
18
 
20
public class ObservationImagesPresenteur extends Presenteur {
19
public class ObservationImagesPresenteur extends Presenteur {
21
 
20
 
22
	public abstract interface Vue extends IsWidget {
21
	public abstract interface Vue extends IsWidget {
23
		public HasClickHandlers getPhotoPrincipale();
22
		public HasClickHandlers getPhotoPrincipale();
24
		public HasWidgets getPhotos();
23
		public HasWidgets getPhotos();
25
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
24
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
26
		public void ajouterPhoto(Image image, ClickHandler gestionnaireClic);
25
		public void ajouterPhoto(Image image, ClickHandler gestionnaireClic);
27
	}
26
	}
28
 
27
 
29
	private Vue vue;
28
	private Vue vue;
30
 
29
 
31
	private Observation observation;
30
	private Observation observation;
32
 
31
 
33
	private Image imagePrincipale;
32
	private Image imagePrincipale;
34
	
33
	
35
	private List<Image> listeImages;
34
	private List<Image> listeImages;
36
 
35
 
37
	public ObservationImagesPresenteur(Vue vue, Observation observation) {
36
	public ObservationImagesPresenteur(Vue vue, Observation observation) {
38
		this.observation = observation;
37
		this.observation = observation;
39
		this.vue = vue;
38
		this.vue = vue;
40
	}
39
	}
41
 
40
 
42
	public void chargerImagesObservation() {
41
	public void chargerImagesObservation() {
43
 
42
 
44
		listeImages = observation.getImages();
43
		listeImages = observation.getImages();
45
		
44
		
46
		if (listeImages.size() > 0){
45
		if (listeImages.size() > 0){
47
			final Image imagePrincipale = listeImages.get(0);
46
			final Image imagePrincipale = listeImages.get(0);
48
			vue.chargerImagePrincipale(imagePrincipale);
47
			vue.chargerImagePrincipale(imagePrincipale);
49
			vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClic(0, imagePrincipale));
48
			vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClic(0, imagePrincipale));
50
		}
49
		}
51
 
50
 
52
		int nbImage = 0;
51
		int nbImage = 0;
53
		for (final org.tela_botanica.del.client.modeles.Image imageCourante : listeImages) {
52
		for (final org.tela_botanica.del.client.modeles.Image imageCourante : listeImages) {
54
			if(!imageCourante.equals(imagePrincipale)) {
53
			if(!imageCourante.equals(imagePrincipale)) {
55
				int nbImageEncours = nbImage;			
54
				int nbImageEncours = nbImage;			
56
				vue.ajouterPhoto(imageCourante, creerGestionnaireClic(nbImageEncours, imageCourante));
55
				vue.ajouterPhoto(imageCourante, creerGestionnaireClic(nbImageEncours, imageCourante));
57
			}
56
			}
58
			nbImage++;
57
			nbImage++;
59
		}
58
		}
60
	}
59
	}
61
 
60
 
62
	public void go(HasWidgets composite) {
61
	public void go(HasWidgets composite) {
63
		composite.add(vue.asWidget());
62
		composite.add(vue.asWidget());
64
		chargerImagesObservation();
63
		chargerImagesObservation();
65
		//gererEvenements();
64
		//gererEvenements();
66
	}
65
	}
67
 
66
 
68
	protected void gererEvenements() {
67
	protected void gererEvenements() {
69
		
68
		
70
	}
69
	}
71
	
70
	
72
	protected ClickHandler creerGestionnaireClic(final int indexImage, final Image imageCourante) {
71
	protected ClickHandler creerGestionnaireClic(final int indexImage, final Image imageCourante) {
73
		ClickHandler gestionnaireClic = new ClickHandler() {
72
		ClickHandler gestionnaireClic = new ClickHandler() {
74
			public void onClick(ClickEvent event) {
73
			public void onClick(ClickEvent event) {
75
				FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) {
74
				FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) {
76
					
75
					
77
					@Override
76
					@Override
78
					public void surClicBoutonSuivant() {
77
					public void surClicBoutonSuivant() {
79
						int index = getIndexElementAffiche() + 1;
78
						int index = getIndexElementAffiche() + 1;
80
						if(index >= listeImages.size()) {
79
						if(index >= listeImages.size()) {
81
							index = 0;
80
							index = 0;
82
						}
81
						}
83
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
82
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
84
					}
83
					}
85
					
84
					
86
					@Override
85
					@Override
87
					public void surClicBoutonPrecedent() {
86
					public void surClicBoutonPrecedent() {
88
						int index = getIndexElementAffiche() - 1;
87
						int index = getIndexElementAffiche() - 1;
89
						if(index < 0) {
88
						if(index < 0) {
90
							index = listeImages.size() - 1;
89
							index = listeImages.size() - 1;
91
						}
90
						}
92
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
91
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
93
					}
92
					}
94
				};
93
				};
95
				presenteurGalerie.ouvrirFenetreModaleDefilante(indexImage, new DetailImagePresenteur(imageCourante, new DetailImageVue()));
94
				presenteurGalerie.ouvrirFenetreModaleDefilante(indexImage, new DetailImagePresenteur(imageCourante, new DetailImageVue()));
96
				presenteurGalerie.afficherBoutonsSuivantsPrecedents((listeImages.size() > 1));
95
				presenteurGalerie.afficherBoutonsSuivantsPrecedents((listeImages.size() > 1));
97
			}
96
			}
98
		};
97
		};
99
		return gestionnaireClic;
98
		return gestionnaireClic;
100
	}
99
	}
101
}
100
}