On Fri, 24 Apr 2020 15:07:59 GMT, Jeanette Winzenburg <[email protected]> wrote:
> Which seems to be hinted at in a code comment in > `SingleSelectionModel.select(item)`: I agree that selectedIndex should be -1 for an uncontained value, so that the below condition always holds true. And this is already working well with ComboBox. `assertEquals(getItems().indexOf(selectedItem), selectedIndex)` The fix for [JDK-8241999](https://bugs.openjdk.java.net/browse/JDK-8241999) would solve most of the behavior differences of contained Vs uncontained item selection. (that I was looking at selectPrevious(), selectNext()). > true, that's spec'ed in ComboBox only .. so by analogy I considered it being > the same here. Hmm .. might need an update > of the doc? Thanks for the the pointer, After reading it, I have a doubtful understanding about it as, that, The spec is only about `ComboBox.valueProperty()` and not about `SelectionModel.selectedIndex` or `SelectionModel.selectedItem`. so clearSelection() can/should clear the SelectionModel state but should not clear ComboBox.valueProperty(). And ComboBox does not follow this spec, In below scenario `ComboBox.valueProperty()` is cleared to NULL. `comboBox.getSelectionModel().select(comboBox.getItems(1));` `comboBox.getSelectionModel().clearSelection();` => clears the SelectionModel.selectedIndex to -1, SelectionModel.selectedItem and ComboBox.getValue() to NULL. So I think, for ChoieBox, In addition to doc change we would need fix the behavior as well, and maintain same behavior of `clearSelection()` with contained and uncontained items. But again this is a different issue and not related to this fix. So the fix itself looks good to me along with the upcoming fix for [JDK-8241999](https://bugs.openjdk.java.net/browse/JDK-8241999). ------------- PR: https://git.openjdk.java.net/jfx/pull/191
