GWT / MVP: detectando eventos de cambio en una tabla con un patrón de MVP adecuado

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

  •  13-09-2020
  •  | 
  •  

Pregunta

Estamos usando GWT-Presenter, pero no es realmente una pregunta específica para eso ...

Tengo una mesa con los usuarios en ella.A medida que construyo la tabla en la vista (a partir de los datos proporcionados por el presentador), necesito agregar dos botones de acción ("Editar" y "Eliminar") al final de la fila.

¿Cuál es la mejor manera de asignar los manipuladores de clic a estos botones, por lo que el presentador sepa que se hizo clic?Antes de esto, podríamos pasar un campo privado desde la vista al presentador y adjuntar un controlador de clic discreto a ese botón.Sin embargo, este método es bastante rígido y no funciona muy bien en este escenario.

gracias de antemano.

¿Fue útil?

Solución

¿Qué tal si tiene la vista que permite la suscripción para editar / eliminar clic en eventos, registrar internamente la fila individual, haga clic en eventos, y luego delegar el manejo de eventos a los registrados por la vista?

Me refiero a algo así como el siguiente código Pesudo:

Ver:

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)

}

presentador:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top