Subversion Repositories eFlore/Applications.del

Rev

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

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