2016-06-19 6 views
0

Я создал круговую диаграмму Ваадина со следующим кодом.Vaadin Charts: Круговая диаграмма не обновляется динамически

Chart chart = new Chart(ChartType.PIE); 
DataSeries dataSeries = new DataSeries("Logins"); 
chart.getConfiguration().setSeries(dataSeries); 

Мне нужно обновить диаграмму динамически. Я пробовал следовать (этот код запускается всякий раз, когда доступны новые данные).

добавления нового элемента:

dataSeries.add(new DataSeriesItem("New item", value), true, false); 

обновление существующего элемента:

DataSeriesItem dataSeriesItem = dataSeries.get(0); 
dataSeriesItem.setY(newValue); 
dataSeries.update(dataSeriesItem); 

Но ни один из вышеперечисленного не работал.

Единственное решение, которое я могу найти, - это очистка диаграммы (chart.clear()), переполнение, заполнение рядов данных и повторное рисование диаграммы (chart.drawChart()).

Этот метод не является оптимальным, поскольку он повторно рисует диаграмму, а также выбор в диаграмме теряется.

Поддерживает ли круговая диаграмма динамическое обновление? Может кто-нибудь предложить способ исправить это?

ответ

0

Попробуйте позвонить chart.getConfiguration().addSeries(dataSeries) перед обновлением пунктов. Если это не сработает, я думаю, вам нужно перерисовать диаграмму.

0

У меня была такая же проблема, и я исправил ее с помощью chart.drawChart() после обновления серии данных в конфигурациях (chart.getConfiguration.setSeries(newSeries)). В моем случае (версия vaadin 7.6.3), chart.clear() не требуется.

Существуют и другие более сложные способы, такие как плагин vaadin-push, который я не нашел нужным для своего дела.

0

Я знаю, что этот вопрос старый, но я расскажу, как я решил эту проблему в Chart Pie в DChart 1.7.0.

DataSeries dataSeries = new DataSeries(); 

dataSeries.newSeries(); 
dataSeries.add("Food", 500); 
dataSeries.add("Clothes", 1000); 

chart.setDataSeries(dataSeries); 
chart.show(); //this will update the chart in the browser; 
Смежные вопросы