New file |
0,0 → 1,106 |
package org.tela_botanica.del.client.composants.votes.barrerepartition; |
|
import java.util.Date; |
|
import org.tela_botanica.del.client.cache.CacheClient; |
import org.tela_botanica.del.client.modeles.MoyenneVote; |
import org.tela_botanica.del.client.modeles.VoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination; |
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination; |
import org.tela_botanica.del.client.services.CalculVoteDeterminationService; |
|
import com.google.gwt.event.dom.client.ClickEvent; |
import com.google.gwt.event.dom.client.ClickHandler; |
import com.google.gwt.event.dom.client.HasClickHandlers; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
|
public class BarreRepartitionVotePresenteur { |
|
public interface Vue extends IsWidget { |
public void afficherVotes(int pourcentage, String NomTaxon); |
public HasClickHandlers getBoutonOui(); |
public HasClickHandlers getBoutonNon(); |
public void setVoteOuiEffectue(); |
public void setVoteNonEffectue(); |
} |
|
private Vue vue; |
private MoyenneVote moyenneVote; |
|
public BarreRepartitionVotePresenteur(Vue vue) { |
this.vue = vue; |
gererEvenements(); |
} |
|
public void go(HasWidgets container) { |
container.add(vue.asWidget()); |
} |
|
public void afficherVotes(MoyenneVote moyenneVote) { |
this.moyenneVote = moyenneVote; |
int score = moyenneVote.getScore(); |
String intitule =moyenneVote.getIntituleAssocie(); |
vue.afficherVotes(score, intitule); |
} |
|
public Vue getBarreRepartitionVoteVue() { |
return vue; |
} |
|
public MoyenneVote getMoyenneVote() { |
return moyenneVote; |
} |
|
public void gererEvenements() { |
|
BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() { |
@Override |
public void onVoteDetermination(VoteDetermination event) { |
if(event.getPropositionDetermination().equals(moyenneVote.getPropositionAssociee())) { |
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(event); |
moyenneVote = CalculVoteDeterminationService.calculerVoteDetermination(moyenneVote.getPropositionAssociee()); |
afficherVotes(moyenneVote); |
} |
} |
}); |
|
vue.getBoutonOui().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(true); |
} |
}); |
|
vue.getBoutonNon().addClickHandler(new ClickHandler() { |
@Override |
public void onClick(ClickEvent event) { |
voter(false); |
vue.setVoteNonEffectue(); |
} |
}); |
} |
|
public void voter(boolean oui) { |
|
VoteDetermination vd = new VoteDetermination(); |
vd.setPropositionDetermination(moyenneVote.getPropositionAssociee()); |
vd.setContributeur(CacheClient.getInstance().getUtilisateur().getId()); |
vd.setDate(new Date()); |
|
int valeurVote = oui ? 1 : 0; |
vd.setVote(valeurVote); |
vd.setId(CacheClient.getInstance().getUtilisateur().getId()); |
|
if(oui) { |
vue.setVoteOuiEffectue(); |
} else { |
vue.setVoteNonEffectue(); |
} |
|
moyenneVote.getPropositionAssociee().ajouterVoteDetermination(vd); |
BusEvenementiel.getInstance().fireEvent(new EvenementVoteDetermination(vd)); |
} |
} |