Subversion Repositories eFlore/Applications.del

Rev

Rev 939 | 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
 
148 benjamin 3
import org.tela_botanica.del.client.cache.CacheClient;
323 gduche 4
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRecherchePresenteur;
5
import org.tela_botanica.del.client.composants.moteurrecherche.MoteurRechercheVue;
453 aurelien 6
import org.tela_botanica.del.client.modeles.ModeRecherche;
814 aurelien 7
import org.tela_botanica.del.client.modeles.ProtocoleServiceResultat;
344 aurelien 8
import org.tela_botanica.del.client.services.rest.ImageServiceConcret;
291 benjamin 9
import org.tela_botanica.del.client.services.rest.ProtocoleService;
814 aurelien 10
import org.tela_botanica.del.client.services.rest.ProtocoleServiceConcret;
11
import org.tela_botanica.del.client.services.rest.async.ProtocolesCallback;
335 benjamin 12
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImagePresenteur;
379 gduche 13
import org.tela_botanica.del.client.vues.rechercheimages.resultats.ResultatRechercheImageVue;
939 benjamin 14
 
9 benjamin 15
import com.google.gwt.user.client.ui.HasWidgets;
277 gduche 16
import com.google.gwt.user.client.ui.IsWidget;
9 benjamin 17
 
323 gduche 18
public class MoteurRechercheImagePresenteur {
9 benjamin 19
 
277 gduche 20
	public interface Vue extends IsWidget {
387 aurelien 21
		public HasWidgets getZoneResultats();
939 benjamin 22
 
387 aurelien 23
		public HasWidgets getZoneRecherche();
939 benjamin 24
 
454 aurelien 25
		public void ajouterVue(HasWidgets composite);
277 gduche 26
	}
335 benjamin 27
 
277 gduche 28
	private Vue vue;
959 benjamin 29
	private ProtocoleService protocoleService;
939 benjamin 30
 
277 gduche 31
	/**
32
	 * Constructeur
33
	 * */
959 benjamin 34
	public MoteurRechercheImagePresenteur(Vue vue, ProtocoleService protocoleService) {
277 gduche 35
		this.vue = vue;
959 benjamin 36
		this.protocoleService = protocoleService;
939 benjamin 37
		// TODO: le code ci dessous sert à ne pas recharger les protocoles
814 aurelien 38
		// à chaque fois, voir si on peut le factoriser quelque part
178 benjamin 39
		if (CacheClient.getInstance().getProtocoleCourant() == null) {
939 benjamin 40
			if (CacheClient.getInstance().getListeProtocoles() == null) {
814 aurelien 41
				protocoleService.getProtocoles(new ProtocolesCallback() {
939 benjamin 42
 
814 aurelien 43
					@Override
939 benjamin 44
					public void surRetour(ProtocoleServiceResultat protocolesRecus) {
814 aurelien 45
						CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles());
939 benjamin 46
						if (protocolesRecus.getProtocoles().size() > 0) {
47
							CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0));
830 aurelien 48
						} else {
939 benjamin 49
							// TODO afficher message indiquant que la liste des
50
							// protocoles de votes n'est pas fourni
830 aurelien 51
						}
814 aurelien 52
					}
53
				});
54
			} else {
55
				CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0));
56
			}
178 benjamin 57
		}
9 benjamin 58
	}
59
 
60
	public void go(HasWidgets composite) {
454 aurelien 61
		vue.ajouterVue(composite);
323 gduche 62
		chargerMoteurRechercheAvancee();
178 benjamin 63
	}
939 benjamin 64
 
323 gduche 65
	public void chargerMoteurRechercheAvancee() {
453 aurelien 66
		MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) {
335 benjamin 67
			public void lancerRecherche() {
68
				chercherImages();
323 gduche 69
			}
70
		};
71
		presenteurRecherche.go(vue.getZoneRecherche());
9 benjamin 72
	}
335 benjamin 73
 
74
	public void chercherImages() {
359 benjamin 75
		vue.getZoneResultats().clear();
959 benjamin 76
		new ResultatRechercheImagePresenteur(new ImageServiceConcret(), new ProtocoleServiceConcret(), new ResultatRechercheImageVue()).go(vue.getZoneResultats());
335 benjamin 77
	}
78
 
278 gduche 79
	public HasWidgets getZoneResultats() {
80
		return vue.getZoneResultats();
9 benjamin 81
	}
82
}