Subversion Repositories eFlore/Applications.del

Rev

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

Rev Author Line No. Line
1239 gduche 1
package org.tela_botanica.del.client.composants.motsclesimages.propositions;
2
 
3
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
4
 
5
import com.google.gwt.core.shared.GWT;
6
import com.google.gwt.event.dom.client.ClickEvent;
7
import com.google.gwt.event.dom.client.ClickHandler;
8
import com.google.gwt.event.dom.client.HasClickHandlers;
9
import com.google.gwt.user.client.ui.HasWidgets;
10
import com.google.gwt.user.client.ui.IsWidget;
11
 
12
public class MotClePropositionPresenteur extends Presenteur{
13
 
14
	public interface Vue extends IsWidget {
15
		public void setMotCle(String motcle);
16
		public HasClickHandlers getLienMotCle();
17
		public void toggleCb();
18
		public boolean estAAjouter();
19
		public void setEstAAjouter();
20
		public HasClickHandlers getAjouterMotCle();
21
	}
22
 
23
	private Vue vue;
24
	private String motcle;
25
 
26
	public MotClePropositionPresenteur(Vue vue, String motCle) {
27
		this.vue = vue;
28
		this.motcle = motCle;
29
		vue.setMotCle(motCle);
30
	}
31
	@Override
32
	public void go(HasWidgets composite) {
33
		composite.add(vue.asWidget());
34
		gererEvenements();
35
	}
36
 
37
	@Override
38
	protected void gererEvenements() {
39
 
40
		/* Attention : dans la gestion des évènements, comme la case à cocher est contenu dans
41
		 * le lien Mot Cle, lorsque je clique sur la case directement, l'application :
42
		 * - change la valeur de la case suite à l'évènement sur la case
43
		 * - rechange la valeur de la case suite à l'évènement sur le lien
44
		 * Il est donc impossible de changer la valeur de la case !
45
		 *
46
		 *  La solution consiste à ajouter un changement de valeur lorsqu'on clique sur la case :
47
		 */
48
		vue.getAjouterMotCle().addClickHandler(new ClickHandler() {
49
 
50
			@Override
51
			public void onClick(ClickEvent event) {
52
				vue.toggleCb();
53
			}
54
		});
55
 
56
		// Ajout du changement de valeur de la case lors du clic sur la case
57
		vue.getLienMotCle().addClickHandler(new ClickHandler() {
58
 
59
			@Override
60
			public void onClick(ClickEvent event) {
61
				vue.toggleCb();
62
			}
63
		});
64
 
65
	}
66
 
67
	public boolean estAAjouter() {
68
		return vue.estAAjouter();
69
	}
70
 
71
	public void setEstAAjouter() {
72
		vue.setEstAAjouter();
73
	}
74
 
75
	public String getTag() {
76
		return this.motcle;
77
	}
78
 
79
 
80
}