Добавление значений в графике при зуме

Здравствуйте. Пытаемся создать графики. Для одного графика данных может быть очень много. По этому в зависимости от периода загружаем данные из базы с определенным шагом. При зуме графика хочется подгружать новые данные.

Пробовал в

@Subscribe("chart")
private fun onChartZoom(event: StockChart.ZoomEvent)

Подгружать данные, объединять с collectionContainer сортировать и класть их обратно в collectionContainer.

val set = collectionContainer.mutableItems.toMutableSet()
set.addAll(newValues)
collectionContainer.setItems(set.sortedBy { it.time }) 

В таком случае новые значения в график не добавляются и иногда зум сбрасывается и показывается весь график.

Есть ли возможность как-то сделать эту подгрузку?

Я еще раз перепроверил. Новые данные отображаются. Но сброс зума мешает)

И если в StockChart несколько DataSet, то после добавления новых данных DataSetSelector сбрасывается.

Здравствуйте!

Установка новых значений методом CollectionContainer#setItems() вызывает перерисовку StockChart, поэтому сбрасываются zoom и выбранный DataSet.

Обойти перерисовку можно только добавляя или удаляя данные:

container.getMutableItems().addAll(listOfItems);

Добавление новых данных можно посмотреть в онлайн примере: Sampler: update-stock-chart.

Я так понимаю, что в таком случае данные будут добавлены в конец коллекции (в конец графика)? То есть при зуме на середину графика, данные добавятся не правильно?

Через container.getMutableItems().addAll(listOfItems); у меня почему-то график уменьшается. То есть ось дат сокращается. И новые точки не добавляются.

Да, данные добавятся в конец и нужно, чтобы дата была не раньше конечной, иначе график будет неправильным. Сортировка данных тоже приводит к перерисовке. Похоже, только точечное добавление данных по индексу будет работать (учитывая даты).

К сожалению, больше нет способов релизовать данную функциональность.