Мне интересно, как я могу обновить компонент в Vaadin при изменении данных из прослушивателя событий. Рассматриваемый код выглядит следующим образом:
Set<Long> identifiers = new LinkedHashSet<>();
Grid<Long> grid = new Grid<>(Long.class);
grid.addColumn((ValueProvider<Long, Long>) value -> value);
grid.setDataProvider(new ListDataProvider<>(identifiers));
TextField identifier = new TextField();
identifier.getElement().addEventListener("keyup", event -> {
String value = event.getEventData().getString("element.value");
if (value != null && value.length() > 0) {
try {
identifiers.add(Long.parseLong(value));
identifier.clear();
} catch (NumberFormatException e) {
Notification.show("Not a valid identifier: " + value);
}
}
}).addEventData("element.value").setFilter("event.key == 'Enter'");
Событие отправляется так, как я ожидаю, но сетка не перерисовывается в пользовательском представлении. Как мне сообщить Vaadin, что сетка требует повторного рендеринга из обработчика событий?