Subversion Repositories eFlore/Applications.del

Rev

Rev 590 | 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;
9 benjamin 14
import com.google.gwt.user.client.ui.HasWidgets;
277 gduche 15
import com.google.gwt.user.client.ui.IsWidget;
9 benjamin 16
 
323 gduche 17
public class MoteurRechercheImagePresenteur {
9 benjamin 18
 
277 gduche 19
	public interface Vue extends IsWidget {
387 aurelien 20
		public HasWidgets getZoneResultats();
21
		public HasWidgets getZoneRecherche();
454 aurelien 22
		public void ajouterVue(HasWidgets composite);
277 gduche 23
	}
335 benjamin 24
 
277 gduche 25
	private Vue vue;
814 aurelien 26
	private final ProtocoleService protocoleService = new ProtocoleServiceConcret();
590 gduche 27
 
277 gduche 28
	/**
29
	 * Constructeur
30
	 * */
323 gduche 31
	public MoteurRechercheImagePresenteur(Vue vue) {
277 gduche 32
		this.vue = vue;
814 aurelien 33
		//TODO: le code ci dessous sert à ne pas recharger les protocoles
34
		// à chaque fois, voir si on peut le factoriser quelque part
178 benjamin 35
		if (CacheClient.getInstance().getProtocoleCourant() == null) {
814 aurelien 36
			if(CacheClient.getInstance().getListeProtocoles() == null) {
37
				protocoleService.getProtocoles(new ProtocolesCallback() {
38
					@Override
39
					public void surProtocolesRecus(ProtocoleServiceResultat protocolesRecus) {
40
						CacheClient.getInstance().setListeProtocoles(protocolesRecus.getProtocoles());
41
						CacheClient.getInstance().setProtocoleCourant(protocolesRecus.getProtocoles().get(0));
42
					}
43
				});
44
			} else {
45
				CacheClient.getInstance().setProtocoleCourant(CacheClient.getInstance().getListeProtocoles().get(0));
46
			}
178 benjamin 47
		}
9 benjamin 48
	}
49
 
50
	public void go(HasWidgets composite) {
454 aurelien 51
		vue.ajouterVue(composite);
323 gduche 52
		chargerMoteurRechercheAvancee();
178 benjamin 53
	}
590 gduche 54
 
323 gduche 55
	public void chargerMoteurRechercheAvancee() {
453 aurelien 56
		MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(""), ModeRecherche.MODE_IMAGE) {
335 benjamin 57
			public void lancerRecherche() {
58
				chercherImages();
323 gduche 59
			}
60
		};
61
		presenteurRecherche.go(vue.getZoneRecherche());
9 benjamin 62
	}
335 benjamin 63
 
64
	public void chercherImages() {
359 benjamin 65
		vue.getZoneResultats().clear();
379 gduche 66
		new ResultatRechercheImagePresenteur(new ImageServiceConcret(), new ResultatRechercheImageVue()).go(vue.getZoneResultats());
335 benjamin 67
	}
68
 
278 gduche 69
	public HasWidgets getZoneResultats() {
70
		return vue.getZoneResultats();
9 benjamin 71
	}
72
}