RFR: 8198830: BarChart: auto-range of CategoryAxis not working on dynamically setting data

Andy Goryachev angorya at openjdk.org
Thu Jun 27 23:41:26 UTC 2024


On Thu, 27 Jun 2024 20:22:24 GMT, Markus Mack <mmack at openjdk.org> wrote:

> This PR fixes the placement of `BarChart` bars and category tick marks, particularly when adding data / multiple series and enabling animations.
> It covers all cases mentioned in the JBS ticket and adds a unit test.
> 
> The settable `barGap` and `categoryGap` now should also behave as expected.
> 
> There's a change regarding consistent placement of bars when there is more than one series:
> Now, for example, if there are two series S1 and S2, S1 bars will always be on the left and S2 bars will always be on the right side of the tick mark.
> This means that if some data category (=x-value) is only present in S2, but not S1, the bar will still be drawn on the right. The previous behavior, if the marks weren't off completely, would have put it on the left which I'd say looks inconsistent.
> There's a test for this situation as well.
> 
> Note this does not fix [JDK-8334873](https://bugs.openjdk.org/browse/JDK-8334873) where bars get stuck while having different widths. There seem to be additional issues which seem not directly related to the changed code and are probably out of scope for this PR (unless we see some regressions).

modules/javafx.controls/src/main/java/javafx/scene/chart/CategoryAxis.java line 74:

> 72:     /** This is the position of the first category along this axis */
> 73:     private final DoubleProperty firstCategoryPos =
> 74:             new SimpleDoubleProperty(this, "firstCategoryPos", 0) {

question: shouldn't line 74 be indented 4 spaces instead 8?

also, we probably should update copyright year in all the touched files, like so:

 * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved.


(I'll do a full review tomorrow)

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1492#discussion_r1657926068


More information about the openjfx-dev mailing list