Subversion Repositories eFlore/Applications.del

Rev

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

package org.tela_botanica.del.client.vues.entete.liens;

import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
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.utils.UtilitairesServiceResultat;

import com.gargoylesoftware.htmlunit.Cache;
import com.google.gwt.core.client.GWT;
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.Anchor;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
import com.google.web.bindery.autobean.vm.Configuration;

public class LiensVue extends Composite implements LiensPresenteur.Vue {
        
        // Gestion d'UiBinder
        interface Binder extends UiBinder<Widget, LiensVue> {}

        private static Binder binder = GWT.create(Binder.class);
        
        @UiField Panel zonePartageUrl;
        @UiField Anchor ajouterObservation, aidePictoflora, aide, participerProjet;
        
        public LiensVue() {
                initWidget(binder.createAndBindUi(this));
                gererAffichageEnFonctionDeLaNavigation();
                gererEvenements();
        }
        
        public HasWidgets getZonePartageUrl() {
                return zonePartageUrl;
        }
        
        public void gererAffichageEnFonctionDeLaNavigation() {
                CacheClient cache = CacheClient.getInstance();
                String pageCourante = cache.getPageCourante();
                
                if (pageCourante.startsWith(ConstantesNavigation.PICTOFLORA) || pageCourante.startsWith(ConstantesNavigation.PAGE_RECHERCHE_IMAGES)
                                || pageCourante.startsWith(ConstantesNavigation.PAGE_VALIDATION_PICTOFLORA)) {
                        //SI PICTO
                        ajouterObservation.setVisible(false);
                        aide.setVisible(false);
                        setLienSaisieProjet();
                } else {
                        aidePictoflora.setVisible(false);
                        participerProjet.setVisible(false);
                }
        }
        
        private void setLienSaisieProjet() {
                participerProjet.setHref(formaterLienSaisieProjetUrl());
                participerProjet.setTitle(I18n.getVocabulary().legendeAjouterImage());
        }
        
        private String formaterLienSaisieProjetUrl() {
                String urlSaisieProjet = I18n.getVocabulary().lienAppliSaisie();
                if(CacheClient.getInstance().getProtocoleCourant() != null) {
                        String tagProtocole = CacheClient.getInstance().getProtocoleCourant().getTag();
                        urlSaisieProjet = I18n.getVocabulary().lienAppliSaisieProjetUrl();
                        urlSaisieProjet = urlSaisieProjet.replace("{projet}", tagProtocole);
                }
                return urlSaisieProjet;
        }
        
        private void gererEvenements() {
                BusEvenementiel.getInstance().addHandler(EvenementChangementProtocole.TYPE, new GestionnaireEvenementChangementProtocole() {
                        @Override
                        public void onChangementProtocole(EvenementChangementProtocole event) {
                                setLienSaisieProjet();
                        }
                });
        }
}