Я понимаю, что Vaadin 8.1.0 будет включать новый LocalDateRenderer для работы с новым date LocalDate
, но тем временем я пытаюсь настроить свой собственный LocalDateRenderer. У меня это в основном работает, потому что все подключено, но на основе документации мне нужно настроить AbstractRendererConnector
, но такого класса нет...
Весь следующий код находится в моем основном классе пользовательского интерфейса (для целей тестирования):
private void setupGrid(Grid<Dog> grid)
{
grid.addColumn(dog -> dog.getBirthday(), new LocalDateRenderer()).setCaption("Birthday");
}
class LocalDateRenderer extends AbstractRenderer<Object, LocalDate>
{
public LocalDateRenderer()
{
super(LocalDate.class, "");
}
@Override
public JsonValue encode(LocalDate localDate)
{
return encode(DateTimeFormatter.ofPattern("MMM dd, YYYY").format(localDate), String.class);
}
}
Я подтвердил, что LocalDateRenderer
вызывается путем добавления операторов регистрации, однако в сетке значения не отображаются. Если я использую тот же код, но вместо LocalDate
я делаю это для Long
, но вместо extends AbstractRenderer
я расширяю NumberRenderer
своим собственным кодом, тогда это работает.
Это привело меня к документации , где я нужно настроить Renderer
с AbstractRendererConnector
, но всякий раз, когда я пытаюсь сделать это, я получаю сообщение об ошибке компилятора, говорящее, что AbstractRendererConnector
не может быть преобразован в тип. И тут конечно у меня есть ряд ошибок компилятора (в коде ниже). Мой код для этого (все еще в основном классе пользовательского интерфейса):
@Connect(LocalDateRenderer.class)
class LocalDateRendererConnector extends AbstractRendererConnector<LocalDate>
{
@Override
public LocalDateRenderer getRenderer()
{
return (LocalDateRenderer) super.getRenderer();
}
}
Мы будем очень признательны за любую помощь в том, как связать его, чтобы он отображал мои фактические даты. Спасибо.
Также в документации неясно, какой класс есть какой, когда они ссылаются на TextRenderer
, поскольку они используют одно и то же имя для разных вещей...
LocalDate
,LocalTime
иLocalDateTime
. Таинственным образом они не реализовали средства визуализации для более полезных классовInstant
,OffsetDateTime
иZonedDateTime
java.time. Вы можете довольно легко реализовать такие рендереры самостоятельно в виде надстройки, написав три файла классов. См. мой вопрос и мой ответ а>. - person Basil Bourque   schedule 05.09.2017InstantRenderer
,OffsetDateTimeRenderer
иZonedDateTimeRenderer
. - person Basil Bourque   schedule 19.10.2017