On Fri, 28 Aug 2020 17:30:11 GMT, Kevin Rushforth <[email protected]> wrote:
>> Ambarish Rapte has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Fix for non editable ComboBox
>
> modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java
> line 143:
>
>> 142:
>> 143: if
>> (Boolean.FALSE.equals(control.getProperties().containsKey("excludeKeyMappingsForComboBoxEditor")))
>> {
>> 144: // This is not ComboBox's ListView
>
> Unless I'm missing something, you don't need to compare with a `Boolean` at
> all since containsKey returns a `boolean`
> primitive type, so I think this can be simplified to:
> if
> (!control.getProperties().containsKey("excludeKeyMappingsForComboBoxEditor"))
> {
>
> If instead you do want to check the value of the property, and not just its
> existence, you would need the following,
> and it would be important to check `!TRUE.equals` rather than `FALSE.equals`
> so that an unset property would be treated
> as `false`. if
> (!Boolean.TRUE.equals(control.getProperties().get("excludeKeyMappingsForComboBoxEditor")))
> {
Changed to use
`if
(!control.getProperties().containsKey("excludeKeyMappingsForComboBoxEditor")) {`
> modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/behavior/ListViewBehavior.java
> line 359:
>
>> 358: Boolean isComboBoxEditable =
>> (Boolean)getNode().getProperties().get("editableComboBoxEditor");
>> 359: if (isComboBoxEditable != null) {
>> 360: // This is ComboBox's ListView
>
> Maybe simplify this as follows, to match the earlier logic?
>
> if
> (Boolean.FALSE.equals(getNode().getProperties().get("editableComboBoxEditor")))
> {
With this change, we need to check both FALSE and TRUE.
For a Non ComboBox ListView
`getNode().getProperties().get("editableComboBoxEditor")` would be `null`.
if
(Boolean.FALSE.equals(getNode().getProperties().get("editableComboBoxEditor")))
{ add KeyMappings }
else if
(Boolean.TRUE.equals(getNode().getProperties().get("editableComboBoxEditor")))
{ remove KeyMappings }
else { ListView is not contained by ComboBox }
-------------
PR: https://git.openjdk.java.net/jfx/pull/172