Действия

Action – это интерфейс, который абстрагирует действие (другими словами, некоторую функцию) от визуального компонента. Такая абстракция полезна, когда одно и то же действие может быть вызвано из разных визуальных компонентов (например, кнопкой и из контекстного меню таблицы). Action также определяет некоторые общие свойства, такие как заголовок, сочетания клавиш, признаки доступности и видимости, и т.д.

Creating Actions

Фреймворк предоставляет набор Стандартные действия для экранов, таблиц и компонентов выбора. Кроме того, можно создавать действия, используя один из трёх подходов:

Компоненты, которые могут содержать действия

Действия могут быть определены для следующих компонентов:

  • Компоненты с одним действием реализуют интерфейс HasAction. Например, button. Чтобы задать действие, используйте HasAction.setAction().

  • Компоненты с несколькими действиями реализуют интерфейс HasActions. Например: dataGrid, entityComboBox, entityPicker. Чтобы добавить действие, используйте HasActions.addAction().

    Реализация HasActions.addAction() проверяет, наличие у компонента действия с таким же идентификатором. Если есть, то имеющееся действие будет заменено на новое переданное. Поэтому можно, например, декларировать стандартное действие в дескрипторе экрана, а затем в контроллере создать новое с переопределенными методами и добавить компоненту.
  • Экраны сами по себе тоже могут содержать действия. Их можно определить в XML элементе <actions> или добавив программно через getViewActions().addAction().