Rev 1282 | Rev 1531 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.composants.metadonnees;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;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.gestionhistorique.GestionnaireHistorique;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.navigation.evenement.BusEvenementiel;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.navigation.evenement.validationobservation.EvenementValidation;import org.tela_botanica.del.client.utils.UtilitairesServiceResultat;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 getDateTransmission();public HasText getMotsClefs();public HasText getNumNomenclatural();public HasText getDateReleve();public HasClickHandlers getLienFamille();public HasClickHandlers getLienAuteur();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 setLienIdentiplante(String id);void desactiverLienAuteur();}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.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()));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();}});final Observation monobservation = this.observation;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("annuaire") + observation.getIdAuteur(), "Consultation de l'annuaire", null);}});vue.activerLienAuteur();}}}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;}}}