<Swing Dev> [9] Review request for 8074883: Tab key should move to focused button in a button group
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Tue Nov 1 19:37:30 UTC 2016
On 28.10.16 11:20, Semyon Sadetsky wrote:
>> probably it is possible to change the while loop to something? just to
>> hide the usage of Enumeration? like
>> Enumiration.asIterator().forEachRemaining()?
> I did not get why. What is wrong with Enumeration?
It is an old style iterator, and we can hide its usage.
>>
> If a component is disabled it cannot receive input focus, see
> java.awt.Component#isEnabled specs. The proposed spec clearly states :
>
> 247 * If this toggle button is a member of the {@link ButtonGroup}
> which has
> 248 * an another ***focusable*** toggle button selected, and the
> focus cause argument
>
>> It seems that the code in getGroupSelection() will focus the first
>> element in the group, but what elements will be focused if we call
>> Component#requestFocus(FocusEvent.Cause) directly for this disabled
>> compoenent? Will the the same(first) element be selected?
> I did find any mentions of "first element" in the proposed spec. Please
> clarify this question.
> According to the proposed spec the case when
> Component#requestFocus(FocusEvent.Cause) is called on disabled component
> will be handled as:
>
> 253 * In all other cases the result of the method is the same as
> calling
> 254 * {@link Component#requestFocus(FocusEvent.Cause)} on this
> toggle button.
The specification states that the call to
this.requestFocus(FocusEvent.Cause cause);
and the call to
selected.requestFocus(FocusEvent.Cause cause);
produce the same result "If this toggle button is a member of the {@link
ButtonGroup} which has an another focusable toggle button selected, and
the focus cause argument denotes window activation or focus traversal
action of any direction"
The question was "is that always true if the selected element is
disabled(but focusable)"? I guess that the implementation in the fix
will select the first "this"(the button on which requestFocus() was
called), but in the second case something different will be selected.
>>> On 10/25/2016 3:14 PM, Alexandr Scherbatiy wrote:
>>>> On 10/19/2016 8:14 PM, Semyon Sadetsky wrote:
>>>>> Hello,
>>>>>
>>>>> Please review fix for JDK9:
>>>>>
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8074883
>>>>>
>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8074883/webrev.00/
>>>>>
>>>>> To avoid unexpected selection change the selected button of a button
>>>>> group should always grab focus when focus is transferred form
>>>>> component outside the group to any unselected button inside the group
>>>>> in case of traversal or initial container activation actions.
>>>> - It is better to pass the cause and boolean focusInWindow arguments
>>>> to the getGroupSelection() method to avoid some code duplication like
>>>> switching over the same cause values.
>>>> - The fix will require a CCC request because it updates a javadoc
>>>> for the publci method.
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>>
>>>>> --Semyon
>>>>>
>>>>
>>>
>>
>>
>
--
Best regards, Sergey.
More information about the swing-dev
mailing list