Something replaced BeanItemContainer in Vaadin 8?

I downloaded a copy of the vaadin-chart-video sample project from GitHub ( https://github.com/vaadin-miki/vaadin-charts-video ) to understand how Vaadin's charts should be implemented . However, this project and most of the available demo codes / projects that I found seem to be written using Vaadin 7 and previous coding conventions. I am jumping with Vaadin 8.0.5 (and JDK8) ...

These errors appear when you start Maven:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project intro-video: Compilation failure: Compilation failure:
[ERROR] /C:/Users/dev/vaadin/vaadin-charts-video/intro-video/src/main/java/org/vaadin/miki/charts/intro/IntroChartsUI.java:[19,28] cannot find symbol
[ERROR] symbol:   class BeanItemContainer
[ERROR] location: package com.vaadin.data.util
[ERROR] /C:/Users/dev/vaadin/vaadin-charts-video/intro-video/src/main/java/org/vaadin/miki/charts/intro/IntroChartsUI.java:[54,17] cannot find symbol
[ERROR] symbol:   class BeanItemContainer
[ERROR] location: class org.vaadin.miki.charts.intro.IntroChartsUI
[ERROR] /C:/Users/dev/vaadin/vaadin-charts-video/intro-video/src/main/java/org/vaadin/miki/charts/intro/IntroChartsUI.java:[54,62] cannot find symbol
[ERROR] symbol:   class BeanItemContainer
[ERROR] location: class org.vaadin.miki.charts.intro.IntroChartsUI

Can someone tell me BeanItemContainer has been replaced? And if so, with what?

For example, see line 54 https://github.com/vaadin-miki/vaadin-charts-video/blob/master/intro-video/src/main/java/org/vaadin/miki/charts/intro/IntroChartsUI. java BeanItemContainer<BookPrice> container = new BeanItemContainer<>(BookPrice.class, prices);

And if this is not a problem for more experienced eyes, please let me know what is ...

+4
source share
2 answers

Container is dead

Vaadin 8 no longer has Container. Vaadin's data model is greatly simplified. Basically, the data model is no longer there. There are only data providers for various items. What you want to learn DataProvider, because it largely replaces Container.

: https://vaadin.com/blog/-/blogs/vaadin-framework-8-comes-with-java-8-native-apis

, setItems , ListDataProvider.

Container

Vaadin 7 Vaadin 8, Vaadin 7. Vaadin Container. Vaadin 8, .

:

+5

: .

,

grid.setItems(books);

ListDataProvider .

(/) , , ListDataProvider :

List<Book> data = new Arraylist<>(getBooks());
ListDataProvider<Book> dataProvider = new ListDataProvider<>(data);
Grid<Book> grid = new Grid<>();
grid.setDataProvider(dataProvider);

,

data.add(newBook);

dataProvider.refreshAll();

dataProvider.refreshItem(book);

, ,

grid.markAsDirty();

.

+2

Source: https://habr.com/ru/post/1677792/


All Articles