Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
1151 aurelien 1
package org.tela_botanica.del.client.composants.motsclesimages;
1152 aurelien 2
import java.util.Iterator;
1151 aurelien 3
import java.util.List;
4
 
5
import org.tela_botanica.del.client.cache.CacheClient;
6
import org.tela_botanica.del.client.composants.motsclesimages.formulairesaisiemotclesimages.FormulaireSaisieMotsClesImagePresenteur;
7
import org.tela_botanica.del.client.modeles.InformationsRecherche;
8
import org.tela_botanica.del.client.modeles.ModeTri;
9
import org.tela_botanica.del.client.navigation.evenement.BusEvenementiel;
10
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.EvenementAjoutMotCleImage;
11
import org.tela_botanica.del.client.navigation.evenement.ajoutmotcleimage.GestionnaireEvenementAjoutMotCleImage;
12
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.EvenementChangementProtocole;
13
import org.tela_botanica.del.client.navigation.evenement.changementprotocole.GestionnaireEvenementChangementProtocole;
14
import org.tela_botanica.del.client.services.rest.MotsClesService;
15
import org.tela_botanica.del.client.services.rest.MotsClesServiceConcret;
16
import org.tela_botanica.del.client.services.rest.async.ListeMotsClesImageCallBack;
17
 
18
import com.google.gwt.user.client.Window;
19
import com.google.gwt.user.client.ui.HasWidgets;
20
import com.google.gwt.user.client.ui.IsWidget;
21
 
22
public class MotsClesImagePresenteur {
23
 
24
	List<String> motsCles;
25
	FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur;
26
	MotsClesService motsClesService;
27
	String idImage;
28
 
29
	public interface Vue extends IsWidget {
30
		public void afficherMotsCles(List<String> listeMotsCles);
31
		HasWidgets getZoneSaisieMotsCles();
32
	}
33
 
34
	private Vue vue;
35
 
36
	public MotsClesImagePresenteur(MotsClesService motsClesService, FormulaireSaisieMotsClesImagePresenteur formulaireSaisieMotsClesPresenteur, Vue vue) {
37
		this.formulaireSaisieMotsClesPresenteur = formulaireSaisieMotsClesPresenteur;
38
		this.vue = vue;
39
		this.motsClesService = motsClesService;
40
		gererEvemenements();
41
	}
42
 
43
	public void go(HasWidgets composite) {
44
		formulaireSaisieMotsClesPresenteur.go(vue.getZoneSaisieMotsCles());
45
		composite.add(vue.asWidget());
46
	}
47
 
48
	public void chargerMotsCles(String idImage) {
49
		this.idImage = idImage;
50
		if(motsCles == null) {
51
			MotsClesService motsClesService = new MotsClesServiceConcret();
52
			motsClesService.getMotsClesImage(idImage, new ListeMotsClesImageCallBack() {
53
				@Override
54
				public void surRetour(List<String> objetRetour) {
55
					motsCles = objetRetour;
56
					vue.afficherMotsCles(motsCles);
57
				}
58
			});
59
		}
60
	}
61
 
62
	public void gererEvemenements() {
63
		BusEvenementiel.getInstance().addHandler(EvenementAjoutMotCleImage.TYPE, new GestionnaireEvenementAjoutMotCleImage() {
64
			@Override
65
			public void onAjoutMotCleImage(EvenementAjoutMotCleImage event) {
66
				if(idImage != null && idImage.equals(event.getIdImage())) {
1152 aurelien 67
					List<String> motsClesAjoutes = event.getMotsCles();
68
					for (Iterator iterator = motsClesAjoutes.iterator(); iterator
69
							.hasNext();) {
70
						String string = (String) iterator.next();
71
						motsCles.add(string);
72
					}
1151 aurelien 73
					vue.afficherMotsCles(motsCles);
74
					formulaireSaisieMotsClesPresenteur.viderChampSaisie();
75
				}
76
			}
77
		});
78
	}
1152 aurelien 79
 
80
	public void focuserChampsSaisie() {
81
		formulaireSaisieMotsClesPresenteur.focuserChampSaisie();
82
	}
1151 aurelien 83
}