Subversion Repositories eFlore/Applications.del

Rev

Rev 325 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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