Валидация экранов
Для валидации данных в экранах 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 = Хотите игнорировать несохраненные изменения?