Собственные типы действий
В проекте можно создать собственные типы действий или переопределить существующие стандартные типы.
Предположим, что вы хотите создать действие, которое бы показывало имя экземпляра текущей сущности, выбранной в dataGrid
, и использовать это действие в различных экранах, указывая только его тип. Чтобы это сделать, необходимо выполнить следующие шаги:
-
Создайте для действия отдельный класс с аннотацией
@ActionType
, в которой укажите желаемое имя типа:package com.company.onboarding.view.actions; import com.vaadin.flow.component.Component; import io.jmix.core.MetadataTools; import io.jmix.flowui.Notifications; import io.jmix.flowui.action.ActionType; import io.jmix.flowui.action.list.ItemTrackingAction; import org.springframework.beans.factory.annotation.Autowired; @ActionType("showSelected") public class ShowSelectedAction<E> extends ItemTrackingAction<E> { @Autowired private MetadataTools metadataTools; @Autowired private Notifications notifications; public ShowSelectedAction(String id) { super(id); setText("Show Selected"); } @Override public void actionPerform(Component component) { if (getTarget() != null) { E selected = getTarget().getSingleSelectedItem(); if (selected != null) { notifications.create(metadataTools.getInstanceName(selected)).show(); } } } }
-
Теперь вы можете использовать действие в дескрипторах экрана, просто указывая его тип:
<action id="showSelected" type="showSelected"/>
Если вы хотите переопределить существующий тип действия, просто зарегистрируйте свое новое действие с таким же именем типа в аннотации |