RFR: 8193442: Removing TreeItem from a TreeTableView sometime changes selectedItem
Jose Pereda
jpereda at openjdk.java.net
Mon Mar 14 14:55:10 UTC 2022
This PR fixes JDK-[8193442](https://bugs.openjdk.java.net/browse/JDK-8193442), but also [JDK-8187596](https://bugs.openjdk.java.net/browse/JDK-8187596), and verifies that the tests mentioned in [JDK-8088157](https://bugs.openjdk.java.net/browse/JDK-8088157) are working (with a minor fix).
When removing an item that is below the selected item from TreeTableView or TreeView controls the selection and/or focus was wrongly changed in some occasions, because a shift in the selection was applied.
This PR adds a method to ControlUtils to get the index of the sibling that is selected/focused or contains the descendant item with the current selection/focus.
This index is required to compare properly if the selected/focus item is above or below the item that was removed, by comparing the indices of siblings.
Tests have been added to TreeViewTest and TreeTableViewTest based on the existing tests on JDK-8193442 and JDK-8187596. The four tests fail without this PR, pass with it.
In the process, I noticed that the ignored tests referred from JDK-8088157 were already passing, after removing some obsolete asserts, even without this PR.
-------------
Commit messages:
- Don't shift selection/focus if item is below removed element
Changes: https://git.openjdk.java.net/jfx/pull/753/files
Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=753&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8193442
Stats: 193 lines in 5 files changed: 175 ins; 12 del; 6 mod
Patch: https://git.openjdk.java.net/jfx/pull/753.diff
Fetch: git fetch https://git.openjdk.java.net/jfx pull/753/head:pull/753
PR: https://git.openjdk.java.net/jfx/pull/753
More information about the openjfx-dev
mailing list