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;
}
}