Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 benjamin 1
package org.tela_botanica.del.client.vues.rechercheobservations;
9 benjamin 2
 
3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.modeles.Observation;
14 benjamin 6
import org.tela_botanica.del.client.modeles.ObservationValidation;
73 benjamin 7
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
8
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
9 benjamin 9
import org.tela_botanica.del.client.utils.MockDatasource;
14 benjamin 10
import org.tela_botanica.del.client.vues.rechercheobservations.vote.MoyenneVotePresenteur;
9 benjamin 11
 
12
import com.google.gwt.event.dom.client.ClickEvent;
13
import com.google.gwt.event.dom.client.ClickHandler;
14
import com.google.gwt.user.client.ui.HasWidgets;
52 gduche 15
import com.google.gwt.user.client.ui.Label;
16
import com.google.gwt.user.client.ui.VerticalPanel;
9 benjamin 17
 
14 benjamin 18
public class ObservationPresenteur {
9 benjamin 19
 
20
	private final MockDatasource validationService = MockDatasource.getInstance();
32 gduche 21
	private ObservationVue vue = new ObservationVue();
9 benjamin 22
	private final Observation observation;
23
	private boolean detailsOpen = false;
24
 
14 benjamin 25
	public ObservationPresenteur(Observation observation) {
9 benjamin 26
		this.observation = observation;
27
	}
28
 
29
	public void go(HasWidgets composite) {
32 gduche 30
		composite.add(vue);
31
		vue.loadImage(observation);
63 gduche 32
		loadValidationData();
52 gduche 33
		handleEvents();
9 benjamin 34
 
35
	}
36
 
37
	private void loadValidationData() {
38
 
32 gduche 39
		List<ObservationValidation> observationValidationDatas = validationService.getValidationData(observation.getIdImage());
9 benjamin 40
		observation.setImageCelValidationDatas(observationValidationDatas);
63 gduche 41
		new MoyenneVotePresenteur(observationValidationDatas).go(vue.getVoter());
32 gduche 42
		vue.showValidationData(observationValidationDatas);
9 benjamin 43
 
44
	}
45
 
46
	private void handleEvents() {
47
 
52 gduche 48
		vue.getEnSavoirPlus().addClickHandler(new ClickHandler() {
49
 
9 benjamin 50
			@Override
51
			public void onClick(ClickEvent event) {
123 gduche 52
 
86 benjamin 53
				if (!detailsOpen) {
54
					afficherDetails();
9 benjamin 55
				} else {
86 benjamin 56
					cacherDetails();
9 benjamin 57
				}
123 gduche 58
 
9 benjamin 59
			}
60
		});
73 benjamin 61
 
123 gduche 62
		vue.getAjoutValidation().addClickHandler(new ClickHandler() {
73 benjamin 63
 
64
			@Override
65
			public void onClick(ClickEvent event) {
66
				BusEvenementiel.getInstance().fireEvent(new EvenementValidation(observation));
67
			}
68
		});
9 benjamin 69
	}
86 benjamin 70
 
71
	public void cacherDetails() {
72
		VerticalPanel zoneCache = vue.getZoneCache();
73
		Label enSavoirPlus = vue.getEnSavoirPlus();
74
 
75
		zoneCache.setVisible(false);
76
		enSavoirPlus.setStyleName("boutonPlus");
123 gduche 77
 
78
		detailsOpen = false;
86 benjamin 79
	}
123 gduche 80
 
86 benjamin 81
	public void afficherDetails() {
82
		ObservationRecherchePresenteur.getInstance().fermerTousPanneauxDetailsObservations();
123 gduche 83
 
86 benjamin 84
		VerticalPanel zoneCache = vue.getZoneCache();
85
		Label enSavoirPlus = vue.getEnSavoirPlus();
86
 
87
		zoneCache.setVisible(true);
88
		enSavoirPlus.setStyleName("boutonMoins");
123 gduche 89
 
90
		detailsOpen = true;
86 benjamin 91
	}
92
 
93
	public boolean isDetailsOpen() {
94
		return detailsOpen;
95
	}
96
 
97
	public ObservationVue getVue() {
98
		return vue;
99
	}
9 benjamin 100
}