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