Subversion Repositories eFlore/Applications.del

Rev

Rev 437 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
436 benjamin 1
package org.tela_botanica.del.client.vues.rechercheobservations.observationimages;
2
 
3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
6
import org.tela_botanica.del.client.modeles.Image;
7
import org.tela_botanica.del.client.modeles.Observation;
8
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImagePresenteur;
9
import org.tela_botanica.del.client.vues.rechercheobservations.DetailImageVue;
10
 
11
import com.google.gwt.event.dom.client.ClickEvent;
12
import com.google.gwt.event.dom.client.ClickHandler;
13
import com.google.gwt.event.dom.client.HasClickHandlers;
14
import com.google.gwt.user.client.ui.HasWidgets;
15
import com.google.gwt.user.client.ui.IsWidget;
16
 
17
public class ObservationImagesPresenteur extends Presenteur {
18
 
19
	public abstract interface Vue extends IsWidget {
20
		public HasClickHandlers getPhotoPrincipale();
21
 
22
		public HasWidgets getPhotos();
23
 
24
		public void chargerImagePrincipale(org.tela_botanica.del.client.modeles.Image image);
25
 
26
		public void ajouterPhoto(Image image, ClickHandler gestionnaireClic);
27
 
28
		public void chargerInformationsObservation(Observation observation);
29
	}
30
 
31
	private Vue vue;
32
 
33
	private Observation observation;
34
 
35
	private Image imagePrincipale;
36
 
37
	public ObservationImagesPresenteur(Vue vue, Observation observation) {
38
		this.observation = observation;
39
		this.vue = vue;
40
	}
41
 
42
	public void chargerImagesObservation() {
43
 
44
		vue.chargerInformationsObservation(observation);
45
 
46
		List<org.tela_botanica.del.client.modeles.Image> images = observation.getImages();
47
 
48
		if (images != null && images.size() > 0) {
49
			imagePrincipale = images.get(0);
50
			vue.chargerImagePrincipale(imagePrincipale);
51
		}
52
 
53
		for (final org.tela_botanica.del.client.modeles.Image imageCourante : images) {
54
			if (imageCourante != imagePrincipale) {
55
 
56
				ClickHandler gestionnaireClic = new ClickHandler() {
57
					public void onClick(ClickEvent event) {
58
						ouvrirFenetreModale(new DetailImagePresenteur(imageCourante, new DetailImageVue()));
59
					}
60
				};
61
				vue.ajouterPhoto(imageCourante, gestionnaireClic);
62
			}
63
		}
64
	}
65
 
66
	public void go(HasWidgets composite) {
67
		composite.add(vue.asWidget());
68
		chargerImagesObservation();
69
		gererEvenements();
70
	}
71
 
72
	protected void gererEvenements() {
73
		vue.getPhotoPrincipale().addClickHandler(new ClickHandler() {
74
			public void onClick(ClickEvent event) {
75
				ouvrirFenetreModale(new DetailImagePresenteur(imagePrincipale, new DetailImageVue()));
76
			}
77
		});
78
	}
79
}