Subversion Repositories eFlore/Applications.del

Rev

Details | Last modification | View Log | RSS feed

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