GWT / MVP: обнаружение событий изменения в таблице с правильным шаблоном MVP - PullRequest
3 голосов
/ 09 июля 2010

Мы используем gwt-Presenter, но на самом деле это не конкретный вопрос ...

У меня есть таблица с пользователями. Когда я строю таблицу в виде (на основе данных, предоставленных докладчиком), мне нужно добавить две кнопки действий («Редактировать» и «Удалить») в конце строки.

Какой лучший способ назначить обработчики щелчков для этих кнопок, чтобы докладчик знал, какие из них были нажаты? До этого мы могли передать приватное поле из представления докладчику и прикрепить к этой кнопке отдельный обработчик щелчков. Однако этот метод довольно жесткий и не очень хорошо работает в этом сценарии.

Заранее спасибо.

1 Ответ

3 голосов
/ 10 июля 2010

Как насчет представления, разрешающего подписку на редактирование / удаление событий щелчка, внутренней регистрации отдельных событий щелчка строки и затем делегирования обработки событий тем, которые зарегистрированы представлением?

Я имею в виду что-то вроде следующего псевдокода:

Вид:

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)

}

Ведущий:

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