Subversion Repositories eFlore/Applications.del

Rev

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

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

import org.tela_botanica.del.client.cache.CacheClient;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.gestionhistorique.ConstantesNavigation;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.HasClickHandlers;
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.HTML;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;

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

        private static Binder binder = GWT.create(Binder.class);

        @UiField
        Label nomRetenu, famille, auteur, localite, motsClefs, numNomenclatural, nomCommun, commentaire, milieu, station, referentiel;
        
        @UiField
        Anchor courrielAuteur;
        
        @UiField
        HTML lieuDit;

        @UiField
        Panel zoneStation;
        
        @UiField
        InlineLabel dateReleve, dateTransmission;

        @UiField
        Anchor lienIdentiplante; 
        
        public MetadonneesVue() {
                initWidget(binder.createAndBindUi(this));

                // Le lien ne doit ĂȘtre affichĂ© que sur pictoflora
                String urlCourante = Window.Location.getHref();
                Config config = new Config();
                String urlAppliImg = config.getUrl("pictoflora");
                if (!urlCourante.contains(urlAppliImg)) {
                        lienIdentiplante.setVisible(false);
                }
        }

        public HasText getNomRetenu() {
                return this.nomRetenu;
        }

        public HasText getFamille() {
                return this.famille;
        }

        public HasText getAuteur() {
                return this.auteur;
        }

        public HasText getCourrielAuteur() {
                return this.courrielAuteur;
        }
        
        public void setCourrielAuteurHref(String courriel) {
                this.courrielAuteur.setHref("mailto:"+courriel);
        }
                
        public HasText getDateTransmission() {
                return this.dateTransmission;
        }

        public HasText getDateReleve() {
                return this.dateReleve;
        }

        public HasText getLocalite() {
                return this.localite;
        }

        public HasText getMotsClefs() {
                return this.motsClefs;
        }

        public HasText getNumNomenclatural() {
                return this.numNomenclatural;
        }

        public HasText getNomCommun() {
                return nomCommun;
        }

        public HasText getLieuDit() {
                return lieuDit;
        }

        public HasText getMilieu() {
                return milieu;
        }

        public HasText getCommentaire() {
                return commentaire;
        }

        @Override
        public HasClickHandlers getLienNomRetenu() {
                return nomRetenu;
        }

        public HasClickHandlers getLienFamille() {
                return this.famille;
        }

        public HasClickHandlers getLienAuteur() {
                return this.auteur;
        }
        
        public HasClickHandlers getLienCourrielAuteur() {
                return this.courrielAuteur;
        }

        public HasClickHandlers getLienDateTransmission() {
                return this.dateTransmission;
        }

        public HasClickHandlers getLienDateReleve() {
                return this.dateReleve;
        }

        public HasClickHandlers getLienLocalite() {
                return this.localite;
        }

        public HasClickHandlers getLienMotsClefs() {
                return this.motsClefs;
        }

        public HasClickHandlers getLienNumNomenclatural() {
                return this.numNomenclatural;
        }

        public HasClickHandlers getLienNomCommun() {
                return nomCommun;
        }

        public HasClickHandlers getLienMilieu() {
                return milieu;
        }

        public HasClickHandlers getLienCommentaire() {
                return commentaire;
        }

        @Override
        public void masquerChampsVides() {
                HasText[] champs = {nomRetenu, nomCommun, famille, localite, auteur, motsClefs, commentaire, milieu, lieuDit, dateReleve, dateTransmission};
                for (int i = 0; i < champs.length; i ++) {
                        HasText champ = champs[i];
                        if ("".equals(champ.getText())) {
                                Widget widget = (Widget) champ;
                                widget.getParent().setVisible(false);
                        }
                }
        }

        @Override
        public void setStation(String station) {
                if (station.equals("")) {
                        this.zoneStation.setVisible(false);
                } else {
                        this.station.setText(station);
                }       
        }
        
        public void activerLiens() {
                dateReleve.addStyleName("labelLien");
                nomRetenu.addStyleName("labelLien");
                famille.addStyleName("labelLien");
                auteur.addStyleName("labelLien");
                localite.addStyleName("labelLien");
                motsClefs.addStyleName("labelLien");
                nomCommun.addStyleName("labelLien");
                commentaire.addStyleName("labelLien");
                milieu.addStyleName("labelLien");
        }

        @Override
        public void activerLienAuteur() {
                auteur.addStyleName("labelLien");
        }
        
        @Override
        public void desactiverLienAuteur() {
                auteur.removeStyleName("labelLien");
        }

        public void setLienIdentiplante(String id) {
                lienIdentiplante.setHref(CacheClient.getInstance().getUrlPageSignalerMauvaiseId(id));
                lienIdentiplante.setTarget("_blank");
        }

        @Override
        public HasText getReferentiel() {
                return referentiel;
        }

        @Override
        public void activerLienNomRetenu() {
                // TODO Auto-generated method stub
        }
        
        public void afficherCourrielAuteur() {
                courrielAuteur.setVisible(true);
        }
        public void cacherCourrielAuteur() {
                courrielAuteur.setVisible(false);
        }
}