Subversion Repositories eFlore/Applications.del

Rev

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

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