Subversion Repositories eFlore/Applications.del

Rev

Rev 1152 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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