Reputation: 1707
Anyone can guide me on how to remove a series from DynamicTimeSeriesCollection
?
In this example, I want to delete series S1
DynamicTimeSeriesCollection dataset = new DynamicTimeSeriesCollection(50, 120, new Second());
dataset.addSeries(gaussianData(), 0, "S1");
dataset.addSeries(gaussianData(), 1, "S2");
I don't know how to do it.
Thank you very much.
Upvotes: 0
Views: 432
Reputation: 1707
Thanks GrahamA for your answer. Cause i need to touch seriesCount is private, so i must create a new class named DynamicTimeSeriesCollectionModified (copy-paste from DynamicTimeSeriesCollection) and write my own removeSeries and it works.
public void deleteSeries(int seriesNumber) {
//remove item in valueHistory array
List<ValueSequence> listValueHistory = new ArrayList<ValueSequence>(Arrays.asList(valueHistory));
listValueHistory.remove(seriesNumber);
valueHistory = listValueHistory.toArray(valueHistory);
//remove item in seriesKeys array
List<Comparable> listSeriesKeys = new ArrayList<Comparable>(Arrays.asList(seriesKeys));
listSeriesKeys.remove(seriesNumber);
seriesKeys = listSeriesKeys.toArray(seriesKeys);
//update seriesCount
seriesCount--;
fireSeriesChanged();
}
Upvotes: 1
Reputation: 5923
DynamicTimeSeriesCollection
stores values in an array of ValueSequence
. By default a ValueSequence
can't be deleted but as ValueSequence
is protected you can subclass DynamicTimeSeriesCollection
wrtie your own removeSeries
method and see if that solves your problem.
Take a look at DynamicTimeSeriesCollection#addSeries
and reverse the steps, remember to call fireSeriesChanged()
at the end.
Upvotes: 1