On Fri, 28 Aug 2020 17:30:11 GMT, Kevin Rushforth <k...@openjdk.org> 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