Валидация экранов

Для валидации данных в экранах UI используется бин ViewValidation. Он содержит методы для валидации компонентов UI, отображения ошибок валидации и диалоговых окон о несохраненных изменениях. Данный бин используется экранами и диалогами фреймворка и дополнений. Вы также можете использовать его в экранах приложения.

Ниже описаны основные методы бина ViewValidation.

validateUiComponents

Метод validateUiComponents() принимает коллекцию компонентов или контейнер компонентов. Он выполняет валидацию для всех переданных компонентов, реализующих интерфейс SupportsValidation, и возвращает объект ValidationErrors, который содержит найденные ошибки валидации для проверенных компонентов.

Вы можете использовать этот метод в экране следующим образом:

public class SampleView extends StandardView {

    @Autowired
    private ViewValidation viewValidation;

    @ViewComponent
    private FormLayout form;

    @Subscribe("validateBtn")
    public void onValidateBtnClick(final ClickEvent<JmixButton> event) {
        ValidationErrors errors = viewValidation.validateUiComponents(form);
        if (!errors.isEmpty()) {
            viewValidation.showValidationErrors(errors);
        }
    }
}

showValidationErrors

Метод showValidationErrors() выводит уведомление с ошибками валидации, если переданный объект ValidationErrors не пуст. См. пример использования выше.

Заголовок уведомления определяется сообщением с ключом validationFail.title. Вы можете переопределить стандартное сообщение, указав сообщение с этим ключом в пакете сообщений вашего проекта, например:

messages_ru.properties
validationFail.title = Валидация не удалась

showSaveConfirmationDialog

Метод showSaveConfirmationDialog() выводит диалоговое окно подтверждения сохранения или отмены несохраненных изменений. Он используется экранами деталей сущности, когда пользователь закрывает экран с несохраненными изменениями и свойство jmix.ui.view.use-save-confirmation установлено в true (что является значением по умолчанию).

Диалог использует сообщения со следующими ключами:

  • dialogs.closeUnsaved.title - заголовок диалога

  • dialogs.saveUnsaved.message - текст диалога

  • dialogs.closeUnsaved.save - текст кнопки "Сохранить"

  • dialogs.closeUnsaved.discard - текст кнопки "Отменить"

Вы можете переопределить стандартные сообщения, указав сообщения с теми же ключами в пакете сообщений вашего проекта, например:

messages_ru.properties
dialogs.closeUnsaved.title = У вас есть несохраненные изменения
dialogs.saveUnsaved.message = Хотите сохранить изменения перед закрытием?
dialogs.closeUnsaved.save = Сохранить
dialogs.closeUnsaved.discard = Не сохранять

showUnsavedChangesDialog

Метод showUnsavedChangesDialog() выводит диалоговое окно подтверждения игнорирования несохраненных изменений. Он используется экранами деталей сущности, когда пользователь закрывает экран с несохраненными изменениями и свойство jmix.ui.view.use-save-confirmation установлено в false.

Диалог использует сообщения со следующими ключами:

  • dialogs.closeUnsaved.title - заголовок диалога

  • dialogs.closeUnsaved.message - текст диалога

Вы можете переопределить стандартные сообщения, указав сообщения с теми же ключами в пакете сообщений вашего проекта, например:

messages_ru.properties
dialogs.closeUnsaved.title = У вас есть несохраненные изменения
dialogs.closeUnsaved.message = Хотите игнорировать несохраненные изменения?