3.5.1.1. Контроллер экрана

Контроллер экрана - это Java или Groovy класс, который содержит в себе логику инициализации экрана и обработки событий. Чаще всего контроллер связан с XML-дескриптором экрана, который декларативно описывает компоновку экрана и контейнеры данных, однако и в контроллере можно программно создавать визуальные и невизуальные компоненты.

Все контроллеры экранов реализуют интерфейс-маркер FrameOwner. Название этого интерфейса означает, что в нём содержится ссылка на фрейм, то есть визуальный компонент, представляющий собой экран при его отображении в главном окне приложения. Существует два типа фреймов:

  • Window - самостоятельное окно, которое можно отобразить внутри главного окна приложения во вкладке или в виде модального диалогового окна.

  • Fragment - легковесный компонент, который можно добавлять к окнам или к другим фрагментам.

Контроллеры также подразделяются на две отдельные категории по типам используемых фреймвов:

  • Screen - базовый класс контроллеров окон.

  • ScreenFragment - базовый класс контроллеров фрагментов.

screens
Рисунок 15. Контроллеры и фреймы

Класс Screen предоставляет базовую функциональность для любого типа самостоятельных экранов. Для экранов, предназначенных для работы с сущностями, существуют отдельные, более специфичные классы:

  • StandardEditor - базовый класс контроллеров экранов редактирования.

  • StandardLookup - базовый класс контроллеров экранов просмотра и выбора.

  • MasterDetailScreen - комбинированный экран, отображающий список экземпляров сущностей слева и детали выбранной сущности справа.

controller base classes
Рисунок 16. Базовые классы контроллеров