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