Rev 1206 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.vues.pictoflora.moteur;import javax.validation.Configuration;import org.tela_botanica.del.client.cache.CacheClient;import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;import org.tela_botanica.del.client.composants.partageurl.PartageUrlPresenteur;import org.tela_botanica.del.client.composants.partageurl.PartageUrlVue;import org.tela_botanica.del.client.config.Config;import org.tela_botanica.del.client.modeles.ModeRecherche;import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;import org.tela_botanica.del.client.services.rest.ImageServiceConcret;import org.tela_botanica.del.client.services.rest.ProtocoleService;import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraPresenteur;import org.tela_botanica.del.client.vues.pictoflora.resultats.ResultatPictofloraVue;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.user.client.Window;import com.google.gwt.user.client.ui.HasWidgets;import com.google.gwt.user.client.ui.IsWidget;import com.google.gwt.user.client.ui.Panel;public class MoteurPictofloraPresenteur {public interface Vue extends IsWidget {public HasWidgets getZoneResultats();public HasWidgets getZoneRecherche();public void ajouterVue(HasWidgets composite);public Panel getZonePartageUrl();HasClickHandlers getLienAjoutObservation();}private Vue vue;private ProtocoleService protocoleService;/*** Constructeur* */public MoteurPictofloraPresenteur(Vue vue, ProtocoleService protocoleService) {this.vue = vue;this.protocoleService = protocoleService;PartageUrlPresenteur presenteurPartageUrl = new PartageUrlPresenteur(new PartageUrlVue());presenteurPartageUrl.go(vue.getZonePartageUrl());// TODO: le code ci dessous sert à ne pas recharger les protocoles// à chaque fois, voir si on peut le factoriser quelque partif (CacheClient.getInstance().getProtocoleCourant() == null) {if (CacheClient.getInstance().getListeProtocoles() == null) {protocoleService.getProtocoles(new ProtocolesCallback() {@Overridepublic void surRetour(ProtocoleServiceResultat protocolesRecus) {CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles());if (protocolesRecus.getProtocoles().size() > 0) {CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0));} else {// TODO afficher message indiquant que la liste des// protocoles de votes n'est pas fourni}}});} else {CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0));}}gererEvenements();}private void gererEvenements() {vue.getLienAjoutObservation().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {Config config = new Config();Window.open(config.getUrl("applisaisie"), "Saisie d'une nouvelle observation", null);}});}public void go(HasWidgets composite) {vue.ajouterVue(composite);chargerMoteurRechercheAvancee();}public void chargerMoteurRechercheAvancee() {MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) {public void lancerRecherche() {chercherImages();}};presenteurRecherche.go(vue.getZoneRecherche());}public void chercherImages() {vue.getZoneResultats().clear();new ResultatPictofloraPresenteur(new ImageServiceConcret(), new ProtocoleServiceConcret(), new ResultatPictofloraVue()).go(vue.getZoneResultats());}public HasWidgets getZoneResultats() {return vue.getZoneResultats();}}