< prev index next >

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

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

@@ -387,41 +387,12 @@
     @Override protected  void seriesRemoved(final Series<X,Y> series) {
         // remove series Y multiplier
         seriesYMultiplierMap.remove(series);
         // remove all symbol nodes
         if (shouldAnimate()) {
-            // create list of all nodes we need to fade out
-            final List<Node> nodes = new ArrayList<Node>();
-            nodes.add(series.getNode());
-            for (Data<X,Y> d: series.getData()) nodes.add(d.getNode());
-            // fade out old and symbols
-            if (getCreateSymbols()) {
-                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);
-                }
-                Timeline tl = new Timeline();
-                tl.getKeyFrames().addAll(
-                    new KeyFrame(Duration.ZERO,startValues),
-                    new KeyFrame(Duration.millis(400), actionEvent -> {
-                        getPlotChildren().removeAll(nodes);
-                        removeSeriesFromDisplay(series);
-                    },endValues)
-                );
-                tl.play();
-            } else {
-                Timeline tl = new Timeline();
-                tl.getKeyFrames().addAll(
-                    new KeyFrame(Duration.millis(400), actionEvent -> {
-                        getPlotChildren().removeAll(nodes);
-                        removeSeriesFromDisplay(series);
-                    })
-                );
+            Timeline tl = new Timeline(createSeriesRemoveTimeLine(series, 400));
                 tl.play();                
-            }
         } else {
             getPlotChildren().remove(series.getNode());
             for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode());
             removeSeriesFromDisplay(series);
         }
< prev index next >