< 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 >