Vaadin DateField具有空值和占位符

时间:2018-12-06 21:03:12

标签: java vaadin vaadin8

我对使用自定义空值的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"

我希望在value等于空值时看到占位符,但是仅在value为null时才起作用。 DateField#setPlaceholder的文档指出“ 设置占位符文本。占位符是当字段否则为空以提示用户输入时显示的文本。”,因此这似乎不起作用一个人会期望吗?

覆盖#formatDate(LocalDate)也不起作用:

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

使用Vaadin 8.6.1

0 个答案:

没有答案