Subversion Repositories eFlore/Applications.del

Rev

Rev 210 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.vues.rechercheimages.vote;

import java.util.List;

import org.cobogw.gwt.user.client.ui.Rating;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.VoteProtocole;

import com.google.gwt.core.client.GWT;
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.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;

public class MoyenneVoteVue extends Composite {

        // Annotation can be used to change the name of the associated xml file
        // @UiTemplate("MoyenneVoteVue.ui.xml")
        interface MyUiBinder extends UiBinder<Widget, MoyenneVoteVue> {
        }

        private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
        private Rating votes;
        private int valeurOrigine;
        
        @UiField
        FocusPanel voter;

        @UiField
        Label nbVotes;

        @UiField 
        Button boutonVoter, boutonAnnuler;
        
        protected MoyenneVoteVue(List<VoteProtocole> validationDatas) {
                initWidget(uiBinder.createAndBindUi(this));
                
                votes = new Rating(0, 5);
                votes.setReadOnly(false);
                voter.add(votes);

                masquerBoutonAnnuler();
                masquerBoutonVoter();
                rafraichir(validationDatas);
        }
        
        public HasClickHandlers getBoutonVoter() {
                return boutonVoter;
        }
        
        public HasClickHandlers getBoutonAnnuler() {
                return boutonAnnuler;
        }
        
        public HasText getNbVotes() {
                return nbVotes;
        }
        
        public HasClickHandlers getVotes() {
                return votes;
        }
        
        public void afficherBoutonVoter() {
                boutonVoter.setVisible(true);
        }

        public void afficherBoutonAnnuler() {
                boutonAnnuler.setVisible(true);
        }
        
        public void masquerBoutonVoter() {
                boutonVoter.setVisible(false);
        }
        
        public void masquerBoutonAnnuler() {
                boutonAnnuler.setVisible(false);
        }
        
        public void afficherNbVotes () {
                nbVotes.setVisible(true);
        }
        
        public void masquerNbVotes () {
                nbVotes.setVisible(false);
        }
        
        public void reinitialiserVotes() {
                votes.setValue(valeurOrigine);
        }
        
        public void rafraichir(List<VoteProtocole> validationDatas) {
                
                int meanVote = 0;
                int nbVote = 0;
                for (VoteProtocole imageCelValidationData : validationDatas) {
                        meanVote += imageCelValidationData.getVote();
                        nbVote++;
                }
                if (nbVote > 0) {
                        meanVote /= nbVote;
                }
                votes.setValue(nbVote);
                valeurOrigine = nbVote;
                nbVotes.setText(String.valueOf(validationDatas.size()) + " " +I18n.getVocabulary().nbVotes());
        }
}