Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.composants.rss;

import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.Observation;

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

public class RssPresenteur extends Presenteur {

        // Définition de la vue
        public abstract interface Vue extends IsWidget {
                void setLien(String lien);
                void setLabelLien(String label);
        }
        
        // Variables
        private Vue vue;
        private String lien = "";
        private Config config = new Config();
        
        //Constructeur
        public RssPresenteur(Vue vue) {
                this.vue = vue;
        }
        
        public RssPresenteur(Vue vue, InformationsRecherche recherche, String label) {
                this.vue = vue;
                vue.setLabelLien(label);
                genererLien(recherche);
        }
        
        public RssPresenteur(Vue vue, Observation observation, String label) {
                this.vue = vue;
                vue.setLabelLien(label);
                genererLien(observation);
        }
        
        public void genererLien(InformationsRecherche recherche) {
                this.lien =  config.getUrl("rss") + recherche.versChaineRequete();
                gererEvenements();
        }
        
        public void genererLien(Observation observation) {
                String idObs = observation.getId();
                this.lien = config.getUrl("rss") + "&masque.observation=" + idObs;
        }
        
        @Override
        public void go(HasWidgets composite) {
                composite.add(vue.asWidget());
                gererEvenements();
        }

        @Override
        protected void gererEvenements() {
                vue.setLien(this.lien);
        }

}