Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
140 aurelien 1
package org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition;
2
 
186 aurelien 3
import java.util.Date;
4
 
5
import org.tela_botanica.del.client.modeles.MoyenneVote;
6
import org.tela_botanica.del.client.modeles.VoteDetermination;
248 aurelien 7
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
8
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
9
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
186 aurelien 10
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
140 aurelien 11
import org.tela_botanica.del.client.utils.MockDatasource;
12
 
186 aurelien 13
import com.google.gwt.event.dom.client.ClickEvent;
14
import com.google.gwt.event.dom.client.ClickHandler;
276 aurelien 15
import com.google.gwt.event.dom.client.HasClickHandlers;
186 aurelien 16
import com.google.gwt.event.shared.HandlerRegistration;
248 aurelien 17
import com.google.gwt.user.client.Window;
172 aurelien 18
import com.google.gwt.user.client.ui.HTML;
140 aurelien 19
import com.google.gwt.user.client.ui.HasWidgets;
276 aurelien 20
import com.google.gwt.user.client.ui.IsWidget;
21
import com.google.gwt.user.client.ui.PushButton;
140 aurelien 22
 
23
public class BarreRepartitionVotePresenteur {
24
 
276 aurelien 25
	public interface Vue extends IsWidget {
26
		public abstract void afficherVotes(int pourcentage, String NomTaxon);
27
		public abstract IsWidget getBarreRepartitionHtmlBrut();
28
		public abstract HasClickHandlers getBoutonOui();
29
		public abstract HasClickHandlers getBoutonNon();
30
		public abstract void setVoteOuiEffectue();
31
		public abstract void setVoteNonEffectue();
32
	}
186 aurelien 33
 
276 aurelien 34
	private Vue vue;
186 aurelien 35
	private MoyenneVote moyenneVote;
36
 
276 aurelien 37
	public BarreRepartitionVotePresenteur(Vue vue) {
38
		this.vue = vue;
227 aurelien 39
		gererEvenements();
140 aurelien 40
	}
276 aurelien 41
 
42
	public void go(HasWidgets container) {
43
		container.add(vue.asWidget());
44
	}
140 aurelien 45
 
186 aurelien 46
	public void afficherVotes(MoyenneVote moyenneVote) {
47
		this.moyenneVote = moyenneVote;
48
		vue.afficherVotes(moyenneVote.getScore(), moyenneVote.getIntituleAssocie());
140 aurelien 49
	}
50
 
276 aurelien 51
	public Vue getBarreRepartitionVoteVue() {
140 aurelien 52
		return vue;
53
	}
172 aurelien 54
 
276 aurelien 55
	public MoyenneVote getMoyenneVote() {
56
		return moyenneVote;
57
	}
58
 
59
	public IsWidget getBarreRepartitionVoteVueHTML() {
172 aurelien 60
		return vue.getBarreRepartitionHtmlBrut();
61
	}
186 aurelien 62
 
63
	public void gererEvenements() {
64
 
248 aurelien 65
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
66
 
186 aurelien 67
			@Override
248 aurelien 68
			public void onVoteDetermination(VoteDetermination event) {
69
 
70
				if(event.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) {
71
					moyenneVote.getPropositionAssociee().ajouterVoteDetermination(event);
72
					moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee());
73
				}
186 aurelien 74
 
248 aurelien 75
				afficherVotes(moyenneVote);
186 aurelien 76
			}
77
		});
78
 
248 aurelien 79
		vue.getBoutonOui().addClickHandler(new ClickHandler() {
80
			@Override
81
			public void onClick(ClickEvent event) {
82
				voter(true);
83
			}
84
		});
85
 
186 aurelien 86
		vue.getBoutonNon().addClickHandler(new ClickHandler() {
87
			@Override
88
			public void onClick(ClickEvent event) {
248 aurelien 89
				voter(false);
276 aurelien 90
				vue.setVoteNonEffectue();
186 aurelien 91
			}
92
		});
93
	}
248 aurelien 94
 
95
	public void voter(boolean oui) {
96
 
97
		VoteDetermination vd = new VoteDetermination();
98
		vd.setPropositionDetermination(moyenneVote.getPropositionAssociee());
99
		vd.setContributeur("testeur");
100
		vd.setDate(new Date());
101
 
102
		int valeurVote = oui ? 1 : 0;
103
		vd.setVote(valeurVote);
104
		vd.setId("3");
105
 
276 aurelien 106
		if(oui) {vue.setVoteOuiEffectue();} else {vue.setVoteNonEffectue();}
248 aurelien 107
 
108
		BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd));
109
	}
140 aurelien 110
}