<AWT Dev> RFC: KeyboardFocusManager patch

Konstantin Voloshin Konstantin.Voloshin at Sun.COM
Thu Jun 21 11:04:18 PDT 2007


I'd choose Roman's completely silent variant, as most simplistic, and as 
throwing less exceptions ( that is "no exceptions" :) ).

And to give "food for thought" to custom Toolkit implementers, we can 
introduce e.g.:

public abstract class DummyToolkit  // Or "CustomToolkit"
     extends Toolkit
     implements KeyboardFocusManagerPeerProvider
{
     public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(
         KeyboardFocusManager manager )
     {
         return new DummyKeyboardFocusManagerPeer();
     }
}

And succeeding "pluggable" points could also fit there.


Roman Kennke wrote:
> Hi Anton,
> 
>>> I think both approaches are fine and have more or less the same effect.
>>> The 1st throws the exception a little earlier. If the reasoning is to
>>> notify the implementor that there's something missing, this might be
>>> better because it will pop up even in the smallest HelloWorld example.
>>> But I guess there will be some initial focus setup on any window, so
>>> this is not really an argument. Why do you think the 2nd is preferable?
>>>
>> Just because it leaves the implementor a chance not to do additional
>> work he probably doesn't want to. Say, if he believes he will live without
>> focus at all (a custom headless toolkit, or kbd-less devises etc.).
>> Not very useful, of course, but theoretically possible.
> 
> Not really. When we throw an exception from the DummyKFMPeer, then the
> application will not come up properly. This is why I started this in the
> first place (ok, I got an NPE instead of some other execption, but that
> doesn't really matter). My reasoning with the DummyKFMPeer was indeed to
> leave this open (yes, some apps can indeed live without focus). It could
> be a good idea then to issue a warning only, rather than throwing an
> exception from the DummyKFMPeer methods.
> 
> /Roman



More information about the awt-dev mailing list