<AWT Dev> <AWT dev>[9] Review request for 8154434: Open the request focus methods of the java.awt.Component which accept FocusEvent.Cause

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Fri Sep 23 19:56:08 UTC 2016

Looks good to me.


On 26.04.2016 16:14, Semyon Sadetsky wrote:
> On 4/26/2016 3:49 PM, Philip Race wrote:
>> > In applications one may need to know the reason why focus is requested
>> I do not mean why should apps want to *know* the cause.
>> I am asking why apps should be able to *specify* the cause as
>> proposed by this change.
>> Being "symmetric" is not a sufficient reason.
> I just clarified that there are no a lot of needs for apps here.
> But if a framework is developed it may require to develop a custom 
> implementation of KeyboardFocusManager, for example. Such KFM may 
> simply override any logic that uses focus cause.
> Just from general consideration: JFC have been made open for extensions.
> --Semyon
>> -phil.
>> On 4/26/16, 12:27 AM, Semyon Sadetsky wrote:
>>> On 4/25/2016 10:33 PM, Phil Race wrote:
>>>> You will need to convince me of the appropriateness of opening 
>>>> these methods.
>>>> It seems to me that are for the focus system, not for applications.
>>>> Why should an application be allowed to say "I would like component 
>>>> X" to
>>>> receive focus and tell it the reason is a mouse event" when in fact 
>>>> it is nothing of the kind.
>>> This is a continuation of the 8080395. I think it would be mostly 
>>> interesting for framework developers not for applications.
>>> In applications one may need to know the reason why focus is 
>>> requested to the component before the focus is set to it.
>>> As I heard from Anton (that was his task initially) opening the 
>>> cause was requested by some client, but, unfortunately, I don't have 
>>> any references.
>>> --Semyon
>>>> I would like to hear from others if they see a valid use case and 
>>>> that there are no
>>>> down-sides to mis-use.
>>>> -phil.
>>>> On 04/19/2016 02:30 AM, Semyon Sadetsky wrote:
>>>>> Hello,
>>>>> Please review fix for JDK9:
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8154434
>>>>> webrev: http://cr.openjdk.java.net/~ssadetsky/8154434/webrev.00/
>>>>> To support the new FocusEvent cause concept introduced by 
>>>>> JDK-8080395 the next package-private methods of the 
>>>>> java.awt.Component class are opened in the fix:
>>>>> boolean requestFocus(FocusEvent.Cause cause)  -> public void 
>>>>> requestFocus(FocusEvent.Cause cause)
>>>>> boolean requestFocus(boolean temporary, FocusEvent.Cause cause) -> 
>>>>> protected boolean requestFocus(boolean temporary, FocusEvent.Cause 
>>>>> cause)
>>>>> boolean requestFocusInWindow(FocusEvent.Cause cause) -> public 
>>>>> boolean requestFocusInWindow(FocusEvent.Cause cause)
>>>>> The methods are changed to be symmetric with the focus request 
>>>>> methods of the same class which do not accept the cause parameter.
>>>>> The method requestFocus(FocusEvent.Cause cause) was changed to 
>>>>> return no value similarly to the requestFocus() because the 
>>>>> returning boolean true cannot guarantee the focus gain.
>>>>> --Semyon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20160923/e50bd99d/attachment-0001.html>

More information about the awt-dev mailing list