Subversion Repositories eFlore/Applications.del

Rev

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