Subversion Repositories eFlore/Applications.cel

Rev

Rev 2411 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
318 aurelien 1
package org.tela_botanica.client.vues.observation.indicateurs;
2
 
2627 mathias 3
import org.tela_botanica.client.i18n.Msg;
318 aurelien 4
import org.tela_botanica.client.interfaces.Rafraichissable;
989 aurelien 5
import org.tela_botanica.client.modeles.objets.Configuration;
318 aurelien 6
import org.tela_botanica.client.observation.ObservationMediateur;
7
 
338 aurelien 8
import com.google.gwt.event.dom.client.ClickEvent;
9
import com.google.gwt.event.dom.client.ClickHandler;
318 aurelien 10
import com.google.gwt.user.client.Window;
11
import com.google.gwt.user.client.ui.Label;
12
import com.gwtext.client.widgets.Panel;
13
 
14
public class LienExterneVue extends Panel implements Rafraichissable {
2627 mathias 15
 
318 aurelien 16
	private String refTax = "";
2168 mathias 17
 
318 aurelien 18
	private String numTax = "";
19
 
20
	private String efloreBaseUrl = "";
21
 
2627 mathias 22
	private Label titreLien = new Label(Msg.get("voir-fiche-eflore"));
318 aurelien 23
 
24
	public LienExterneVue(ObservationMediateur om) {
2168 mathias 25
 
2411 aurelien 26
		refTax = verifierEtFormaterReferentiel(om.getRefTaxSelectionne().getCode());
318 aurelien 27
		efloreBaseUrl = Configuration.getLienEfloreBaseUrl();
28
 
29
		titreLien.setVisible(false);
30
 
31
		setBorder(false);
32
 
338 aurelien 33
		titreLien.addClickHandler(new ClickHandler() {
318 aurelien 34
 
1292 aurelien 35
			@Override
338 aurelien 36
			public void onClick(ClickEvent event) {
318 aurelien 37
				if(!numTax.trim().equals("")) {
1454 aurelien 38
					Window.open("http://"+efloreBaseUrl+"/"+refTax+"-nn-"+numTax,"","");
318 aurelien 39
				}
40
			}
338 aurelien 41
 
318 aurelien 42
		});
43
 
44
		titreLien.setStyleName("lien_actif");
45
 
46
		add(titreLien);
47
	}
48
 
1292 aurelien 49
	@Override
2168 mathias 50
	public void rafraichir(Object nouvelleDonnees, boolean repandreRaffraichissement) {
51
 
52
		String[] nouvellesDonnees = (String[]) nouvelleDonnees;
53
		String nouveauNumTax = nouvellesDonnees[0];
54
		String codeRef = nouvellesDonnees[1];
55
 
2169 mathias 56
		if(nouveauNumTax.trim().equals("") || codeRef.trim().equals("autre") || nouveauNumTax.trim().equals("0") || codeRef.trim().equals("")) {
57
			titreLien.setVisible(false);
58
		} else {
318 aurelien 59
			if(!titreLien.isVisible()) {
60
				titreLien.setVisible(true);
61
			}
62
 
2168 mathias 63
			numTax = nouveauNumTax;
2411 aurelien 64
			refTax = verifierEtFormaterReferentiel(codeRef);
318 aurelien 65
		}
66
 
67
	}
68
 
2411 aurelien 69
	public String verifierEtFormaterReferentiel(String refTax) {
70
		// Sert simplement à exclure les vieux formats de référentiel
71
		// du genre bdtfx:v2.00 ou bien bdnff.v1_01 etc...
72
		// TODO: nettoyer également la base de données
73
		String retour = refTax;
74
		if(retour != null && !retour.isEmpty()) {
75
			if (retour.contains(":")) {
76
				retour = retour.split(":")[0];
77
			}
78
 
79
			if(retour.contains(".")) {
80
				retour = retour.split(".")[0];
81
			}
82
		}
83
		return retour;
84
	}
318 aurelien 85
}