Subversion Repositories eFlore/Applications.del

Rev

Rev 1060 | Rev 1124 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.composants.votes.barrerepartition;

import org.tela_botanica.del.client.i18n.I18n;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.Widget;

public class BarreRepartitionVoteVue extends Composite implements BarreRepartitionVotePresenteur.Vue {

        interface MyUiBinder extends UiBinder<Widget, BarreRepartitionVoteVue> {
        }

        private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
        private InfoBulleAnim animerVotePrisEnCompte;
        private InfoBulleAnim animerVoteModifie;

        @UiField
        Label nomTaxon, pourcentage;
        @UiField
        Panel barreOui, barreNon, votePrisEnCompte, voteModifie;
        @UiField
        PushButton boutonOui, boutonNon;

        public BarreRepartitionVoteVue() {
                initWidget(uiBinder.createAndBindUi(this));
                votePrisEnCompte.setVisible(false);
                voteModifie.setVisible(false);
                animerVotePrisEnCompte = new InfoBulleAnim(votePrisEnCompte);
                animerVoteModifie = new InfoBulleAnim(voteModifie);
                boutonOui.setTitle(I18n.getVocabulary().JeSuisDaccord());
                boutonNon.setTitle(I18n.getVocabulary().JeNeSuisPasDaccord());
        }

        @Override
        public void afficherVotes(int pourcentage, String nomTaxon, String auteur, boolean estPropositionInitiale) {
                this.nomTaxon.setText(nomTaxon);
                this.nomTaxon.setTitle(nomTaxon + " - " + auteur);
                
                if (estPropositionInitiale) {
                        this.nomTaxon.addStyleName("propositionInitiale");
                }

                if (pourcentage > -1) {

                        int pourcentageNon = 100 - pourcentage;
                        barreOui.setWidth(pourcentage + "%");
                        barreNon.setWidth(pourcentageNon + "%");
                } else {
                        barreNon.setWidth("0px");
                        barreOui.setWidth("0px");
                }
        }

        @Override
        public HasClickHandlers getBoutonOui() {
                return boutonOui;
        }

        @Override
        public HasClickHandlers getBoutonNon() {
                return boutonNon;
        }

        @Override
        public void setVoteOuiEffectue() {
                boutonOui.setEnabled(false);
                boutonOui.addStyleName("boutonVoteOuiDesactive");
                boutonNon.setEnabled(true);
                boutonNon.removeStyleName("boutonVoteNonDesactive");
                boutonOui.setTitle("");
                boutonNon.setTitle(I18n.getVocabulary().JeNeSuisPasDaccord());
        }

        @Override
        public void setVoteNonEffectue() {
                boutonOui.setEnabled(true);
                boutonOui.removeStyleName("boutonVoteOuiDesactive");
                boutonNon.setEnabled(false);
                boutonNon.addStyleName("boutonVoteNonDesactive");
                boutonOui.setTitle(I18n.getVocabulary().JeSuisDaccord());
                boutonNon.setTitle("");
        }

        @Override
        public void afficherVotePrisEnCompte(boolean voteOui) {
                if (voteOui) {
                        votePrisEnCompte.removeStyleName("votePrisEnCompteNon");
                        votePrisEnCompte.setStyleName("votePrisEnCompteOui");
                } else {
                        votePrisEnCompte.removeStyleName("votePrisEnCompteOui");
                        votePrisEnCompte.setStyleName("votePrisEnCompteNon");
                }
                animerVotePrisEnCompte.run(2000);
        }

        public void afficherVoteModifie(boolean voteOui) {
                if (voteOui) {
                        voteModifie.removeStyleName("votePrisEnCompteNon");
                        voteModifie.setStyleName("votePrisEnCompteOui");
                } else {
                        voteModifie.removeStyleName("votePrisEnCompteOui");
                        voteModifie.setStyleName("votePrisEnCompteNon");
                }
                animerVoteModifie.run(2000);
        }

        @Override
        public void desactiverBoutons() {
                boutonNon.setEnabled(false);
                boutonOui.setEnabled(false);
        }

        @Override
        public void activerBoutons() {
                boutonNon.setEnabled(true);
                boutonOui.setEnabled(true);
        }

        @Override
        public void toggleNomEspece() {
                nomTaxon.setVisible(!nomTaxon.isVisible());
        }
        
        @Override
        public void setPourcentage(int pourcentage) {
                this.pourcentage.setText(String.valueOf(pourcentage) + "%");
        }
}