[Review request] Editable ComboBox / Spinner controls need uniform 'commit on focus lost' semantics

Jonathan Giles jonathan.giles at oracle.com
Fri Jun 17 00:35:51 UTC 2016

Hi all,

Please review my addition of 'commitValue' / 'cancelEdit' APIs to 
Spinner and ComboBox. These APIs mirror the API on TextInputControl, and 
allows for the controls (rather than their skins) to properly commit on 
focus loss.

Previously committing on focus loss was handled by the control skins, 
but because these skins were created after the control was shown in a 
Scene, it was possible (and highly probable) that other listeners would 
be installed on the control before the 'commit-on-focus-loss' listener 
was installed. This would result in situations where listeners got the 
old data.

By adding these additional two methods to Spinner and ComboBox, we can 
prevent this by being the first listener in the queue.

I should note that cancelEdit() is not required for this particular fix, 
but it seemed appropriate to consider its introduction at the same time 
as commitValue().

Jira issue: https://bugs.openjdk.java.net/browse/JDK-8150946
Webrev: http://cr.openjdk.java.net/~jgiles/8150946/


-- Jonathan

More information about the openjfx-dev mailing list