Quelle serait l'approche MVP pour l'utilisation de ClickHandler de GWT?Conception MVP avec GWT ClickHandler
J'ai un bouton dans ma vue, à laquelle je voudrais ajouter un gestionnaire de clic.
Voir button.addClickHandler (?)
Ce qui est passé dans? Le présentateur? nouveau gestionnaire de clic?
Exemple 1. Voir le cas de code:
this.myButton.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
myPresenter.buttonClicked();
}
});
Dans ce cas, l'ajout d'un gestionnaire de clic sur le bouton ne peut pas être testé ...
Exemple de cas 2. Code Présentateur:
this.view.addClickHandlerToButton(this);
@Override
public void onClick(ClickEvent event)
{
buttonClicked();
}
Dans ce cas, le code GWT (ClickEvent) est introduit dans le présentateur, ce qui doit être évité.
Si vous créez un ClickHandler dans le présentateur, cela n'expose-t-il pas le code de vue dans le présentateur, car ClickHandler et ClickEvent sont des classes gwt? – sworded
oui ils le sont, mais ils peuvent être utilisés dans des tests unitaires. fondamentalement, il y a deux approches. celui que j'ai décrit - la vue n'a aucune logique. l'autre moyen passant dans le présentateur et enregistrant des événements à l'intérieur de la vue et les renvoyant –
le problème est, avec cela, l'interface utilisateur ne pouvait pas facilement échanger le bouton par un autre élément de l'interface utilisateur sans clickhandler. - Voir ma réponse – dermoritz