Контроллеры экранов

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

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

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

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

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

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

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

screen controller diagram 1

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

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

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

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

screen controller diagram 2