Действия
Action – это интерфейс, который абстрагирует действие (другими словами, некоторую функцию) от визуального компонента. Такая абстракция полезна, когда одно и то же действие может быть вызвано из разных визуальных компонентов (например, кнопкой и из контекстного меню таблицы). Action также определяет некоторые общие свойства, такие как заголовок, сочетания клавиш, признаки доступности и видимости, и т.д.
Creating Actions
Фреймворк предоставляет набор Стандартные действия для экранов, таблиц и компонентов выбора. Кроме того, можно создавать действия, используя один из трёх подходов:
-
Декларативные действия: объявив действие в XML и реализовав его обработчик.
-
Собственные типы действий: создавая класс действия с возможностью переиспользовать его в экранах приложения.
-
Программные действия: создав экземпляр действия в контроллере экрана.
Компоненты, которые могут содержать действия
Действия могут быть определены для следующих компонентов:
-
Компоненты с одним действием реализуют интерфейс
HasAction. Например, button. Чтобы задать действие, используйтеHasAction.setAction(). -
Компоненты с несколькими действиями реализуют интерфейс
HasActions. Например: dataGrid, entityComboBox, entityPicker. Чтобы добавить действие, используйтеHasActions.addAction().Реализация HasActions.addAction()проверяет, наличие у компонента действия с таким же идентификатором. Если есть, то имеющееся действие будет заменено на новое переданное. Поэтому можно, например, декларировать стандартное действие в дескрипторе экрана, а затем в контроллере создать новое с переопределенными методами и добавить компоненту. -
Экраны сами по себе тоже могут содержать действия. Их можно определить в XML элементе
<actions>или добавив программно черезgetViewActions().addAction().