< prev index next >

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

Print this page
rev 9945 : 8089755: AreaChart area color change when series is removed


 385             ));
 386         }
 387         for (int j=0; j<series.getData().size(); j++) {
 388             Data<X,Y> item = series.getData().get(j);
 389             final Node symbol = createSymbol(series, seriesIndex, item, j);
 390             if (symbol != null) {
 391                 if (shouldAnimate()) {
 392                     symbol.setOpacity(0);
 393                     getPlotChildren().add(symbol);
 394                     // fade in new symbol
 395                     keyFrames.add(new KeyFrame(Duration.ZERO, new KeyValue(symbol.opacityProperty(), 0)));
 396                     keyFrames.add(new KeyFrame(Duration.millis(200), new KeyValue(symbol.opacityProperty(), 1)));
 397                 }
 398                 else {
 399                     getPlotChildren().add(symbol);
 400                 }
 401             }
 402         }
 403         if (shouldAnimate()) animate(keyFrames.toArray(new KeyFrame[keyFrames.size()]));
 404     }
 405     private void updateDefaultColorIndex(final Series<X,Y> series) {
 406         int clearIndex = seriesColorMap.get(series);
 407         Path seriesLine = (Path)((Group)series.getNode()).getChildren().get(1);
 408         Path fillPath = (Path)((Group)series.getNode()).getChildren().get(0);
 409         if (seriesLine != null) {
 410             seriesLine.getStyleClass().remove(DEFAULT_COLOR+clearIndex);
 411         }
 412         if (fillPath != null) {
 413             fillPath.getStyleClass().remove(DEFAULT_COLOR+clearIndex);
 414         }
 415         for (int j=0; j < series.getData().size(); j++) {
 416             final Node node = series.getData().get(j).getNode();
 417             if(node!=null) {
 418                 node.getStyleClass().remove(DEFAULT_COLOR+clearIndex);
 419             }
 420         }
 421     }
 422     @Override protected  void seriesRemoved(final Series<X,Y> series) {
 423         updateDefaultColorIndex(series);
 424         // remove series Y multiplier
 425         seriesYMultiplierMap.remove(series);
 426         // remove all symbol nodes
 427         if (shouldAnimate()) {
 428             Timeline tl = new Timeline(createSeriesRemoveTimeLine(series, 400));
 429             tl.play();
 430         } else {
 431             getPlotChildren().remove(series.getNode());
 432             for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode());
 433             removeSeriesFromDisplay(series);
 434         }
 435     }
 436 
 437     /** @inheritDoc */
 438     @Override protected void layoutPlotChildren() {
 439         List<LineTo> constructedPath = new ArrayList<>(getDataSize());
 440         for (int seriesIndex=0; seriesIndex < getDataSize(); seriesIndex++) {
 441             Series<X, Y> series = getData().get(seriesIndex);
 442             DoubleProperty seriesYAnimMultiplier = seriesYMultiplierMap.get(series);
 443             double lastX = 0;




 385             ));
 386         }
 387         for (int j=0; j<series.getData().size(); j++) {
 388             Data<X,Y> item = series.getData().get(j);
 389             final Node symbol = createSymbol(series, seriesIndex, item, j);
 390             if (symbol != null) {
 391                 if (shouldAnimate()) {
 392                     symbol.setOpacity(0);
 393                     getPlotChildren().add(symbol);
 394                     // fade in new symbol
 395                     keyFrames.add(new KeyFrame(Duration.ZERO, new KeyValue(symbol.opacityProperty(), 0)));
 396                     keyFrames.add(new KeyFrame(Duration.millis(200), new KeyValue(symbol.opacityProperty(), 1)));
 397                 }
 398                 else {
 399                     getPlotChildren().add(symbol);
 400                 }
 401             }
 402         }
 403         if (shouldAnimate()) animate(keyFrames.toArray(new KeyFrame[keyFrames.size()]));
 404     }
 405 
















 406     @Override protected  void seriesRemoved(final Series<X,Y> series) {

 407         // remove series Y multiplier
 408         seriesYMultiplierMap.remove(series);
 409         // remove all symbol nodes
 410         if (shouldAnimate()) {
 411             Timeline tl = new Timeline(createSeriesRemoveTimeLine(series, 400));
 412             tl.play();
 413         } else {
 414             getPlotChildren().remove(series.getNode());
 415             for (Data<X,Y> d:series.getData()) getPlotChildren().remove(d.getNode());
 416             removeSeriesFromDisplay(series);
 417         }
 418     }
 419 
 420     /** @inheritDoc */
 421     @Override protected void layoutPlotChildren() {
 422         List<LineTo> constructedPath = new ArrayList<>(getDataSize());
 423         for (int seriesIndex=0; seriesIndex < getDataSize(); seriesIndex++) {
 424             Series<X, Y> series = getData().get(seriesIndex);
 425             DoubleProperty seriesYAnimMultiplier = seriesYMultiplierMap.get(series);
 426             double lastX = 0;


< prev index next >