Subversion Repositories eFlore/Applications.del

Rev

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

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

import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.modeles.Observation;
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.detailsimage.EvenementRechercheImage;
import org.tela_botanica.del.client.navigation.evenement.detailsimage.GestionnaireEvenementRechercheImage;
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.GestionnaireEvenementRechercheObservation;
import org.tela_botanica.del.client.navigation.evenement.validationobservation.EvenementValidation;
import org.tela_botanica.del.client.navigation.evenement.validationobservation.GestionnaireEvenementValidation;
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.EvenementValidationPictoflora;
import org.tela_botanica.del.client.navigation.evenement.validationobservationpictoflora.GestionnaireEvenementValidationPictoflora;

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

public class BusEvenementiel extends HandlerManager {

        private static BusEvenementiel instance;
        private CacheClient cache;
        
        private BusEvenementiel() {
                super(null);
                instance = this;
                creerHandler();
                this.cache = CacheClient.getInstance();
        }

        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());
                                cache.setPageCourante(ConstantesNavigation.PAGE_VALIDATION);
                        }
                });
                
                addHandler(EvenementValidationPictoflora.TYPE, new GestionnaireEvenementValidationPictoflora() {
                        
                        @Override
                        public void onValidationObservation(EvenementValidationPictoflora event) {
                                doValidationObservationPictoflora(event.getObservation());
                                cache.setPageCourante(ConstantesNavigation.PAGE_VALIDATION_PICTOFLORA);
                        }
                });
                
                addHandler(EvenementComparaisonEflore.TYPE, new GestionnaireEvenementComparaisonEflore() {

                        @Override
                        public void onComparaisonEflore(EvenementComparaisonEflore event) {
                                doComparaisonAvecEflore(event.getTaxonDemande());
                                cache.setPageCourante(ConstantesNavigation.PAGE_COMPARAISON_EFLORE);
                        }
                });

                addHandler(EvenementRechercheImage.TYPE, new GestionnaireEvenementRechercheImage() {

                        @Override
                        public void onRechercheImage(EvenementRechercheImage event) {
                                doRechercheImage();
                                cache.setPageCourante(ConstantesNavigation.PAGE_RECHERCHE_IMAGES);
                        }
                });

                addHandler(EvenementRechercheObservation.TYPE, new GestionnaireEvenementRechercheObservation() {

                        @Override
                        public void onRechercheObservation(EvenementRechercheObservation event) {
                                doRechercheObservation();
                                cache.setPageCourante(ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS);
                        }
                });

        }

        private void doValidationObservation(Observation observation) {
                CacheClient.getInstance().setObservationCourante(observation);
                History.newItem(ConstantesNavigation.PAGE_VALIDATION + "~" + observation.getId(), true);
        }
        
        private void doValidationObservationPictoflora(Observation observation) {
                CacheClient.getInstance().setObservationCourante(observation);
                History.newItem(ConstantesNavigation.PAGE_VALIDATION_PICTOFLORA + "~" + observation.getId(), true);
        }

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

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

        private void doRechercheObservation() { 
                History.newItem(ConstantesNavigation.PAGE_RECHERCHE_OBSERVATIONS, true);
        }

}