Subversion Repositories eFlore/Applications.del

Rev

Rev 959 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
478 benjamin 1
package org.tela_botanica.del.client.vues.rechercheimages.moteur;
9 benjamin 2
 
1010 aurelien 3
import javax.validation.Configuration;
4
 
148 benjamin 5
import org.tela_botanica.del.client.cache.CacheClient;
323 gduche 6
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
7
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
1010 aurelien 8
import org.tela_botanica.del.client.config.Config;
453 aurelien 9
import org.tela_botanica.del.client.modeles.ModeRecherche;
814 aurelien 10
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
344 aurelien 11
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
291 benjamin 12
import org.tela_botanica.del.client.services.rest.ProtocoleService;
814 aurelien 13
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
14
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
335 benjamin 15
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur;
379 gduche 16
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImageVue;
939 benjamin 17
 
1010 aurelien 18
import com.google.gwt.event.dom.client.ClickEvent;
19
import com.google.gwt.event.dom.client.ClickHandler;
20
import com.google.gwt.event.dom.client.HasClickHandlers;
21
import com.google.gwt.user.client.Window;
9 benjamin 22
import com.google.gwt.user.client.ui.HasWidgets;
277 gduche 23
import com.google.gwt.user.client.ui.IsWidget;
9 benjamin 24
 
323 gduche 25
public class MoteurRechercheImagePresenteur {
9 benjamin 26
 
277 gduche 27
	public interface Vue extends IsWidget {
387 aurelien 28
		public HasWidgets getZoneResultats();
939 benjamin 29
 
387 aurelien 30
		public HasWidgets getZoneRecherche();
939 benjamin 31
 
454 aurelien 32
		public void ajouterVue(HasWidgets composite);
1010 aurelien 33
 
34
		HasClickHandlers getLienAjoutObservation();
277 gduche 35
	}
335 benjamin 36
 
277 gduche 37
	private Vue vue;
959 benjamin 38
	private ProtocoleService protocoleService;
939 benjamin 39
 
277 gduche 40
	/**
41
	 * Constructeur
42
	 * */
959 benjamin 43
	public MoteurRechercheImagePresenteur(Vue vue, ProtocoleService protocoleService) {
277 gduche 44
		this.vue = vue;
959 benjamin 45
		this.protocoleService = protocoleService;
939 benjamin 46
		// TODO: le code ci dessous sert à ne pas recharger les protocoles
814 aurelien 47
		// à chaque fois, voir si on peut le factoriser quelque part
178 benjamin 48
		if (CacheClient.getInstance().getProtocoleCourant() == null) {
939 benjamin 49
			if (CacheClient.getInstance().getListeProtocoles() == null) {
814 aurelien 50
				protocoleService.getProtocoles(new ProtocolesCallback() {
939 benjamin 51
 
814 aurelien 52
					@Override
939 benjamin 53
					public void surRetour(ProtocoleServiceResultat protocolesRecus) {
814 aurelien 54
						CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles());
939 benjamin 55
						if (protocolesRecus.getProtocoles().size() > 0) {
56
							CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0));
830 aurelien 57
						} else {
939 benjamin 58
							// TODO afficher message indiquant que la liste des
59
							// protocoles de votes n'est pas fourni
830 aurelien 60
						}
814 aurelien 61
					}
62
				});
63
			} else {
64
				CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0));
65
			}
178 benjamin 66
		}
1010 aurelien 67
		gererEvenements();
9 benjamin 68
	}
1010 aurelien 69
 
70
	private void gererEvenements() {
71
		vue.getLienAjoutObservation().addClickHandler(new ClickHandler() {
72
			@Override
73
			public void onClick(ClickEvent event) {
74
				Config config = new Config();
75
				Window.open(config.getUrl("applisaisie"), "Saisie d'une nouvelle observation", null);
76
			}
77
		});
78
	}
9 benjamin 79
 
80
	public void go(HasWidgets composite) {
454 aurelien 81
		vue.ajouterVue(composite);
323 gduche 82
		chargerMoteurRechercheAvancee();
178 benjamin 83
	}
939 benjamin 84
 
323 gduche 85
	public void chargerMoteurRechercheAvancee() {
453 aurelien 86
		MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) {
335 benjamin 87
			public void lancerRecherche() {
88
				chercherImages();
323 gduche 89
			}
90
		};
91
		presenteurRecherche.go(vue.getZoneRecherche());
9 benjamin 92
	}
335 benjamin 93
 
94
	public void chercherImages() {
359 benjamin 95
		vue.getZoneResultats().clear();
959 benjamin 96
		new ResultatRechercheImagePresenteur(new ImageServiceConcret(), new ProtocoleServiceConcret(), new ResultatRechercheImageVue()).go(vue.getZoneResultats());
335 benjamin 97
	}
98
 
278 gduche 99
	public HasWidgets getZoneResultats() {
100
		return vue.getZoneResultats();
9 benjamin 101
	}
102
}