RFR: 8303478: DatePicker throws uncatchable exception on tab out from garbled text
brunesto
duke at openjdk.org
Thu Nov 9 17:52:34 UTC 2023
On Tue, 31 Oct 2023 20:01:39 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:
>> The fix prevents the DatePicker from losing focus if the date is not parsable.
>
> modules/javafx.controls/src/main/java/javafx/scene/control/DatePicker.java line 159:
>
>> 157: * This is to address https://bugs.openjdk.org/browse/JDK-8303478
>> 158: */
>> 159: protected void commitValueOnFocusLost(){
>
> The `protected` modifier makes this method public API, which would most likely require a CSR to be approved. Since there doesn't seem to be a reason why this method should be public, I suggest making it private instead.
ok, I have changed it to private
> modules/javafx.controls/src/main/java/javafx/scene/control/DatePicker.java line 163:
>
>> 161: commitValue();
>> 162: } catch (DateTimeParseException dtpe) {
>> 163: this.requestFocus();
>
> I'm not sure whether moving focus to the control is a good idea, because this effectively captures focus and forces me to enter a valid date before I can do anything else. Why not just restore the previous value instead?
I have changed the behavior as you suggested.
The downside is that user might not notice that his/her changes were replaced, but it is anyway consistent to what happens when typing ENTER.
Robot test is updated accordingly.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1274#discussion_r1378511728
PR Review Comment: https://git.openjdk.org/jfx/pull/1274#discussion_r1378691165
More information about the openjfx-dev
mailing list