Subversion Repositories eFlore/Applications.del

Rev

Rev 1503 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.vues.pictoflora.plateformedetermination.ligneProtocole;

import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
import org.tela_botanica.del.client.services.rest.VoteProtocoleServiceConcret;

import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;

public class LigneProtocolePresenteur extends Presenteur {

        public interface Vue extends IsWidget {

                HasWidgets getZoneVote();
        }

        private Vue vue;
        private Protocole protocole;

        public LigneProtocolePresenteur(Protocole protocole, Vue vue) {
                this.vue = vue;
                this.protocole = protocole;
                chargerValeursProtocolePourImageCourante();
        }
        
        public void chargerValeursProtocolePourImageCourante(){
                vue.getZoneVote().clear();
                Image imageCourante = CacheClient.getInstance().getImageCourante();
                MoyenneVotePresenteur votePresenteur = new MoyenneVotePresenteur(imageCourante, protocole, new MoyenneVoteVue(), new VoteProtocoleServiceConcret());
                votePresenteur.go(vue.getZoneVote());
        }

        public Vue getVue() {
                return vue;
        }

        public void go(HasWidgets composite) {
                composite.add(vue.asWidget());
                gererEvenements();
        }

        @Override
        protected void gererEvenements() {
                BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {

                        @Override
                        public void onChangementImage(EvenementChangementImageValidation event) {
                                chargerValeursProtocolePourImageCourante();
                        }
                });
        }
}