GWT / MVP: rilevamento di eventi di modifica in una tabella con motivo MVP appropriato

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

  •  13-09-2020
  •  | 
  •  

Domanda

Stiamo usando GWT-Presenter, ma non proprio una domanda specifica per questo ...

Ho un tavolo con gli utenti in esso.Mentre costruisco la tabella nella vista (dai dati forniti dal presentatore), ho bisogno di aggiungere due pulsanti di azione ("Modifica" e "Elimina") alla fine della riga.

Qual è il modo migliore per assegnare i gestori di clic su questi pulsanti, quindi il presentatore sa che è stato cliccato?Precedente Su questo, potremmo passare un campo privato dalla vista al presente e allegare un gestore di clic discreto a quel pulsante.Tuttavia, questo metodo è piuttosto rigido e non funziona in questo scenario molto bene.

Grazie in anticipo.

È stato utile?

Soluzione

Che ne dici di avere la vista che consente l'abbonamento per eventi Modifica / Elimina Fare clic su Eventi, registrando internamente le singole righe Click Eventi, quindi delegare l'evento Gestione per quelli registrati dalla vista?

Intendo qualcosa come il seguente codice Pesudo:

Vista:

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)

}
.

Presentatore:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top