Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.navigation.evenement;

import java.util.List;

import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.Protocole;
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.EvenementComparaisonEflore;
import org.tela_botanica.del.client.navigation.evenement.comparaisoneflore.GestionnaireEvenementComparaisonEflore;
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage;
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.GestionnaireEvenementRechercheImage;
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
import org.tela_botanica.del.client.navigation.evenement.validationobservation.GestionnaireEvenementValidation;

import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;

public class BusEvenementiel extends HandlerManager {

        private static BusEvenementiel instance;

        private BusEvenementiel() {
                super(null);
                instance = this;
                creerHandler();
        }

        public static BusEvenementiel getInstance() {
                if (instance == null) {
                        instance = new BusEvenementiel();
                }
                return instance;
        }

        private void creerHandler() {
                addHandler(EvenementValidation.TYPE, new GestionnaireEvenementValidation() {

                        @Override
                        public void onValidationObservation(EvenementValidation event) {
                                doValidationObservation(event.getObservation());
                        }
                });

                addHandler(EvenementComparaisonEflore.TYPE, new GestionnaireEvenementComparaisonEflore() {

                        @Override
                        public void onComparaisonEflore(EvenementComparaisonEflore event) {
                                doComparaisonAvecEflore(event.getTaxonDemande());
                        }
                });

                addHandler(EvenementRechercheImage.TYPE, new GestionnaireEvenementRechercheImage() {

                        @Override
                        public void onRechercheImage(EvenementRechercheImage event) {
                                doRechercheImage();
                        }
                });

                addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {

                        @Override
                        public void onChangementProtocole(EvenementChangementProtocole event) {
                                doChangementProtocole(event.getProtocole());
                        }
                });
        }

        private void doValidationObservation(Observation observation) {
                CacheClient.getInstance().setObservationCourante(observation);
                History.newItem(ConstantesNavigation.PAGE_VALIDATION, true);
                History.fireCurrentHistoryState();
        }

        private void doComparaisonAvecEflore(String taxon) {
                CacheClient.getInstance().setTaxonPourRechercheEflore(taxon);
                History.newItem(ConstantesNavigation.PAGE_COMPARAISON_EFLORE, true);
                History.fireCurrentHistoryState();
        }

        private void doRechercheImage() {
                History.newItem(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES, true);
                History.fireCurrentHistoryState();
        }

        private void doChangementProtocole(Protocole protocole) {
                CacheClient.getInstance().setProtocoleCourant(protocole);
                History.newItem(ConstantesNavigation.PAGE_RESULTAT_RECHERCHE_IMAGES, true);
                History.fireCurrentHistoryState();
        }

}