3.5.5.2.3. ClearAction

ClearAction - действие поля выбора сущности, предназначенное для очистки значения поля. Если поле связано с атрибутом, являющимся one-to-one composition, то экземпляр сущности, отображаемый в поле, будет удален при коммите DataContext (если экран является редактором сущности, это происходит при нажатии пользователем на OK).

Действие реализовано классом com.haulmont.cuba.gui.actions.picker.ClearAction и объявляется в XML с помощью атрибута type="picker_clear". Общие свойства действий можно конфигурировать с помощью атрибутов элемента action, подробнее см. раздел Декларативное создание действий.

Для того, чтобы произвести какие-либо проверки, или взаимодействовать с пользователем перед выполнением действия, необходимо подписаться на событие ActionPerformedEvent действия и в нужный момент вызвать метод execute(). В примере ниже перед выполнением действия отображается диалог подтверждения:

@Named("customerField.clear")
private ClearAction 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();
}