Given a TableView with multiple and cell selection modes enabled, three 
different but closely related issues are tackled with this PR:

- Selection history, that is used to backtrack deselection of cells, removes 
deselected cells, so the "second to last" cell is always up to date for second 
and further deselection

- Selection history is also used for horizontal backtracking: deselection can 
go from right to left or left to right (in which case the second to last cell 
from the selected cells list is not correct, since these are always sorted from 
left to right, and top to bottom)
- Selection history, can be reset after the selection gets replaced with a new 
one (meaning that there is a new anchor)

Tests have been added for this three issues (in same order), for both TableView 
and TreeTableView
- testSelectionPathDeviationWorks1 was already there, but ignored, and with a 
small bug. Tests vertical backtrack 
- testSelectionPathDeviationWorks2 tests horizontal backtrack
- testSelectionPathDeviationWorks3 tests vertical backtrack, change of anchor, 
and tests vertical backtrack again

The three (six) of them fail without the proposed fix, pass with it.

Minor:  the selection history now has a bigger size (there is no real reason to 
limit it to 10 cells).

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

Commit messages:
 - Add more tests
 - Fix and include ignored tests that are now passing
 - Reset selection history, increase its size, use it also for horizontal 
selection, and remove deselected cells
 - Allow clearing and removing elements from SizeLimitedList

Changes: https://git.openjdk.org/jfx/pull/1008/files
 Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1008&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8300893
  Stats: 274 lines in 4 files changed: 247 ins; 5 del; 22 mod
  Patch: https://git.openjdk.org/jfx/pull/1008.diff
  Fetch: git fetch https://git.openjdk.org/jfx pull/1008/head:pull/1008

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

Reply via email to