< prev index next >

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

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

*** 68,79 **** new HashMap<Series, Map<String, List<Data<X, Y>>>>(); private Legend legend = new Legend(); private final Orientation orientation; private CategoryAxis categoryAxis; private ValueAxis valueAxis; - private int seriesDefaultColorIndex = 0; - private Map<Series<X, Y>, String> seriesDefaultColorMap = new HashMap<Series<X, Y>, String>(); // RT-23125 handling data removal when a category is removed. private ListChangeListener<String> categoriesListener = new ListChangeListener<String>() { @Override public void onChanged(ListChangeListener.Change<? extends String> c) { while (c.next()) { for(String cat : c.getRemoved()) { --- 68,77 ----
*** 286,300 **** new KeyFrame(Duration.millis(700), new KeyValue(currentDisplayedXValueProperty(item), item.getXValue(), Interpolator.EASE_BOTH))) ); } } /** @inheritDoc */ @Override protected void seriesAdded(Series<X, Y> series, int seriesIndex) { - String defaultColorStyleClass = "default-color" + (seriesDefaultColorIndex % 8); - seriesDefaultColorMap.put(series, defaultColorStyleClass); - seriesDefaultColorIndex++; // handle any data already in series // create entry in the map Map<String, List<Data<X, Y>>> categoryMap = new HashMap<String, List<Data<X, Y>>>(); for (int j = 0; j < series.getData().size(); j++) { Data<X, Y> item = series.getData().get(j); --- 284,308 ---- new KeyFrame(Duration.millis(700), new KeyValue(currentDisplayedXValueProperty(item), item.getXValue(), Interpolator.EASE_BOTH))) ); } } + @Override protected void seriesChanged(ListChangeListener.Change<? extends Series> c) { + // Update style classes for all series lines and symbols + // Note: is there a more efficient way of doing this? + for (int i = 0; i < getDataSize(); i++) { + final Series<X,Y> series = getData().get(i); + for (int j=0; j<series.getData().size(); j++) { + Data<X,Y> item = series.getData().get(j); + Node bar = item.getNode(); + bar.getStyleClass().setAll("chart-bar", "series" + i, "data" + j, series.defaultColorStyleClass); + } + } + } + /** @inheritDoc */ @Override protected void seriesAdded(Series<X, Y> series, int seriesIndex) { // handle any data already in series // create entry in the map Map<String, List<Data<X, Y>>> categoryMap = new HashMap<String, List<Data<X, Y>>>(); for (int j = 0; j < series.getData().size(); j++) { Data<X, Y> item = series.getData().get(j);
*** 348,360 **** } return t; } @Override protected void seriesRemoved(final Series<X, Y> series) { - // Added for RT-40104 - seriesDefaultColorIndex--; - // remove all symbol nodes if (shouldAnimate()) { ParallelTransition pt = new ParallelTransition(); pt.setOnFinished(event -> { removeSeriesFromDisplay(series); --- 356,365 ----
*** 511,523 **** legend.getItems().clear(); if (getData() != null) { for (int seriesIndex = 0; seriesIndex < getData().size(); seriesIndex++) { Series<X,Y> series = getData().get(seriesIndex); Legend.LegendItem legenditem = new Legend.LegendItem(series.getName()); - String defaultColorStyleClass = seriesDefaultColorMap.get(series); legenditem.getSymbol().getStyleClass().addAll("chart-bar", "series" + seriesIndex, "bar-legend-symbol", ! defaultColorStyleClass); legend.getItems().add(legenditem); } } if (legend.getItems().size() > 0) { if (getLegend() == null) { --- 516,527 ---- legend.getItems().clear(); if (getData() != null) { for (int seriesIndex = 0; seriesIndex < getData().size(); seriesIndex++) { Series<X,Y> series = getData().get(seriesIndex); Legend.LegendItem legenditem = new Legend.LegendItem(series.getName()); legenditem.getSymbol().getStyleClass().addAll("chart-bar", "series" + seriesIndex, "bar-legend-symbol", ! series.defaultColorStyleClass); legend.getItems().add(legenditem); } } if (legend.getItems().size() > 0) { if (getLegend() == null) {
*** 535,546 **** bar.setAccessibleRole(AccessibleRole.TEXT); bar.setAccessibleRoleDescription("Bar"); bar.focusTraversableProperty().bind(Platform.accessibilityActiveProperty()); item.setNode(bar); } ! String defaultColorStyleClass = seriesDefaultColorMap.get(series); ! bar.getStyleClass().setAll("chart-bar", "series" + seriesIndex, "data" + itemIndex, defaultColorStyleClass); return bar; } private List<Data<X, Y>> getDataItem(Series<X, Y> series, String category) { Map<String, List<Data<X, Y>>> catmap = seriesCategoryMap.get(series); --- 539,549 ---- bar.setAccessibleRole(AccessibleRole.TEXT); bar.setAccessibleRoleDescription("Bar"); bar.focusTraversableProperty().bind(Platform.accessibilityActiveProperty()); item.setNode(bar); } ! bar.getStyleClass().setAll("chart-bar", "series" + seriesIndex, "data" + itemIndex, series.defaultColorStyleClass); return bar; } private List<Data<X, Y>> getDataItem(Series<X, Y> series, String category) { Map<String, List<Data<X, Y>>> catmap = seriesCategoryMap.get(series);
< prev index next >