< prev index next >

modules/controls/src/main/java/javafx/scene/chart/LineChart.java

Print this page
rev 8907 : RT-46086: StackedAreaChart doesn't fade out removed series

@@ -446,32 +446,11 @@
     @Override protected  void seriesRemoved(final Series<X,Y> series) {
         updateDefaultColorIndex(series);
         // remove all symbol nodes
         seriesYMultiplierMap.remove(series);
         if (shouldAnimate()) {
-            // create list of all nodes we need to fade out
-            final List<Node> nodes = new ArrayList<Node>();
-            nodes.add(series.getNode());
-            if (getCreateSymbols()) { // RT-22124 
-                // done need to fade the symbols if createSymbols is false
-                for (Data<X,Y> d: series.getData()) nodes.add(d.getNode());
-            }
-            // fade out old and symbols
-            KeyValue[] startValues = new KeyValue[nodes.size()];
-            KeyValue[] endValues = new KeyValue[nodes.size()];
-            for (int j=0; j < nodes.size(); j++) {
-                startValues[j]   = new KeyValue(nodes.get(j).opacityProperty(),1);
-                endValues[j]       = new KeyValue(nodes.get(j).opacityProperty(),0);
-            }
-            seriesRemoveTimeline = new Timeline();
-            seriesRemoveTimeline.getKeyFrames().addAll(
-                new KeyFrame(Duration.ZERO,startValues),
-                new KeyFrame(Duration.millis(900), actionEvent -> {
-                    getPlotChildren().removeAll(nodes);
-                    removeSeriesFromDisplay(series);
-                },endValues)
-            );
+            seriesRemoveTimeline = new Timeline(createSeriesRemoveTimeLine(series, 900));
             seriesRemoveTimeline.play();
         } else {
             getPlotChildren().remove(series.getNode());
             for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode());
             removeSeriesFromDisplay(series);
< prev index next >