< prev index next >
modules/controls/src/main/java/javafx/scene/chart/LineChart.java
Print this page
rev 9945 : 8089755: AreaChart area color change when series is removed
@@ -377,11 +377,15 @@
// Update style classes for all series lines and symbols
// Note: is there a more efficient way of doing this?
for (int i = 0; i < getDataSize(); i++) {
final Series<X,Y> s = getData().get(i);
Node seriesNode = s.getNode();
- if(seriesNode != null) seriesNode.getStyleClass().setAll("chart-series-line", "series" + i, s.defaultColorStyleClass);
+ if (seriesNode != null) seriesNode.getStyleClass().setAll("chart-series-line", "series" + i, s.defaultColorStyleClass);
+ for (int j=0; j < s.getData().size(); j++) {
+ final Node symbol = s.getData().get(j).getNode();
+ if (symbol != null) symbol.getStyleClass().setAll("chart-line-symbol", "series" + i, "data" + j, s.defaultColorStyleClass);
+ }
}
}
@Override protected void seriesAdded(Series<X,Y> series, int seriesIndex) {
// create new path for series
@@ -427,23 +431,12 @@
}
}
}
if (shouldAnimate()) animate(keyFrames.toArray(new KeyFrame[keyFrames.size()]));
}
- private void updateDefaultColorIndex(final Series<X,Y> series) {
- int clearIndex = seriesColorMap.get(series);
- series.getNode().getStyleClass().remove(DEFAULT_COLOR+clearIndex);
- for (int j=0; j < series.getData().size(); j++) {
- final Node node = series.getData().get(j).getNode();
- if(node!=null) {
- node.getStyleClass().remove(DEFAULT_COLOR+clearIndex);
- }
- }
- }
@Override protected void seriesRemoved(final Series<X,Y> series) {
- updateDefaultColorIndex(series);
// remove all symbol nodes
seriesYMultiplierMap.remove(series);
if (shouldAnimate()) {
seriesRemoveTimeline = new Timeline(createSeriesRemoveTimeLine(series, 900));
seriesRemoveTimeline.play();
< prev index next >