2013-02-13 3 views
1

У меня есть TextField, который переопределяет это метод GetConverter добавить времени конвертер Joda вместо:Null проверка вручную преобразуется значение TextField

new TextField<P>(id) { 
    @Override 
    public <P> IConverter<P> getConverter(Class<P> type) { 
     return (IConverter<P>) new JodaDateTimeConverter(); 
    } 
}; 

Преобразователь возвращает нулевое значение, если вход был недействителен. Тем не менее, я хочу, чтобы иметь возможность флагом этого поля, как требуется, и я не знаю, как это сделать:

  • textField.isRequired (правда) не работает, так как необходимые проверки выполняются перед преобразованием , Это не работает для непустых, но недействительных входов.
  • textField.add (.. некоторый валидатор ..) не работает, потому что не возвращается валидатор, если конвертер возвратил null.

Я действительно не вижу подхода к пометке полей даты по мере необходимости. Вы знаете, как это сделать? Наверное, мой подход совсем не подходит?

ответ

1

Если вы добавите INullAcceptingValidator вместо обычного, он также будет вызываться для нулевых значений.

Подклассификация ваших валидаторов для возврата true на validateOnNullValue() также может быть полезна.

От JavaDocs:

Указывает, следует ли проверять значение, если оно равно нулю. обычно желательно пропустить проверку, если значение равно null, если мы не хотим, чтобы значение действительно было нулевым (редкий вариант использования). Валидаторы, которые расширяют это и хотят убедиться, что значение равно нулю следует переопределить этот метод и вернуть true.

+0

Именно то, что я искал. Спасибо огромное! –

Смежные вопросы