GWT / MVP: détecter les événements de changement dans une table avec un motif MVP approprié

StackOverflow https://stackoverflow.com/questions/3215816

  •  13-09-2020
  •  | 
  •  

Question

Nous utilisons GWT-Presenter, mais pas vraiment une question spécifique à celle ...

J'ai une table avec des utilisateurs.Comme je construis la table dans la vue (à partir des données fournies par le présentateur), j'ai besoin d'ajouter deux boutons d'action ("Modifier" et "Supprimer") à la fin de la ligne.

Quel est le meilleur moyen d'affecter des gestionnaires de clic sur ces boutons afin que le présentateur sait qui a été cliqué?Précédent à cela, nous pourrions passer un champ privé de la vue sur le présentateur et joindre un gestionnaire de clic discret à ce bouton.Cependant, cette méthode est plutôt rigide et ne fonctionne pas très bien dans ce scénario.

Merci d'avance.

Était-ce utile?

La solution

Que diriez-vous d'avoir la vue permettant à l'abonnement pour Edition / Supprimer des événements, enregistrez-vous en interne les événements individuels de la ligne, puis déléguant la manipulation des événements à celles enregistrées par la vue?

Je veux dire quelque chose comme le code Pesudo suivant:

vue:

addRowEditClickHandler(ClickHandler handler) {
    this.rowEditClickHandler = handler; 
}
addRowDeleteClickHandler(ClickHandler handler) {
    this.rowDeleteClickHandler = handler; 
}

//... somewhere when setting up of the grid...

rowEditButton.addClickHandler = new ClickHandler() {
    onClick(args) {
        this.rowEditClickHandler.onClick(args)

}

rowDeleteButton.addClickHandler = new ClickHandler() {
    onClick(args) {
        this.rowDeleteClickHandler.onClick(args)

}

présentateur:

View view = new View();
view.addRowEditClickHandler( new ClickHandler() {
    onClick(args) {
        doSomething();
    }
});
view.addRowDeleteClickHandler( new ClickHandler() {
    onClick(args) {
        doSomething();
    }
});

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top