Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
148 benjamin 1
package org.tela_botanica.del.client.vues.rechercheimages;
9 benjamin 2
 
3
import java.util.List;
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;
8
import org.tela_botanica.del.client.i18n.I18n;
178 benjamin 9
import org.tela_botanica.del.client.modeles.Protocole;
148 benjamin 10
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
311 gduche 11
import org.tela_botanica.del.client.navigation.evenement.ajoutdetermination.EvenementAjoutDetermination;
178 benjamin 12
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
148 benjamin 13
import org.tela_botanica.del.client.navigation.evenement.rechercheimage.EvenementRechercheImage;
291 benjamin 14
import org.tela_botanica.del.client.services.rest.ProtocoleService;
9 benjamin 15
import org.tela_botanica.del.client.utils.MockDatasource;
16
 
178 benjamin 17
import com.google.gwt.event.dom.client.ChangeEvent;
18
import com.google.gwt.event.dom.client.ChangeHandler;
9 benjamin 19
import com.google.gwt.event.dom.client.ClickEvent;
20
import com.google.gwt.event.dom.client.ClickHandler;
277 gduche 21
import com.google.gwt.event.dom.client.HasChangeHandlers;
22
import com.google.gwt.event.dom.client.HasClickHandlers;
23
import com.google.gwt.event.dom.client.HasKeyPressHandlers;
204 gduche 24
import com.google.gwt.event.dom.client.KeyCodes;
25
import com.google.gwt.event.dom.client.KeyPressEvent;
26
import com.google.gwt.event.dom.client.KeyPressHandler;
9 benjamin 27
import com.google.gwt.user.client.ui.HasWidgets;
277 gduche 28
import com.google.gwt.user.client.ui.IsWidget;
9 benjamin 29
 
323 gduche 30
public class MoteurRechercheImagePresenteur {
9 benjamin 31
 
277 gduche 32
	public interface Vue extends IsWidget {
33
 
34
		public abstract void ajouterProtocole(String protocole);
35
		public abstract void selectionnerProtocole(int index);
36
		public abstract HasChangeHandlers getListeProtocoles();
278 gduche 37
		public abstract HasWidgets getZoneResultats();
323 gduche 38
		public abstract HasWidgets getZoneRecherche();
277 gduche 39
	}
40
 
41
	private Vue vue;
42
 
311 gduche 43
	// private final ImageService imageService = MockDatasource.getInstance();
291 benjamin 44
	private final ProtocoleService protocoleService = MockDatasource.getInstance();
311 gduche 45
	private List<Protocole> protocoles;
46
 
47
	//TODO : passer ça en cache
178 benjamin 48
	private String protocoleParDefaut = Protocole.IDENTIFICATION_AUTOMATIQUE;
311 gduche 49
 
277 gduche 50
	/**
51
	 * Constructeur
52
	 * */
323 gduche 53
	public MoteurRechercheImagePresenteur(Vue vue) {
277 gduche 54
		this.vue = vue;
55
 
178 benjamin 56
		if (CacheClient.getInstance().getProtocoleCourant() == null) {
291 benjamin 57
			CacheClient.getInstance().setProtocoleCourant(protocoleService.getProtocole(protocoleParDefaut));
178 benjamin 58
		}
9 benjamin 59
	}
60
 
61
	public void go(HasWidgets composite) {
277 gduche 62
		composite.add(vue.asWidget());
26 gduche 63
		gererEvenements();
178 benjamin 64
		chargerProtocoles();
323 gduche 65
		chargerMoteurRechercheAvancee();
178 benjamin 66
	}
148 benjamin 67
 
178 benjamin 68
	private void chargerProtocoles() {
291 benjamin 69
		protocoles = protocoleService.getProtocoles();
178 benjamin 70
		for (Protocole protocole : protocoles) {
277 gduche 71
			vue.ajouterProtocole(protocole.getNom());
148 benjamin 72
		}
277 gduche 73
		vue.selectionnerProtocole(protocoles.indexOf(CacheClient.getInstance().getProtocoleCourant()));
9 benjamin 74
	}
75
 
26 gduche 76
	public void gererEvenements() {
9 benjamin 77
 
277 gduche 78
		vue.getListeProtocoles().addChangeHandler(new ChangeHandler() {
9 benjamin 79
 
124 gduche 80
			@Override
178 benjamin 81
			public void onChange(ChangeEvent event) {
277 gduche 82
 
83
				Protocole protocoleCourant = (Protocole) event.getSource();
178 benjamin 84
				EvenementChangementProtocole evenement = new EvenementChangementProtocole(protocoleCourant);
85
				BusEvenementiel.getInstance().fireEvent(evenement);
124 gduche 86
			}
178 benjamin 87
		});
9 benjamin 88
	}
311 gduche 89
 
323 gduche 90
	public void chargerMoteurRechercheAvancee() {
91
		MoteurRecherchePresenteur presenteurRecherche = new MoteurRecherchePresenteur(new MoteurRechercheVue(I18n.getVocabulary().rechercherImage())) {
92
			public void lancerRecherche(String termeRecherche) {
93
				CacheClient.getInstance().setEspeceRecherche(termeRecherche);
94
				BusEvenementiel.getInstance().fireEvent(new EvenementRechercheImage(getZoneResultats()));
95
			}
96
		};
97
		presenteurRecherche.go(vue.getZoneRecherche());
9 benjamin 98
	}
277 gduche 99
 
278 gduche 100
	public HasWidgets getZoneResultats() {
101
		return vue.getZoneResultats();
9 benjamin 102
	}
103
}