Subversion Repositories eFlore/Applications.del

Rev

Rev 1281 | 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) {
1541 aurelien 51
				vue.toggleCb();
52
				event.stopPropagation();
1239 gduche 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) {
1541 aurelien 61
				vue.toggleCb();
62
				event.stopPropagation();
1239 gduche 63
			}
64
		});
65
 
66
	}
67
 
68
	public boolean estAAjouter() {
69
		return vue.estAAjouter();
70
	}
71
 
72
	public void setEstAAjouter() {
73
		vue.setEstAAjouter();
74
	}
75
 
76
	public String getTag() {
77
		return this.motcle;
78
	}
79
 
80
 
81
}