RFR: 8235491: Tree/TableView: implementation of isSelected(int) violates contract [v10]

Jeanette Winzenburg fastegal at openjdk.org
Thu Aug 11 12:06:44 UTC 2022


On Wed, 10 Aug 2022 15:33:15 GMT, Andy Goryachev <angorya at openjdk.org> wrote:

>> 1. reword SelectionModel.isSelected(int) javadoc, removing incorrect statement "Is functionally equivalent to calling <code>getSelectedIndices().contains(index)</code>." 
>> 2. reimplement TableView.TableViewSelectionModel.isSelected(int) method to return true when at least one cell in *any* column is selected on the given row (was: *all* columns)
>> 3. change selectRowWhenInSingleCellSelectionMode() and selectRowWhenInSingleCellSelectionMode2() in TableViewSelectionModelImplTest to reflect new reality.
>> 
>> NOTE: proposed change alters semantics of isSelected(int) method (in the right direction, in my opinion).
>
> Andy Goryachev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:
> 
>  - Merge remote-tracking branch 'origin/master' into 8235491.isselected
>  - 8235491: updated test
>  - 8235491: removed unnecessary method
>  - 8235491: delegate to super()
>  - 8235491: revert clear selection
>  - 8235491: whitespace
>  - 8235491: additional tests
>  - Merge remote-tracking branch 'origin/master' into 8235491.isselected
>  - 8235491: javadoc
>  - 8235491: tree table view
>  - ... and 6 more: https://git.openjdk.org/jfx/compare/fac7b47a...35247bc6

modules/javafx.controls/src/main/java/javafx/scene/control/TreeTableRow.java line 445:

> 443: 
> 444:         boolean isSelected = getTreeTableView().getSelectionModel().isSelected(index, null);
> 445:         if (isSelected() == isSelected) return;

good example of when using the two-param method makes sense - we probably should do the same in TableRow (which does some convoluted ifs for the same result) to keep both as similar as possible. Might be done a new low-priority  follow-up issue

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

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


More information about the openjfx-dev mailing list