Rev 1503 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.composants.motsclesimages.propositions;
import org.tela_botanica.del.client.composants.presenteur.Presenteur;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.IsWidget;
public class MotClePropositionPresenteur extends Presenteur{
public interface Vue extends IsWidget {
public void setMotCle(String motcle);
public HasClickHandlers getLienMotCle();
public void toggleCb();
public boolean estAAjouter();
public void setEstAAjouter();
public HasClickHandlers getAjouterMotCle();
}
private Vue vue;
private String motcle;
public MotClePropositionPresenteur(Vue vue, String motCle) {
this.vue = vue;
this.motcle = motCle;
vue.setMotCle(motCle);
}
@Override
public void go(HasWidgets composite) {
composite.add(vue.asWidget());
gererEvenements();
}
@Override
protected void gererEvenements() {
/* Attention : dans la gestion des évènements, comme la case à cocher est contenu dans
* le lien Mot Cle, lorsque je clique sur la case directement, l'application :
* - change la valeur de la case suite à l'évènement sur la case
* - rechange la valeur de la case suite à l'évènement sur le lien
* Il est donc impossible de changer la valeur de la case !
*
* La solution consiste à ajouter un changement de valeur lorsqu'on clique sur la case :
*/
vue.getAjouterMotCle().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
vue.toggleCb();
}
});
// Ajout du changement de valeur de la case lors du clic sur la case
vue.getLienMotCle().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
vue.toggleCb();
}
});
}
public boolean estAAjouter() {
return vue.estAAjouter();
}
public void setEstAAjouter() {
vue.setEstAAjouter();
}
public String getTag() {
return this.motcle;
}
}