Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1040 Rev 1041
1
package org.tela_botanica.del.client.composants.observations;
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.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilantePresenteur;
6
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilantePresenteur;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
7
import org.tela_botanica.del.client.composants.fenetreoverlay.FenetreOverlayDefilanteVue;
8
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur;
8
import org.tela_botanica.del.client.composants.images.DetailImagePresenteur;
9
import org.tela_botanica.del.client.composants.images.DetailImageVue;
9
import org.tela_botanica.del.client.composants.images.DetailImageVue;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
10
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
11
import org.tela_botanica.del.client.modeles.Image;
11
import org.tela_botanica.del.client.modeles.Image;
12
import org.tela_botanica.del.client.modeles.Observation;
12
import org.tela_botanica.del.client.modeles.Observation;
13
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
13
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
14
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
14
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
-
 
15
 
-
 
16
import sun.security.action.GetLongAction;
15
 
17
 
16
import com.google.gwt.event.dom.client.ClickEvent;
18
import com.google.gwt.event.dom.client.ClickEvent;
17
import com.google.gwt.event.dom.client.ClickHandler;
19
import com.google.gwt.event.dom.client.ClickHandler;
18
import com.google.gwt.event.dom.client.HasClickHandlers;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
-
 
21
import com.google.gwt.user.client.ui.HTML;
19
import com.google.gwt.user.client.ui.HasWidgets;
22
import com.google.gwt.user.client.ui.HasWidgets;
20
import com.google.gwt.user.client.ui.IsWidget;
23
import com.google.gwt.user.client.ui.IsWidget;
21
 
24
 
22
public class ObservationImagesPresenteur extends Presenteur {
25
public class ObservationImagesPresenteur extends Presenteur {
23
 
26
 
24
	public abstract interface Vue extends IsWidget {
27
	public abstract interface Vue extends IsWidget {
25
		public HasClickHandlers getPhotoPrincipale();
28
		public HasClickHandlers getPhotoPrincipale();
26
 
29
 
27
		public HasWidgets getPhotos();
30
		public HasWidgets getPhotos();
28
 
31
 
29
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
32
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
30
 
33
 
31
		public void ajouterPhoto(Image image, ClickHandler gestionnaireClic);
34
		public void ajouterPhoto(Image image, ClickHandler gestionnaireClic);
-
 
35
		
-
 
36
		public void afficherLienPlateformeValidation();
-
 
37
		
-
 
38
		public HTML getLienPlateforme();
32
	}
39
	}
33
 
40
 
34
	private Vue vue;
41
	private Vue vue;
35
 
42
 
36
	private Observation observation;
43
	private Observation observation;
37
 
44
 
38
	private Image imagePrincipale;
45
	private Image imagePrincipale;
39
 
46
 
40
	private List<Image> listeImages;
47
	private List<Image> listeImages;
41
 
48
 
42
	public ObservationImagesPresenteur(Vue vue, Observation observation, Image imagePrincipale) {
49
	public ObservationImagesPresenteur(Vue vue, Observation observation, Image imagePrincipale) {
43
		this.observation = observation;
50
		this.observation = observation;
44
		this.vue = vue;
51
		this.vue = vue;
45
		this.imagePrincipale = imagePrincipale;
52
		this.imagePrincipale = imagePrincipale;
46
	}
53
	}
47
 
54
 
48
	public void chargerImagesObservation() {
55
	public void chargerImagesObservation() {
49
 
56
 
50
		listeImages = observation.getImages();
57
		listeImages = observation.getImages();
51
		if (imagePrincipale != null) {
58
		if (imagePrincipale != null) {
52
			vue.chargerImagePrincipale(imagePrincipale);
59
			vue.chargerImagePrincipale(imagePrincipale);
53
			vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClicGalerieImages(0, imagePrincipale));
60
			vue.getPhotoPrincipale().addClickHandler(creerGestionnaireClicGalerieImages(0, imagePrincipale));
54
		}
61
		}
55
 
62
 
56
		int nbImage = 0;
63
		int nbImage = 0;
57
		for (Image imageCourante : listeImages) {
64
		for (Image imageCourante : listeImages) {
58
			vue.ajouterPhoto(imageCourante, creerGestionnaireClicChangementImagePrincipale(imageCourante));
65
			vue.ajouterPhoto(imageCourante, creerGestionnaireClicChangementImagePrincipale(imageCourante));
59
			nbImage++;
66
			nbImage++;
-
 
67
			
-
 
68
			if(nbImage>=5){
-
 
69
				vue.afficherLienPlateformeValidation();
-
 
70
				break;
-
 
71
			}
60
		}
72
		}
61
	}
73
	}
62
 
74
 
63
	public void go(HasWidgets composite) {
75
	public void go(HasWidgets composite) {
64
		composite.add(vue.asWidget());
76
		composite.add(vue.asWidget());
65
		chargerImagesObservation();
77
		chargerImagesObservation();
-
 
78
		gererEvenements();
66
	}
79
	}
67
 
80
 
68
	protected void gererEvenements() {
81
	protected void gererEvenements() {
-
 
82
		vue.getLienPlateforme().addClickHandler(new ClickHandler() {
69
 
83
			
-
 
84
			@Override
-
 
85
			public void onClick(ClickEvent arg0) {
-
 
86
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
-
 
87
			}
-
 
88
		});
70
	}
89
	}
71
 
90
 
72
	protected ClickHandler creerGestionnaireClicGalerieImages(final int indexImage, final Image imageCourante) {
91
	protected ClickHandler creerGestionnaireClicGalerieImages(final int indexImage, final Image imageCourante) {
73
		ClickHandler gestionnaireClic = new ClickHandler() {
92
		ClickHandler gestionnaireClic = new ClickHandler() {
74
			public void onClick(ClickEvent event) {
93
			public void onClick(ClickEvent event) {
75
				FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) {
94
				FenetreOverlayDefilantePresenteur presenteurGalerie = new FenetreOverlayDefilantePresenteur(indexImage, new FenetreOverlayDefilanteVue()) {
76
 
95
 
77
					@Override
96
					@Override
78
					public void surClicBoutonSuivant() {
97
					public void surClicBoutonSuivant() {
79
						int index = getIndexElementAffiche() + 1;
98
						int index = getIndexElementAffiche() + 1;
80
						if (index >= listeImages.size()) {
99
						if (index >= listeImages.size()) {
81
							index = 0;
100
							index = 0;
82
						}
101
						}
83
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
102
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
84
					}
103
					}
85
 
104
 
86
					@Override
105
					@Override
87
					public void surClicBoutonPrecedent() {
106
					public void surClicBoutonPrecedent() {
88
						int index = getIndexElementAffiche() - 1;
107
						int index = getIndexElementAffiche() - 1;
89
						if (index < 0) {
108
						if (index < 0) {
90
							index = listeImages.size() - 1;
109
							index = listeImages.size() - 1;
91
						}
110
						}
92
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
111
						setContenuFenetreModale(index, new DetailImagePresenteur(listeImages.get(index), new DetailImageVue()));
93
					}
112
					}
94
				};
113
				};
95
				presenteurGalerie.ouvrirFenetreModaleDefilante(indexImage, new DetailImagePresenteur(imageCourante, new DetailImageVue()));
114
				presenteurGalerie.ouvrirFenetreModaleDefilante(indexImage, new DetailImagePresenteur(imageCourante, new DetailImageVue()));
96
				presenteurGalerie.afficherBoutonsSuivantsPrecedents((listeImages.size() > 1));
115
				presenteurGalerie.afficherBoutonsSuivantsPrecedents((listeImages.size() > 1));
97
			}
116
			}
98
		};
117
		};
99
		return gestionnaireClic;
118
		return gestionnaireClic;
100
	}
119
	}
101
 
120
 
102
	protected ClickHandler creerGestionnaireClicChangementImagePrincipale(final Image imageCourante) {
121
	protected ClickHandler creerGestionnaireClicChangementImagePrincipale(final Image imageCourante) {
103
		ClickHandler gestionnaireClic = new ClickHandler() {
122
		ClickHandler gestionnaireClic = new ClickHandler() {
104
			public void onClick(ClickEvent event) {
123
			public void onClick(ClickEvent event) {
105
				CacheClient.getInstance().setImageCourante(imageCourante);
124
				CacheClient.getInstance().setImageCourante(imageCourante);
106
				vue.chargerImagePrincipale(imageCourante);
125
				vue.chargerImagePrincipale(imageCourante);
107
			}
126
			}
108
		};
127
		};
109
		return gestionnaireClic;
128
		return gestionnaireClic;
110
	}
129
	}
111
}
130
}