Subversion Repositories eFlore/Applications.del

Rev

Rev 436 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
166 gduche 1
package org.tela_botanica.del.client.vues.rechercheobservations;
2
 
3
import java.util.List;
4
 
332 gduche 5
import org.tela_botanica.del.client.cache.CacheClient;
447 gduche 6
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesPresenteur;
7
import org.tela_botanica.del.client.composants.metadonnees.MetadonneesVue;
166 gduche 8
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
332 gduche 9
import org.tela_botanica.del.client.modeles.Image;
166 gduche 10
import org.tela_botanica.del.client.modeles.Observation;
332 gduche 11
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
12
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
436 benjamin 13
import org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations.ObservationDeterminationPresenteur;
14
import org.tela_botanica.del.client.vues.rechercheobservations.observationdeterminations.ObservationDeterminationVue;
15
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesPresenteur;
16
import org.tela_botanica.del.client.vues.rechercheobservations.observationimages.ObservationImagesVue;
166 gduche 17
 
200 gduche 18
import com.google.gwt.event.dom.client.ClickEvent;
19
import com.google.gwt.event.dom.client.ClickHandler;
309 aurelien 20
import com.google.gwt.event.dom.client.HasClickHandlers;
166 gduche 21
import com.google.gwt.user.client.ui.HasWidgets;
309 aurelien 22
import com.google.gwt.user.client.ui.IsWidget;
166 gduche 23
 
24
public class ObservationPresenteur extends Presenteur {
436 benjamin 25
 
309 aurelien 26
	public abstract interface Vue extends IsWidget {
436 benjamin 27
 
332 gduche 28
		public HasClickHandlers getLienDeterminer();
436 benjamin 29
 
30
		public HasWidgets getDeterminationsPanel();
31
 
32
		public HasWidgets getImagesPanel();
447 gduche 33
 
34
		public HasWidgets getMetadonneesPanel();
309 aurelien 35
	}
436 benjamin 36
 
309 aurelien 37
	private Vue vue;
166 gduche 38
 
39
	private Observation observation;
40
 
309 aurelien 41
	public ObservationPresenteur(Vue vue, Observation observation) {
166 gduche 42
		this.observation = observation;
314 gduche 43
		this.vue = vue;
166 gduche 44
		chargerObservation();
45
	}
46
 
47
	public void chargerObservation() {
48
 
436 benjamin 49
		new ObservationImagesPresenteur(new ObservationImagesVue(), observation).go(vue.getImagesPanel());
447 gduche 50
		new MetadonneesPresenteur(new MetadonneesVue(), observation).go(vue.getMetadonneesPanel());
436 benjamin 51
		new ObservationDeterminationPresenteur(new ObservationDeterminationVue(), observation.getPropositionsDetermination()).go(vue.getDeterminationsPanel());
166 gduche 52
 
436 benjamin 53
		gererEvenements();
183 gduche 54
 
166 gduche 55
	}
56
 
57
	public void go(HasWidgets composite) {
309 aurelien 58
		composite.add(vue.asWidget());
166 gduche 59
	}
60
 
220 gduche 61
	protected void gererEvenements() {
436 benjamin 62
 
332 gduche 63
		vue.getLienDeterminer().addClickHandler(new ClickHandler() {
436 benjamin 64
 
332 gduche 65
			public void onClick(ClickEvent event) {
66
				List<Image> images = observation.getImages();
67
				if (images.size() > 0) {
68
					CacheClient.getInstance().setImageCourante(images.get(0));
69
				} else {
70
					CacheClient.getInstance().setImageCourante(null);
71
				}
72
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
73
			}
74
		});
166 gduche 75
	}
76
}