Стандартные действия
Фреймворк Jmix предоставляет стандартные действия, предназначенные для решения типовых задач, таких как вызов экрана деталей сущности, выбранной в dataGrid
. Стандартные действия объявляются в XML-дескрипторе экрана путем указания их типа в атрибуте type
элемента action
.
Каждое стандартное действие реализуется классом, аннотированным @ActionType("<some_type>")
. Класс задает свойства и поведение действия по умолчанию.
Для переопределения значений свойств по умолчанию можно задать атрибуты элемента action
, такие как text
, icon
, shortcutCombination
и др., например:
<action id="create" type="list_create"
actionVariant="SUCCESS" icon="PLUS_CIRCLE"/>
Существует несколько категорий стандартных действий:
Дополнительные свойства
Стандартные действия обычно имеют дополнительные свойства, которые могут быть установлены в XML или используя сеттеры в Java. В XML дополнительные свойства конфигурируются во вложенном элементе <properties>
, где каждый элемент <property>
соответствует сеттеру, имеющемуся в классе данного действия:
<action id="edit" type="list_edit">
<properties>
<property name="viewId" value="CustomDepartmentDetailView"/>
</properties>
</action>
То же самое можно сделать в контроллере на Java:
@ViewComponent("myDepartmentsTable.edit")
private EditAction<Department> myDepartmentsTableEdit;
@Subscribe
public void onInit(final InitEvent event) {
myDepartmentsTableEdit.setViewId("CustomDepartmentDetailView");
}
Установка обработчиков
Если сеттер принимает функциональный интерфейс (обработчик), то установить этот обработчик в контроллере можно путем создания аннотированного метода. Например, CreateAction имеет метод setAfterSaveHandler(Consumer)
, который используется для установки обработчика, вызываемого после того как создаваемая сущность сохранена. Тогда обработчик можно задать следующим образом:
@Install(to = "departmentsTable.create", subject = "afterSaveHandler")
private void departmentsTableCreateAfterSaveHandler(final Department department) {
notifications.create("Created " + department).show();
}
Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню Code → Generate (Alt+Insert / Cmd+N). |