< 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,477 **** @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.play(); } else { getPlotChildren().remove(series.getNode()); for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode()); removeSeriesFromDisplay(series); --- 446,456 ---- @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(); } else { getPlotChildren().remove(series.getNode()); for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode()); removeSeriesFromDisplay(series);
< prev index next >