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