< prev index next >

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

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

*** 52,61 **** --- 52,62 ---- import javafx.css.StyleableDoubleProperty; import javafx.css.CssMetaData; import javafx.css.PseudoClass; import javafx.css.converter.SizeConverter; + import javafx.collections.ListChangeListener; import javafx.css.Styleable; import javafx.css.StyleableProperty; /**
*** 265,274 **** --- 266,288 ---- // instead of removing it; when going from negative to positive item.getNode().getStyleClass().remove(NEGATIVE_STYLE); } } + @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); + } + } + } + @Override protected void seriesAdded(Series<X,Y> series, int seriesIndex) { // handle any data already in series // create entry in the map Map<String, Data<X,Y>> categoryMap = new HashMap<String, Data<X,Y>>(); for (int j=0; j<series.getData().size(); j++) {
*** 295,305 **** } if (categoryMap.size() > 0) seriesCategoryMap.put(series, categoryMap); } @Override protected void seriesRemoved(final Series<X,Y> series) { - updateDefaultColorIndex(series); // remove all symbol nodes if (shouldAnimate()) { pt = new ParallelTransition(); pt.setOnFinished(event -> { removeSeriesFromDisplay(series); --- 309,318 ----
*** 539,568 **** pt.stop(); removeSeriesFromDisplay(series); } } - private void updateDefaultColorIndex(final Series<X,Y> series) { - int clearIndex = seriesColorMap.get(series); - for (Data<X,Y> d : series.getData()) { - final Node bar = d.getNode(); - if (bar != null) { - bar.getStyleClass().remove(DEFAULT_COLOR+clearIndex); - } - } - } - private Node createBar(Series<X,Y> series, int seriesIndex, final Data<X,Y> item, int itemIndex) { Node bar = item.getNode(); if (bar == null) { bar = new StackPane(); bar.setAccessibleRole(AccessibleRole.TEXT); bar.setAccessibleRoleDescription("Bar"); bar.focusTraversableProperty().bind(Platform.accessibilityActiveProperty()); item.setNode(bar); } ! bar.getStyleClass().addAll("chart-bar", "series" + seriesIndex, "data" + itemIndex,series.defaultColorStyleClass); return bar; } private Data<X,Y> getDataItem(Series<X,Y> series, int seriesIndex, int itemIndex, String category) { Map<String, Data<X,Y>> catmap = seriesCategoryMap.get(series); --- 552,571 ---- pt.stop(); removeSeriesFromDisplay(series); } } private Node createBar(Series<X,Y> series, int seriesIndex, final Data<X,Y> item, int itemIndex) { Node bar = item.getNode(); if (bar == null) { bar = new StackPane(); 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 Data<X,Y> getDataItem(Series<X,Y> series, int seriesIndex, int itemIndex, String category) { Map<String, Data<X,Y>> catmap = seriesCategoryMap.get(series);
< prev index next >