Fixes [JDK-8311505](https://bugs.openjdk.org/browse/JDK-8311505)
This PR uses `set(int index, int end, boolean isSet)` in `javafx.scene.control.MultipleSelectionModelBase` to avoid excessive calls to `indexOf` when deselecting continuous ranges of rows. Benchmarks produced with the test application provided here: https://bugs.openjdk.org/browse/JDK-8311505 Before (mainline): Select item count 500000 took 724 Deselect item count 500000 took 73103 After (this PR): Select item count 500000 took 249 Deselect item count 500000 took 88 Passes all unit tests: `.\gradlew.bat :controls:test` `.\gradlew.bat :systemTests:test` Thank you! ------------- Commit messages: - Revert "iterate clear list in reverse order" - iterate clear list in reverse order - Revert "use clearSelection() instead of a loop of clearSelection(int)" - use clearSelection() instead of a loop of clearSelection(int) - reflect order of operations in clear(int) in clear path of set(int,int,boolean) - 8311505: simplify processContiguousRanges - 8311505: Deselection of TableView rows is slow; use set(int,int,boolean) to process ranges for removel and addition - Revert "8311505: Deselection of TableView rows is slow" - Revert "8311505: Deselection of TableView rows is slow; filter by bitset explicitly; add additional check to avoid out of bounds exception" - 8311505: Deselection of TableView rows is slow; filter by bitset explicitly; add additional check to avoid out of bounds exception - ... and 1 more: https://git.openjdk.org/jfx/compare/7b845519...a2f9230a Changes: https://git.openjdk.org/jfx/pull/2100/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2100&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8311505 Stats: 34 lines in 2 files changed: 19 ins; 3 del; 12 mod Patch: https://git.openjdk.org/jfx/pull/2100.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2100/head:pull/2100 PR: https://git.openjdk.org/jfx/pull/2100
