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

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

Commit messages:
 - testTickMarksMatchBarPositionsAfterAnimation
 - testBarPositionsWithMultipleIncompleteSeries
 - BarChart: Fix bar position when there are missing data items in other series
 - BarChart: Fix sign error in bar offset layout calculation
 - CategoryAxis: Ensure requestAxisLayout is called and measureInvalid=true 
when animated properties change

Changes: https://git.openjdk.org/jfx/pull/1492/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1492&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8198830
  Stats: 119 lines in 3 files changed: 113 ins; 2 del; 4 mod
  Patch: https://git.openjdk.org/jfx/pull/1492.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1492/head:pull/1492

PR: https://git.openjdk.org/jfx/pull/1492

Reply via email to