Subversion Repositories eFlore/Applications.del

Rev

Rev 227 | Rev 276 | 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;
15
import com.google.gwt.event.shared.HandlerRegistration;
248 aurelien 16
import com.google.gwt.user.client.Window;
172 aurelien 17
import com.google.gwt.user.client.ui.HTML;
140 aurelien 18
import com.google.gwt.user.client.ui.HasWidgets;
19
 
20
public class BarreRepartitionVotePresenteur {
21
 
22
	private BarreRepartitionVoteVue vue = new BarreRepartitionVoteVue();
23
 
24
	private MockDatasource validationService = MockDatasource.getInstance();
186 aurelien 25
 
26
	private MoyenneVote moyenneVote;
27
 
140 aurelien 28
	public void go(HasWidgets container) {
29
		container.add(vue);
227 aurelien 30
		gererEvenements();
140 aurelien 31
	}
32
 
186 aurelien 33
	public void afficherVotes(MoyenneVote moyenneVote) {
34
		this.moyenneVote = moyenneVote;
35
		vue.afficherVotes(moyenneVote.getScore(), moyenneVote.getIntituleAssocie());
140 aurelien 36
	}
37
 
38
	public BarreRepartitionVoteVue getBarreRepartitionVoteVue() {
39
		return vue;
40
	}
172 aurelien 41
 
42
	public HTML getBarreRepartitionVoteVueHTML() {
43
		return vue.getBarreRepartitionHtmlBrut();
44
	}
186 aurelien 45
 
46
	public void gererEvenements() {
47
 
248 aurelien 48
		BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {
49
 
186 aurelien 50
			@Override
248 aurelien 51
			public void onVoteDetermination(VoteDetermination event) {
52
 
53
				if(event.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) {
54
					moyenneVote.getPropositionAssociee().ajouterVoteDetermination(event);
55
					moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee());
56
				}
186 aurelien 57
 
248 aurelien 58
				afficherVotes(moyenneVote);
186 aurelien 59
			}
60
		});
61
 
248 aurelien 62
		vue.getBoutonOui().addClickHandler(new ClickHandler() {
63
			@Override
64
			public void onClick(ClickEvent event) {
65
				voter(true);
66
			}
67
		});
68
 
186 aurelien 69
		vue.getBoutonNon().addClickHandler(new ClickHandler() {
70
			@Override
71
			public void onClick(ClickEvent event) {
248 aurelien 72
				voter(false);
194 aurelien 73
				vue.getBoutonOui().setEnabled(true);
74
				vue.getBoutonNon().setEnabled(false);
186 aurelien 75
			}
76
		});
77
	}
248 aurelien 78
 
79
	public void voter(boolean oui) {
80
 
81
		VoteDetermination vd = new VoteDetermination();
82
		vd.setPropositionDetermination(moyenneVote.getPropositionAssociee());
83
		vd.setContributeur("testeur");
84
		vd.setDate(new Date());
85
 
86
		int valeurVote = oui ? 1 : 0;
87
		vd.setVote(valeurVote);
88
		vd.setId("3");
89
 
90
		vue.getBoutonOui().setEnabled(!oui);
91
		vue.getBoutonNon().setEnabled(oui);
92
 
93
		BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd));
94
	}
140 aurelien 95
}