Валидация экранов
Для валидации данных в экранах 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. Вы можете переопределить стандартное сообщение, указав сообщение с этим ключом в пакете сообщений вашего проекта, например:
validationFail.title = Валидация не удалась
showSaveConfirmationDialog
Метод showSaveConfirmationDialog() выводит диалоговое окно подтверждения сохранения или отмены несохраненных изменений. Он используется экранами деталей сущности, когда пользователь закрывает экран с несохраненными изменениями и свойство jmix.ui.view.use-save-confirmation установлено в true (что является значением по умолчанию).
Диалог использует сообщения со следующими ключами:
-
dialogs.closeUnsaved.title- заголовок диалога -
dialogs.saveUnsaved.message- текст диалога -
dialogs.closeUnsaved.save- текст кнопки "Сохранить" -
dialogs.closeUnsaved.discard- текст кнопки "Отменить"
Вы можете переопределить стандартные сообщения, указав сообщения с теми же ключами в пакете сообщений вашего проекта, например:
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- текст диалога
Вы можете переопределить стандартные сообщения, указав сообщения с теми же ключами в пакете сообщений вашего проекта, например:
dialogs.closeUnsaved.title = У вас есть несохраненные изменения
dialogs.closeUnsaved.message = Хотите игнорировать несохраненные изменения?