Vaadin DateField с пустым значением и заполнителем - PullRequest
0 голосов
/ 07 декабря 2018

У меня проблема с Vaadin DateField, использующим пользовательское пустое значение.

LocalDate emptyDate = LocalDate.parse("1900-01-01");

DateField field = new DateField()
{
    @Override
    public boolean isEmpty()
    {
        return getValue() == null || getValue().equals(emptyDate);
    }

    @Override
    public LocalDate getEmptyValue()
    {
        return emptyDate;
    }
};
field.setPlaceholder("yyyy-MM-dd");
field.setValue(emptyDate); // Shows "1900-01-01" instead of placeholder
field.setValue(null); // Shows placeholder "yyyy-MM-dd"

Я ожидаю увидеть заполнитель, когда значение равно пустому значению, но оно работает только тогда, когда значение равно нулю.Документы DateField # setPlaceholder состояния " Устанавливает текст заполнителя. Заполнитель - это текст, который отображается, когда поле в противном случае было бы пустым, чтобы запросить у пользователя ввод. ", поэтому кажется, что это не работает как единое целое.можно ожидать?

Переопределение #formatDate (LocalDate) также не работает:

@Override
protected String formatDate(LocalDate value)
{
    if (isEmpty())
    {
        return getPlaceholder();
    }
    else
    {
        return super.formatDate(value);
    }
}

Использование Vaadin 8.6.1

...