Subversion Repositories eFlore/Applications.cel

Rev

Rev 2411 | Blame | Last modification | View Log | RSS feed

package org.tela_botanica.client.vues.observation.indicateurs;

import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.observation.ObservationMediateur;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Label;
import com.gwtext.client.widgets.Panel;

public class LienExterneVue extends Panel implements Rafraichissable {

        private String refTax = "";

        private String numTax = "";
        
        private String efloreBaseUrl = "";
        
        private Label titreLien = new Label(Msg.get("voir-fiche-eflore"));
        
        public LienExterneVue(ObservationMediateur om) {

                refTax = verifierEtFormaterReferentiel(om.getRefTaxSelectionne().getCode());
                efloreBaseUrl = Configuration.getLienEfloreBaseUrl();
                
                titreLien.setVisible(false);
                
                setBorder(false);
                
                titreLien.addClickHandler(new ClickHandler() {

                        @Override
                        public void onClick(ClickEvent event) {
                                if(!numTax.trim().equals("")) {
                                        Window.open("http://"+efloreBaseUrl+"/"+refTax+"-nn-"+numTax,"","");
                                }
                        }
                        
                });
                
                titreLien.setStyleName("lien_actif");
                
                add(titreLien);
        }
        
        @Override
        public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {

                String[] nouvellesDonnees = (String[]) nouvelleDonnees;
                String nouveauNumTax = nouvellesDonnees[0];
                String codeRef = nouvellesDonnees[1];

                if(nouveauNumTax.trim().equals("") || codeRef.trim().equals("autre") || nouveauNumTax.trim().equals("0") || codeRef.trim().equals("")) {
                        titreLien.setVisible(false);
                } else {
                        if(!titreLien.isVisible()) {
                                titreLien.setVisible(true);
                        } 
                        
                        numTax = nouveauNumTax;
                        refTax = verifierEtFormaterReferentiel(codeRef);
                }
                
        }

        public String verifierEtFormaterReferentiel(String refTax) {
                // Sert simplement à exclure les vieux formats de référentiel
                // du genre bdtfx:v2.00 ou bien bdnff.v1_01 etc...
                // TODO: nettoyer également la base de données
                String retour = refTax;
                if(retour != null && !retour.isEmpty()) {
                        if (retour.contains(":")) {
                                retour = retour.split(":")[0];
                        }
                        
                        if(retour.contains(".")) {
                                retour = retour.split(".")[0];
                        }
                }
                return retour;
        }
}