Что показывают?
Этот пример демонстрирует:
- Шины событий: Использование главной и дочерних шин событий в mvp4g: главная шина управляет загрузкой модулей пользователей, групп и компаний, а соответствующие этим модулям дочерние шины событий отвечают за действия с ними: просмотр списка, редактирование и просмотр отдельного элемента. Эта возможность доступна в самом mvp4g “из коробки”.
- Общая и изменяемая части страниц: Использование внутренней части некой общей страницы (это может быть и вся страница) для расположения виджетов внутри неё в соответствии с назначенным данной странице приложения лэйаутом (в примере это область между тулбаром и футером).
- Лэйауты, страницы и URL: Использование одного-единственого
enum
для связывания страниц с лэйаутами, а также в качестве общей точки управления ссылками. Этот enum
используется повсеместно там, где происходит работа с историей, нужно отпарсить или создать ссылку. При необходимости его можно расширить для работы с именованными параметрами. Один ui.xml
предназначен для описания одного лэйаута.
- Порталы и портлеты: Наполнение страницы виджетами по цепочке: история -> построитель лэйаута -> шина событий -> презентер портлета (виджета) или портала (страницы). То есть можно управлять всей страницей через один презентер (
PortalPresenter
), а можно через группу отдельных переиспользуемых презентеров (PortletPresenter
), а можно вообще всё это перемешать (комментарии по этому поводу ниже)
- Состояния: Отдельные виджеты (портлеты) и/или страницы целиком (порталы) могут иметь состояния: “нет данных”, “данные загружаются”, “данные получены”, “нет совпадений”, при этом структура может быть вложенной.
- Дружба с CSS: Для каждого элемента, соответствующего логическому блоку (странице, порталу, лэйауту, плэйсхолдеру, виджету) создаётся минимум по два CSS-класса, позволяющие однозначно определить его принадлежность (см. ниже)
[Содержание]