Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
9 benjamin 1
package org.tela_botanica.del.client.vues.searchobservations;
2
 
3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.modeles.Observation;
6
import org.tela_botanica.del.client.modeles.ObservationValidationData;
7
import org.tela_botanica.del.client.navigation.event.EventBus;
8
import org.tela_botanica.del.client.navigation.event.validateobservation.ValidateImageEvent;
9
import org.tela_botanica.del.client.utils.MockDatasource;
10
import org.tela_botanica.del.client.vues.searchobservations.detail.ObservationDetailPresenter;
11
import org.tela_botanica.del.client.vues.searchobservations.vote.MeanRatingPresenter;
12
 
13
import com.google.gwt.event.dom.client.ClickEvent;
14
import com.google.gwt.event.dom.client.ClickHandler;
15
import com.google.gwt.user.client.ui.HasWidgets;
16
 
17
public class ObservationPresenter {
18
 
19
	private final MockDatasource validationService = MockDatasource.getInstance();
20
 
21
	private ObservationView view = new ObservationView();
22
 
23
	private final Observation observation;
24
 
25
	private boolean detailsOpen = false;
26
 
27
	public ObservationPresenter(Observation observation) {
28
		this.observation = observation;
29
	}
30
 
31
	public void go(HasWidgets composite) {
32
		composite.add(view);
33
		view.loadImage(observation);
34
		loadValidationData();
35
		handleEvents();
36
 
37
	}
38
 
39
	private void loadValidationData() {
40
 
41
		List<ObservationValidationData> observationValidationDatas = validationService
42
				.getValidationData(observation.getIdImage());
43
 
44
		observation.setImageCelValidationDatas(observationValidationDatas);
45
		new MeanRatingPresenter(observationValidationDatas).go(view
46
				.getRatePanel());
47
		view.showValidationData(observationValidationDatas);
48
 
49
	}
50
 
51
	private void handleEvents() {
52
		view.getMoreDetailsHtml().addClickHandler(new ClickHandler() {
53
 
54
			@Override
55
			public void onClick(ClickEvent event) {
56
 
57
				if (detailsOpen) {
58
					view.clearDetails();
59
				} else {
60
					new ObservationDetailPresenter(observation).go(view
61
							.getDetailsPanel());
62
					view.getMoreDetailsHtml().setHTML(
63
							"<img src='img/icon_minus.png' />");
64
				}
65
				detailsOpen = !detailsOpen;
66
			}
67
		});
68
 
69
		view.getProposeValidationDataHtml().addClickHandler(new ClickHandler() {
70
 
71
			@Override
72
			public void onClick(ClickEvent event) {
73
				EventBus.getInstance().fireEvent(
74
						new ValidateImageEvent(observation));
75
			}
76
		});
77
	}
78
}