Rev 303 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.vues.plateformedetermination.forum;import java.util.List;import org.tela_botanica.del.client.cache.CacheClient;import org.tela_botanica.del.client.modeles.MoyenneVote;import org.tela_botanica.del.client.modeles.PropositionDetermination;import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.EvenementAjoutCommentaire;import org.tela_botanica.del.client.navigation.evenement.ajoutcommentaire.GestionnaireEvenementAjoutCommentaire;import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;import org.tela_botanica.del.client.services.CalculVoteDeterminationService;import org.tela_botanica.del.client.vues.plateformedetermination.DeterminationPresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVotePresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.vote.barrerepartition.BarreRepartitionVoteVue;import com.google.gwt.user.client.ui.FlexTable;import com.google.gwt.user.client.ui.HasWidgets;import com.google.gwt.user.client.ui.IsWidget;public class ForumPresenteur {public interface Vue extends IsWidget {public abstract void initialiserEntetesTableau();public abstract void ajouterLigne(PropositionDetermination determination,IsWidget barreRepartition, IsWidget arbreCommentaires);public abstract HasWidgets getTable();}private Vue vue;private List<PropositionDetermination> determinations;public ForumPresenteur(Vue vue) {this.vue = vue;}public void go(HasWidgets composite) {chargerDeterminations();composite.add(vue.asWidget());gererEvenements();}private void chargerDeterminations() {determinations = CacheClient.getInstance().getObservationCourante().getPropositionsDetermination();vue.initialiserEntetesTableau();for (PropositionDetermination determination : determinations) {ajouterPropositionDetermination(determination);}}private void gererEvenements() {BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {@Overridepublic void onAjoutDetermination(EvenementAjoutDetermination event) {ajouterPropositionDetermination(event.getPropositionDetermination());}});BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {@Overridepublic void onAjoutCommentaire(EvenementAjoutCommentaire event) {//TODO gérer l'ajout de commentaire}});}private void ajouterPropositionDetermination(PropositionDetermination propositionDetermination) {BarreRepartitionVotePresenteur barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());calculerEtAfficherVoteDetermination(barreRepartitionVotePresenteur, propositionDetermination);ArbreCommentairePresenteur arbreCommentairePresenteur = new ArbreCommentairePresenteur(new ArbreCommentaireVue(), propositionDetermination);vue.ajouterLigne(propositionDetermination, barreRepartitionVotePresenteur.getBarreRepartitionVoteVue(), arbreCommentairePresenteur.getArbreCommentaireVue());}private void calculerEtAfficherVoteDetermination(BarreRepartitionVotePresenteur barreRepartitionVotePresenteur, PropositionDetermination propositionDetermination) {MoyenneVote votes = CalculVoteDeterminationService.calculerVoteDetermination(propositionDetermination);barreRepartitionVotePresenteur.afficherVotes(votes);}}