RFR: 8235491: Tree/TableView: implementation of isSelected(int) violates contract [v8]
Andy Goryachev
angorya at openjdk.org
Mon Aug 8 22:10:32 UTC 2022
On Mon, 8 Aug 2022 21:58:40 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 incrementally with one additional commit since the last revision:
>
> 8235491: delegate to super()
> Aside: there is a general issue with cell selection not updated on columns modification (the selection visual is kept on the same column index without changing selectedCells accordingly - technically due to looping across the visibleLeafCells vs. all leaf columns. Might or might not be what ux requires, but the selectedCells must be in sync with the visuals always).
Personally, I feel that any manipulations with the columns structure should clear the existing selection. I would imagine it's such a rare operation, and the "fix" is so easy (clear selection) that it's not worth even creating an issue for - but I could be wrong.
> Don't remember if we have it covered in JBS?
I did not find a close match. There is JDK-8095010; there is ticket you might be familiar with JDK-8093855; and one possibly related JDK-8091191.
-------------
PR: https://git.openjdk.org/jfx/pull/839
More information about the openjfx-dev
mailing list