Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1995 → Rev 2171

/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/metadonnees.css
New file
0,0 → 1,83
.metadonnees {
width:100%;
overflow:hidden;
}
.metadonnees .donnee {
display: inline-block;
}
.labelNomRetenu {
display: none
}
.nomRetenu {
display: none;
font-size: 15px;
color: #598000;
width: 170px;
overflow: auto;
white-space: nowrap;
text-overflow: ellipsis;
}
.lieuDuReleve {
display: block;
}
.paysDuReleve {
display: inline;
}
.zoneFamille {
display: none;
margin-top: 1em;
}
.zoneReferentiel {
margin-top: 1em;
}
.labelReferentiel {
display: inline;
}
.zoneFamille div {
display: inline;
}
.zoneLocalite {
margin-top:5px;
}
.zonePays {
}
.zoneLocalite div {
}
.zoneLieuDit {
display: inline;
}
.zoneStation {
display: inline;
}
.zoneMilieu {
display: inline;
}
.zoneMilieu div {
display: inline
}
.zoneCommentaire {
margin-top:5px;
}
.zoneCommentaire div {
}
.commentaire {
display: block;
height: 94px;
overflow: auto;
text-overflow: ellipsis
}
.zoneDateReleve {
}
 
.zoneAuteur {
}
.zoneAuteur div {
display: inline
}
.zoneDate {
display: inline;
}
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/metadonneesEnLigne.css
New file
0,0 → 1,59
.metadonnees {
width:100%;
}
.metadonnees div {
float:left;
padding:0 3px 0 0;
}
.zoneReferentiel {
margin-top:1em;
}
.famille {
display:none;
}
.nomCommun {
}
.nomCommun:before {
content:"(";
}
.nomCommun:after {
content:")";
}
.metaPart1 {
line-height:20px;
clear:both;
font-size:15px;
}
.metaPart2 {
line-height:20px;
clear:both;
color:#777;
max-width:850px;
}
.metaPart3 {
line-height:20px;
display:none;
max-width:850px;
}
.lieuDit {
}
.zoneLieu {
}
.zoneStation {
padding-left: 5px;
}
.zoneMilieu {
padding-left: 5px;
}
.labelGeo {
font-weight:bold;
}
.espece {
color:#454341;
font-size:18px;
margin-top:-2px;
}
.label {
font-size:12px;
margin-top:3px;
}
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesVue.ui.xml
New file
0,0 → 1,99
<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='res'
type='org.tela_botanica.del.client.resources.Ressources' />
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
 
<ui:style src="metadonnees.css" />
<g:HTMLPanel styleName="{style.metadonnees}">
<!-- Date du relevé -->
<g:HTMLPanel ui:field="zoneDateReleve" styleName="{style.zoneDateReleve}">
<g:InlineLabel styleName="petit gris" text="{constants.observeLe}" />
<g:InlineLabel ui:field="dateReleve" styleName="{style.donnee}"/>
</g:HTMLPanel>
<!-- Nom retenu -->
<g:HTMLPanel ui:field="zoneNomRetenu">
<g:Label styleName="petit gris {style.labelNomRetenu}" text="{constants.nomRetenu}" />
<g:Label ui:field="nomRetenu" styleName="{style.nomRetenu} gras" />
</g:HTMLPanel>
 
<!-- Nom commun -->
<g:HTMLPanel ui:field="zoneNomCommun">
<g:Label styleName="petit gris" text="{constants.nomCommun}" />
<g:Label ui:field="nomCommun" />
</g:HTMLPanel>
<!-- Référentiel -->
<g:HTMLPanel ui:field="zoneReferentiel" styleName="{style.zoneReferentiel}">
<g:Label styleName="petit gris {style.labelReferentiel}" text="{constants.referentiel}" />
<g:Label ui:field="referentiel" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<!-- Famille -->
<g:HTMLPanel ui:field="zoneFamille" styleName="{style.zoneFamille}">
<g:Label styleName="petit gris" text="{constants.metadonneeFamille}" />
<g:Label ui:field="famille" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<!-- Pays -->
<g:HTMLPanel ui:field="zonePays" styleName="{style.zonePays}">
<g:Label styleName="petit gris {style.paysDuReleve}" text="{constants.pays}" />
<g:Label ui:field="pays" styleName="{style.donnee}"/>
</g:HTMLPanel>
<!-- Lieu -->
<g:HTMLPanel ui:field="zoneLocalite" styleName="{style.zoneLocalite}">
<g:Label styleName="petit gris {style.lieuDuReleve}" text="{constants.lieuDuReleve}" />
<g:Label ui:field="localite" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<!-- Lieu-dit -->
<g:HTMLPanel ui:field="zoneLieuDit" styleName="{style.zoneLieuDit}">
<g:HTML ui:field="lieuDit"/>
</g:HTMLPanel>
<!-- Station -->
<g:HTMLPanel ui:field="zoneStation" styleName="{style.zoneStation}">
<g:Label ui:field="station"/>
</g:HTMLPanel>
 
<!-- Milieu -->
<g:HTMLPanel ui:field="zoneMilieu" styleName="{style.zoneMilieu}">
<g:Label ui:field="milieu"/>
</g:HTMLPanel>
 
<!-- Commentaire -->
<g:HTMLPanel ui:field="zoneCommentaire" styleName="{style.zoneCommentaire}">
<g:Label styleName="petit gris" text="{constants.commentaire}" />
<g:Label ui:field="commentaire" styleName="{style.commentaire}"/>
</g:HTMLPanel>
 
<!-- Publié par -->
<g:HTMLPanel ui:field="zoneAuteur" styleName="{style.zoneAuteur}">
<g:Label styleName="petit gris" text="{constants.par}" />
<g:Label ui:field="auteur" styleName="{style.donnee}" title="Voir le profil" />
<g:Anchor ui:field="courrielAuteur" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<!-- Date de transmission -->
<g:HTMLPanel ui:field="zoneDate" styleName="{style.zoneDate}">
<g:InlineLabel styleName="petit gris" text="{constants.publiee}" />
<g:InlineLabel ui:field="dateTransmission" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<!-- Mots-clés/Tag -->
<g:HTMLPanel ui:field="zoneMotsClefs">
<g:Label styleName="petit gris" text="{constants.motsClefs}" />
<g:Label ui:field="motsClefs" styleName="{style.donnee}"/>
</g:HTMLPanel>
 
<g:Label ui:field="numNomenclatural" />
<g:Anchor ui:field="lienIdentiplante" text="{constants.signalerIdentification}" styleName="labelLien"/>
</g:HTMLPanel>
</ui:UiBinder>
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesEnLigneVue.ui.xml
New file
0,0 → 1,79
<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='res'
type='org.tela_botanica.del.client.resources.Ressources' />
<ui:with field="constants" type="org.tela_botanica.del.client.i18n.Vocabulary" />
 
<ui:style src="metadonneesEnLigne.css" />
 
<g:HTMLPanel styleName="{style.metadonnees}">
 
<g:HTMLPanel styleName="{style.metaPart1}">
<g:HTMLPanel styleName="{style.espece}">
<g:Label ui:field="nomRetenu" title="Voir la fiche eFlore" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.nomCommun}">
<g:Label ui:field="nomCommun" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="référentiel" styleName="{style.label}" />
<g:Label ui:field="referentiel" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="{constants.pays}" styleName="{style.label}" />
<g:Label ui:field="pays" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="observée à" styleName="{style.label}" />
<g:Label ui:field="localite" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="le" styleName="{style.label}" />
<g:InlineLabel ui:field="dateReleve" />
</g:HTMLPanel>
<br/>
<g:HTMLPanel>
<g:Label text="par" styleName="{style.label}" />
<g:Label ui:field="auteur" title="Voir le profil" />
</g:HTMLPanel>
<g:HTMLPanel>
(<g:Anchor ui:field="courrielAuteur" />)
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.metaPart2}">
<g:HTMLPanel styleName="{style.zoneLieu}">
<g:Label text="Lieu :" styleName="{style.labelGeo}"/>
<g:HTML ui:field="lieuDit" styleName="{style.lieuDit}" title="{constants.lieuDit}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneStation}">
<g:Label text="Station :" styleName="{style.labelGeo}"/>
<g:Label ui:field="station" title="{constants.station}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.zoneMilieu}">
<g:Label text="Milieu :" styleName="{style.labelGeo}"/>
<g:Label ui:field="milieu" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.metaPart3}">
<g:HTMLPanel styleName="{style.famille}">
<g:Label ui:field="famille" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label ui:field="motsClefs" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label ui:field="numNomenclatural" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label ui:field="commentaire" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="Publié le" styleName="{style.label}" />
<g:InlineLabel ui:field="dateTransmission" />
</g:HTMLPanel>
</g:HTMLPanel>
 
</g:HTMLPanel>
</ui:UiBinder>
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesPresenteur.java
New file
0,0 → 1,355
package org.tela_botanica.del.client.composants.metadonnees;
 
import org.tela_botanica.del.client.cache.CacheClient;
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.ModeRecherche;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.Utilisateur;
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.EvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.detailsimage.EvenementRechercheImage;
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;
 
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
 
public class MetadonneesPresenteur extends Presenteur {
 
public abstract interface Vue extends IsWidget {
public HasText getNomRetenu();
 
public HasClickHandlers getLienNomRetenu();
 
public HasText getNomCommun();
 
public HasText getFamille();
 
public HasText getLocalite();
 
public HasText getLieuDit();
 
public HasText getMilieu();
 
public HasText getCommentaire();
 
public HasText getAuteur();
public HasText getCourrielAuteur();
public void setCourrielAuteurHref(String courriel);
public HasText getDateTransmission();
 
public HasText getMotsClefs();
 
public HasText getNumNomenclatural();
 
public HasText getDateReleve();
public HasText getPays();
 
public HasClickHandlers getLienFamille();
 
public HasClickHandlers getLienAuteur();
public HasClickHandlers getLienCourrielAuteur();
 
public HasClickHandlers getLienDateTransmission();
 
public HasClickHandlers getLienDateReleve();
public HasClickHandlers getLienPays();
public HasClickHandlers getLienLocalite();
 
public HasClickHandlers getLienMotsClefs();
 
public HasClickHandlers getLienNumNomenclatural();
 
public HasClickHandlers getLienNomCommun();
 
public HasClickHandlers getLienMilieu();
 
public HasClickHandlers getLienCommentaire();
public void setStation(String station) ;
public void masquerChampsVides();
public void activerLiens();
public void activerLienAuteur();
public void activerLienNomRetenu();
public void setLienIdentiplante(String id);
 
void desactiverLienAuteur();
 
public HasText getReferentiel();
public void afficherCourrielAuteur();
public void cacherCourrielAuteur();
}
 
private Vue vue;
private Observation observation;
private ModeRecherche modeRecherche;
private boolean avecLiens;
public MetadonneesPresenteur(Vue vue, Observation observation, ModeRecherche modeRecherche, boolean avecLiens) {
this.vue = vue;
this.modeRecherche = modeRecherche;
setObservation(observation);
this.avecLiens = avecLiens;
}
 
public void setObservation(Observation observation) {
this.observation = observation;
}
 
public void chargerMetaDonnees() {
vue.getNomRetenu().setText(observation.getNomRetenu());
vue.getNomCommun().setText(observation.getNomCommun());
vue.getReferentiel().setText(observation.getReferentiel());
vue.getFamille().setText(observation.getFamille());
if(CacheClient.getInstance().getListePays() != null) {
vue.getPays().setText(CacheClient.getInstance().getListePays().get(observation.getPays()));
} else {
vue.getPays().setText(observation.getPays());
}
 
vue.getLocalite().setText(observation.getLocaliteAvecIdFormatee());
vue.getLieuDit().setText(observation.getLieuDit());
vue.setStation(observation.getStation());
vue.getMilieu().setText(observation.getMilieu());
vue.getCommentaire().setText(observation.getCommentaire());
vue.getAuteur().setText(observation.getAuteur());
vue.getDateTransmission().setText(formaterDate(observation.getDateTransmission()));
vue.getDateReleve().setText(formaterDate(observation.getDateReleve()));
gererAffichageCourrielAuteur();
// ATTENTION : Masquer champs vide doit se faire en dernier !
vue.masquerChampsVides();
}
 
public String formaterDate(String dateNonFormatee) {
try {
String dateFormatee = DateTimeFormat.getFormat("dd/MM/yyyy").format(UtilitairesServiceResultat.parserDateObservation(dateNonFormatee));
dateFormatee = (dateFormatee == "01/01/1970") ? "???" : dateFormatee ;
return dateFormatee;
} catch (IllegalArgumentException e) {
return "";
}
}
@Override
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
chargerMetaDonnees();
gererEvenements();
}
 
@Override
protected void gererEvenements() {
if (this.avecLiens) {
if (!observation.getIdAuteur().equals("0")) {
vue.getLienAuteur().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setAuteur(vue.getAuteur().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
}
vue.getLienDateReleve().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setDate(vue.getDateReleve().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienDateTransmission().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setDate(vue.getDateReleve().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienFamille().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setFamille(vue.getFamille().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienLocalite().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setCommune(vue.getLocalite().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienPays().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
if(CacheClient.getInstance().getListePaysInversee() != null) {
informationsRecherche.setPays(CacheClient.getInstance().getListePaysInversee().get(vue.getPays().getText()));
} else {
informationsRecherche.setPays(vue.getPays().getText());
}
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienMotsClefs().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setMotClef(vue.getMotsClefs().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienNomCommun().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setRechercheLibre(vue.getNomCommun().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setRechercheLibre(vue.getNomRetenu().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienMilieu().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setRechercheLibre(vue.getMilieu().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
vue.getLienCommentaire().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
InformationsRecherche informationsRecherche = new InformationsRecherche();
informationsRecherche.setRechercheLibre(vue.getCommentaire().getText());
setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);
History.fireCurrentHistoryState();
}
});
 
vue.setLienIdentiplante(this.observation.getId());
vue.activerLiens();
if (observation.getIdAuteur().equals("0")) {
vue.desactiverLienAuteur();
}
} else {
if (! observation.getIdAuteur().equals("0")) {
vue.getLienAuteur().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
Window.open(config.getUrl("profil") + observation.getIdAuteur(), "Consultation de l'annuaire", config.getInfo("popupOptions"));
}
});
vue.activerLienAuteur();
}
 
if (observation.getNumNomenclatural() != null && ! observation.getNumNomenclatural().equals("0") && ! observation.getNumNomenclatural().equals("")) {
vue.activerLienNomRetenu();
vue.getLienNomRetenu().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
Config config = new Config();
String efloreUrlFicheTpl = config.getUrl("efloreTaxon");
String efloreUrlFiche = efloreUrlFicheTpl.replaceAll("referentiel-nn-num_nom", observation.getReferentiel()+"-nn-"+observation.getNumNomenclatural());
Window.open(efloreUrlFiche, "Fiche eflore", config.getInfo("popupOptions"));
}
});
}
}
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
@Override
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
gererAffichageCourrielAuteur();
}
});
}
public void gererAffichageCourrielAuteur() {
GWT.log("Auteur courrriel :"+observation.getCourrielAuteur());
Utilisateur utilisateur = CacheClient.getInstance().getUtilisateur();
if (utilisateur.etreAdmin()) {
vue.getCourrielAuteur().setText(observation.getCourrielAuteur());
vue.setCourrielAuteurHref(observation.getCourrielAuteur());
vue.afficherCourrielAuteur();
} else {
vue.getCourrielAuteur().setText("");
vue.setCourrielAuteurHref("");
vue.cacherCourrielAuteur();
}
}
 
public void setInfosRechercheEnCacheEtLancerEvenement(InformationsRecherche informationsRecherche) {
switch (modeRecherche) {
case MODE_IMAGE:
CacheClient.getInstance().setPageCouranteRechercheImages(1);
CacheClient.getInstance().setInformationsRechercheImage(informationsRecherche);
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheImage());
break;
case MODE_OBSERVATION:
CacheClient.getInstance().setPageCouranteRechercheObservations(1);
CacheClient.getInstance().setInformationsRechercheObservation(informationsRecherche);
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
default:
break;
}
}
}
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesVue.java
New file
0,0 → 1,236
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, pays, 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;
}
public HasText getPays() {
return this.pays;
}
 
@Override
public HasClickHandlers getLienNomRetenu() {
return nomRetenu;
}
public HasClickHandlers getLienPays() {
return this.pays;
}
 
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 (champ.getText() == null || champ.getText().isEmpty()) {
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");
pays.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);
}
}
/branches/v1.11-magnesium/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesEnLigneVue.java
New file
0,0 → 1,210
package org.tela_botanica.del.client.composants.metadonnees;
 
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.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 MetadonneesEnLigneVue extends Composite implements MetadonneesPresenteur.Vue {
// Gestion d'UiBinder
interface Binder extends UiBinder<Widget, MetadonneesEnLigneVue> {
}
 
private static Binder binder = GWT.create(Binder.class);
 
@UiField
Label nomRetenu, famille, auteur, pays, localite, motsClefs, numNomenclatural, nomCommun, commentaire, milieu, station, referentiel;
@UiField
Anchor courrielAuteur;
@UiField
HTML lieuDit;
@UiField
InlineLabel dateReleve, dateTransmission;
 
 
public MetadonneesEnLigneVue() {
initWidget(binder.createAndBindUi(this));
}
 
public HasText getNomRetenu() {
return this.nomRetenu;
}
 
public HasText getFamille() {
return this.famille;
}
 
public HasText getAuteur() {
return this.auteur;
}
public HasText getCourrielAuteur() {
return 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;
}
public HasText getPays() {
return pays;
}
 
@Override
public HasClickHandlers getLienNomRetenu() {
return nomRetenu;
}
public HasClickHandlers getLienPays() {
return this.pays;
}
 
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, referentiel, nomCommun, famille, localite, auteur, courrielAuteur, motsClefs, commentaire, lieuDit, station, milieu, dateReleve, dateTransmission};
for (int i = 0; i < champs.length; i ++) {
HasText champ = champs[i];
if ("".equals(champ.getText().trim())) {
Widget widget = (Widget) champ;
widget.getParent().setVisible(false);
}
}
}
 
@Override
public void setStation(String station) {
if (station.equals("")) {
this.station.setVisible(false);
} else {
this.station.setText(station);
}
}
@Override
public void activerLiens() {
}
 
@Override
public void activerLienAuteur() {
auteur.addStyleName("labelLien");
}
 
@Override
public void activerLienNomRetenu() {
nomRetenu.addStyleName("labelLien");
}
 
@Override
public void desactiverLienAuteur() {
auteur.removeStyleName("labelLien");
}
 
public void setLienIdentiplante(String id) {}
 
@Override
public HasText getReferentiel() {
return referentiel;
}
public void afficherCourrielAuteur() {
courrielAuteur.getParent().setVisible(true);
courrielAuteur.setVisible(true);
}
public void cacherCourrielAuteur() {
courrielAuteur.getParent().setVisible(false);
courrielAuteur.setVisible(false);
}
}