Каждая страница примера демонстрирует свой приём:
/
(главная страница) — сборка страницы с лэйаутом SINGLE
изнутри презентера в пределах главной шины + использование UrlBuilder
для создания ссылок на внутренние страницы/404
(“страница не найдена”) — быстрая сборка страницы по событию @NotFoundHistory
изнутри презентера в пределах главной шины./user/list[?<фильтр>]
— портал, управляемый несколькими PortletPresenter
-ами, в котором каждый портлет (список пользователей (A), путь к аватару пользователя (B), возраст пользователя (C)) имеет поддержку состояний: при загрузке списка пользователей портлет списка находится в состоянии “пользователи загружаются”; при отсутствии пользователей, совпадающих с фильтром портлет списка сообщит именно об отсуствии совпадений, а не отсутствии пользователей; портлеты аватара и возраста находятся в состоянии “нет данных”, пока не выбран конкретный пользователь./user/show?<id>
— портал, управляемый несколькими PortletPresenter
-ами, в котором каждый из портлетов (информация о пользователе A
, путь к аватару пользователя B
, возраст пользователя C
) имеет поддержку состояний, при этом используются те же портлеты аватара и возраста, что и на странице со списком пользователей./user/edit[?<id>]
— портал, управляемый одним PortalPresenter
, лэйаут поддерживает переключение состояний из презентера: в процессе загрузки пользователя портлеты A
, B
, C
подменяются на панель состояния “пользователь загружается”. При сохранении пользователя, новые данные собираются презентером из View
и отправляются серверу.news/list
— портал, управляемый несколькими PortletPresenter
-ами, но лэйаут и портлеты не имеют состояний; для одного из портлетов используется TestWidgetPresenter
, в котором View
создаётся прямо внутри презентера, сам TestWidget
доступен всем страницам; также показано взаимодействие с соседними презентерами (UserCardPresenter
).news/edit[?<id>]
— портал, управляемый одним PortalPresenter
, лэйаут не поддерживает состояний; используется тот же UserCardPresenter
, что и для news/list
.news/show?id
— портал, управляемый несколькими PortletPresenter
-ами, портлеты не поддерживают состояний; используется тот же UserCardPresenter
, что и для news/list
, а также TestWidgetPresenter
.company/list
— портал c одним портлетом, управляемый одним PortletPresenter
-ом, который в свою очередь внешний портлет-виджет использует для отображения каждой компании.company/show?<id>
— портал c одним портлетом, управляемый одним PortletPresenter
-ом, при этом портлетом является тот же самый портлет-виджет, который используется для списка, без посредников и обёрток.