EntityClearAction
EntityClearAction
– это действие поля выбора сущности, предназначенное для очистки значения EntityPicker. Если поле связано с атрибутом, являющимся one-to-one composition, то экземпляр сущности, отображаемый в поле, будет удален при коммите DataContext
(если экран является редактором сущности, это происходит при нажатии пользователем на OK).
Действие реализовано классом io.jmix.ui.action.entitypicker.EntityClearAction
и объявляется в XML с помощью атрибута type="entity_clear"
. Общие свойства действий можно конфигурировать с помощью атрибутов элемента action
, подробнее см. раздел Декларативные действия.
Использование ActionPerformedEvent
Для того чтобы произвести какие-либо проверки, или взаимодействовать с пользователем перед выполнением действия, необходимо подписаться на событие ActionPerformedEvent
действия и в нужный момент вызвать метод execute()
. В примере ниже перед выполнением действия отображается диалог подтверждения:
@Named("customerField.clear")
private EntityClearAction customerFieldClear;
@Subscribe("customerField.clear")
public void onCustomerFieldClear(Action.ActionPerformedEvent event) {
dialogs.createOptionDialog()
.withCaption("Please confirm")
.withMessage("Do you really want to clear the field?")
.withActions(
new DialogAction(DialogAction.Type.YES)
.withHandler(e -> customerFieldClear.execute()), // execute action
new DialogAction(DialogAction.Type.NO)
)
.show();
}