/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/rss/RssVue.java |
---|
New file |
0,0 → 1,41 |
package org.tela_botanica.del.client.composants.rss; |
import org.tela_botanica.del.client.composants.rss.RssPresenteur.Vue; |
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.ui.Composite; |
import com.google.gwt.user.client.ui.HTML; |
import com.google.gwt.user.client.ui.Widget; |
public class RssVue extends Composite implements Vue { |
// Composants |
@UiField |
HTML lien; |
// Variables |
String label = ""; |
// Interface pour l'association au XML |
interface Binder extends UiBinder<Widget, RssVue> { |
} |
private static Binder uiBinder = GWT.create(Binder.class); |
// Constructeur de la vue |
public RssVue() { |
initWidget(uiBinder.createAndBindUi(this)); |
} |
public void setLien(String lien) { |
String lienHtml = "<a href=\"" + lien + "\" target=\"_blank\">" + label + "</a>"; |
this.lien.setHTML(lienHtml); |
} |
public void setLabelLien(String label) { |
this.label = label; |
} |
} |
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/rss/RssVue.ui.xml |
---|
New file |
0,0 → 1,11 |
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' |
xmlns:g='urn:import:com.google.gwt.user.client.ui' |
ui:generateFormat='com.google.gwt.i18n.rebind.format.PropertiesFormat' |
ui:generateKeys="com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator" |
ui:generateLocales="default"> |
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" /> |
<g:HTMLPanel> |
<g:HTML ui:field="lien" styleName="lienRss"> LIEN RSS ></g:HTML> |
</g:HTMLPanel> |
</ui:UiBinder> |
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/rss/RssPresenteur.java |
---|
New file |
0,0 → 1,63 |
package org.tela_botanica.del.client.composants.rss; |
import org.tela_botanica.del.client.composants.presenteur.Presenteur; |
import org.tela_botanica.del.client.config.Config; |
import org.tela_botanica.del.client.modeles.InformationsRecherche; |
import org.tela_botanica.del.client.modeles.Observation; |
import com.google.gwt.user.client.Window; |
import com.google.gwt.user.client.ui.HasWidgets; |
import com.google.gwt.user.client.ui.IsWidget; |
public class RssPresenteur extends Presenteur { |
// Définition de la vue |
public abstract interface Vue extends IsWidget { |
void setLien(String lien); |
void setLabelLien(String label); |
} |
// Variables |
private Vue vue; |
private String lien = ""; |
private Config config = new Config(); |
//Constructeur |
public RssPresenteur(Vue vue) { |
this.vue = vue; |
} |
public RssPresenteur(Vue vue, InformationsRecherche recherche, String label) { |
this.vue = vue; |
vue.setLabelLien(label); |
genererLien(recherche); |
} |
public RssPresenteur(Vue vue, Observation observation, String label) { |
this.vue = vue; |
vue.setLabelLien(label); |
genererLien(observation); |
} |
public void genererLien(InformationsRecherche recherche) { |
this.lien = config.getUrl("rss") + recherche.versChaineRequete(); |
gererEvenements(); |
} |
public void genererLien(Observation observation) { |
String idObs = observation.getId(); |
this.lien = config.getUrl("rss") + "&masque.observation=" + idObs; |
} |
@Override |
public void go(HasWidgets composite) { |
composite.add(vue.asWidget()); |
gererEvenements(); |
} |
@Override |
protected void gererEvenements() { |
vue.setLien(this.lien); |
} |
} |