2010-12-29 2 views
4

Мы используем структуру GWT-Presenter и пытаемся использовать CellTable для сборки обновляемой сетки. Кажется, что некоторые из конструкций GWT для CellTable не позволяют легко разбить логику на чистый код представления и презентатора.Реальные примеры заполнения GWT CellTable с использованием чистого шаблона MVP?

Примеры: 1) Внутри конструктора View определен CellTable, и каждый столбец создается анонимными внутренними классами, которые расширяют класс Column для предоставления метода onValue(). 2) Интерфейс FieldUpdater должен быть реализован для обеспечения логики для выполнения, когда пользователь изменяет данные в ячейке. Кажется, что это лучше всего подходит методу OnBind() для Presenter, но FieldUpdaters часто нуждаются в доступе к ячейке или столбцу, которые относятся к представлению. CellTable не имеет методов доступа для доступа к столбцам или ячейкам, поэтому, кажется, единственный способ для Presenter - получить для меня множество переменных-членов в представлении и аксессуарах в моем интерфейсе дисплея.

Может кто-нибудь хорошие примеры для работы с CellTable в GWT-Presenter или сопоставимого MVP

ответ

1

Вы пытаетесь избежать связывания класса модели с видом? Я попытался сделать это для cellTable, но мне стало неудобно поддерживать код, поэтому я решил оставить пару класса Model с View. Вы можете избежать этой связи на некоторые общие аргументы, создавая вид ..

-Saket

3

Я думаю, что главная точка GWT MVP является то, что для презентаций (Деятельность в 2.1) не зависят от реализации View, так что вы может легко поменяться в mock Views для легкого тестирования.

Кроме того, все в порядке, если у вас есть представления, которые зависят от докладчиков (= методы вызова ведущего), но не наоборот (ну да, но через интерфейс).

Обычно я просто держу ссылку на Presenter внутри View, так что FieldUpdater и внутренние классы могут вызывать методы в Presenter. Вы можете поместить эти методы в интерфейс, но это не имеет смысла, поскольку есть только одна версия данного типа Presenter.

Или, если вы хотите, чтобы вещи были более развязаны, просто попросите View отправить событие GWT, которое прослушивает Presenter.

Смежные вопросы