если я введу число с плавающей точкой к примеру 6,44 он не выполняет digits валидацию
а выполняет databinding.conversion.error.int и дальше ничего не делает.
как сделать мне проверку на то что это целое число а не вещественное. и соответственно вывести мне нужное сообщение:
Значение ${value} выходит за допустимые пределы (9 цифр ожидается в целой части и 0 после запятой)
У textField есть conversionErrorMessage Я так понимаю его вам и нужно заменить.
Думаю там можно поставить стандартное сообщение validation.constraints.digits - числовое значение вне границ (<{integer} digits>.<{fraction} digits>)
как я понимаю в таком случае надо писать обработчик который будет проверять поле… и если там есть число с плавающей точкой записывать ошибку в conversionErrorMessage?
а так из коробки получается просто использовав digits валидацию на итегр поле…не получится использовать?
Да и вообще по логике вещей почему если diget валидация поддерживает тип Integer так почему же тогда он не кидает ошибку когда у меня 9 цифр ожидается в целой части и 0 после запятой?
Зачем обработчик? Просто в дескрипторе напишите у textFieldconversionErrorMessage="..." Или вы хотите чтобы при наведении на поле там выводилось “Должно быть Integer”, а при попытке сохранить чтоб падало “9 цифр ожидается…” Тогда переопредлите в экране validateScreen там ловите нужный вам ValidationError и меняйте у него description
Если у вас поле Integer, a вы прописываете Double то логично что сначала падает ConversionException.
digitValidator должен сработать когда вы попытаетесь ввести Integer значение длинной более 9 символов.
ПС. Как я вижу у ItemValidationErrorsdescriptionfinal. Так что вам нужно будет убирать данный item и добавлять свой с нужным description
Так.. если вам нужно прям такое сообщение. То я легкого решения не вижу в особенности если так должно работать в одном экране..
Если вы хотите чтоб так работало во всем приложении. То скорее всего нужно будет переопределить TextFieldImpl#getConversionErrorMessageInternal Там проверять есть ли у поля digitValidator и менять сообщение на то что вам нужно.