Rev 276 | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.vues.plateformedetermination;import java.util.List;import org.tela_botanica.del.client.cache.CacheClient;import org.tela_botanica.del.client.composants.presenteur.Presenteur;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.ajoutdetermination.EvenementAjoutDetermination;import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.GestionnaireEvenementAjoutDetermination;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 org.tela_botanica.del.client.vues.plateformedetermination.detail.DetailImageObservationPresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionPresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.formulaireproposition.FormulairePropositionVue;import org.tela_botanica.del.client.vues.plateformedetermination.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumPresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.forum.ForumVue;import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesPresenteur;import org.tela_botanica.del.client.vues.plateformedetermination.vote.EnsembleVotesVue;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.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.HasWidgets;import com.google.gwt.user.client.ui.IsWidget;import com.google.gwt.user.client.ui.VerticalPanel;public class DeterminationPresenteur extends Presenteur {public abstract interface Vue extends IsWidget {public VerticalPanel getForum();public VerticalPanel getDetailImageObservation();public VerticalPanel getFormulaireRechercheEflore();public VerticalPanel getVote();public VerticalPanel getBarreRepartition();public Button getBoutonAjoutProposition();}private Vue vue;BarreRepartitionVotePresenteur barreRepartitionVotePresenteur;public DeterminationPresenteur(Vue vue) {this.vue = vue;}public void go(HasWidgets composite) {new DetailImageObservationPresenteur().go(vue.getDetailImageObservation());new EnsembleVotesPresenteur(new EnsembleVotesVue()).go(vue.getVote());new ForumPresenteur(new ForumVue()).go(vue.getForum());new FormulaireRechercheEflorePresenteur().go(vue.getFormulaireRechercheEflore());barreRepartitionVotePresenteur = new BarreRepartitionVotePresenteur(new BarreRepartitionVoteVue());barreRepartitionVotePresenteur.go(vue.getBarreRepartition());calculerEtAfficherVoteDeterminationPlusPopulaire();composite.add(vue.asWidget());gererEvenements();}private void calculerEtAfficherVoteDeterminationPlusPopulaire() {List<MoyenneVote> votesOrdonnes = CalculVoteDeterminationService.calculerVoteDeterminationPlusPopulaire(CacheClient.getInstance().getObservationCourante().getPropositionsDetermination());if (votesOrdonnes.size() > 0) {barreRepartitionVotePresenteur.afficherVotes(votesOrdonnes.get(0));}}public void gererEvenements() {BusEvenementiel.getInstance().addHandler(EvenementVoteDetermination.TYPE, new GestionnaireEvenementVoteDetermination() {@Overridepublic void onVoteDetermination(VoteDetermination event) {calculerEtAfficherVoteDeterminationPlusPopulaire();}});vue.getBoutonAjoutProposition().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue()));}});BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {@Overridepublic void onAjoutDetermination(EvenementAjoutDetermination event) {if(fenetreModaleEstOuverte()) {fermerFenetreModale();}}});}}