Rev 1667 | Rev 1862 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
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 HasClickHandlers getLienFamille();public HasClickHandlers getLienAuteur();public HasClickHandlers getLienCourrielAuteur();public HasClickHandlers getLienDateTransmission();public HasClickHandlers getLienDateReleve();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());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 "";}}@Overridepublic void go(HasWidgets composite) {composite.add(vue.asWidget());chargerMetaDonnees();//if (this.avecLiens) {gererEvenements();//}}@Overrideprotected void gererEvenements() {if (this.avecLiens) {if (!observation.getIdAuteur().equals("0")) {vue.getLienAuteur().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setAuteur(vue.getAuteur().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});}vue.getLienDateReleve().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setDate(vue.getDateReleve().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienDateTransmission().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setDate(vue.getDateReleve().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienFamille().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setFamille(vue.getFamille().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienLocalite().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setCommune(vue.getLocalite().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienMotsClefs().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setMotClef(vue.getMotsClefs().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienNomCommun().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setRechercheLibre(vue.getNomCommun().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienNomRetenu().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setRechercheLibre(vue.getNomRetenu().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienMilieu().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent arg0) {InformationsRecherche informationsRecherche = new InformationsRecherche();informationsRecherche.setRechercheLibre(vue.getMilieu().getText());setInfosRechercheEnCacheEtLancerEvenement(informationsRecherche);History.fireCurrentHistoryState();}});vue.getLienCommentaire().addClickHandler(new ClickHandler() {@Overridepublic 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() {@Overridepublic 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() {@Overridepublic void onClick(ClickEvent arg0) {Config config = new Config();String efloreUrlFicheTpl = config.getUrl("efloreTaxon");String efloreUrlFiche = efloreUrlFicheTpl.replaceAll("referentiel-nn-num_nom", observation.getReferentiel().substring(0,5) + "-nn-" + observation.getNumNomenclatural());Window.open(efloreUrlFiche, "Fiche eflore", config.getInfo("popupOptions"));}});}}BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {@Overridepublic 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;}}}