15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt.windows;
27
28 import java.awt.Window;
29 import java.awt.Component;
30 import java.awt.peer.ComponentPeer;
31
32 import sun.awt.AWTAccessor;
33 import sun.awt.AWTAccessor.ComponentAccessor;
34 import sun.awt.KeyboardFocusManagerPeerImpl;
35 import sun.awt.CausedFocusEvent;
36
37 final class WKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
38 static native void setNativeFocusOwner(ComponentPeer peer);
39 static native Component getNativeFocusOwner();
40 static native Window getNativeFocusedWindow();
41
42 private static final WKeyboardFocusManagerPeer inst = new WKeyboardFocusManagerPeer();
43
44 public static WKeyboardFocusManagerPeer getInstance() {
45 return inst;
46 }
47
48 private WKeyboardFocusManagerPeer() {
49 }
50
51 @Override
52 public void setCurrentFocusOwner(Component comp) {
53 final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
54 setNativeFocusOwner(comp != null ? acc.getPeer(comp) : null);
55 }
58 public Component getCurrentFocusOwner() {
59 return getNativeFocusOwner();
60 }
61
62 @Override
63 public void setCurrentFocusedWindow(Window win) {
64 // Not used on Windows
65 throw new RuntimeException("not implemented");
66 }
67
68 @Override
69 public Window getCurrentFocusedWindow() {
70 return getNativeFocusedWindow();
71 }
72
73 public static boolean deliverFocus(Component lightweightChild,
74 Component target,
75 boolean temporary,
76 boolean focusedWindowChangeAllowed,
77 long time,
78 CausedFocusEvent.Cause cause)
79 {
80 // TODO: do something to eliminate this forwarding
81 return KeyboardFocusManagerPeerImpl.deliverFocus(lightweightChild,
82 target,
83 temporary,
84 focusedWindowChangeAllowed,
85 time,
86 cause,
87 getNativeFocusOwner());
88 }
89 }
|
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt.windows;
27
28 import java.awt.Window;
29 import java.awt.Component;
30 import java.awt.peer.ComponentPeer;
31
32 import sun.awt.AWTAccessor;
33 import sun.awt.AWTAccessor.ComponentAccessor;
34 import sun.awt.KeyboardFocusManagerPeerImpl;
35 import java.awt.event.FocusEvent.Cause;
36
37 final class WKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
38 static native void setNativeFocusOwner(ComponentPeer peer);
39 static native Component getNativeFocusOwner();
40 static native Window getNativeFocusedWindow();
41
42 private static final WKeyboardFocusManagerPeer inst = new WKeyboardFocusManagerPeer();
43
44 public static WKeyboardFocusManagerPeer getInstance() {
45 return inst;
46 }
47
48 private WKeyboardFocusManagerPeer() {
49 }
50
51 @Override
52 public void setCurrentFocusOwner(Component comp) {
53 final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
54 setNativeFocusOwner(comp != null ? acc.getPeer(comp) : null);
55 }
58 public Component getCurrentFocusOwner() {
59 return getNativeFocusOwner();
60 }
61
62 @Override
63 public void setCurrentFocusedWindow(Window win) {
64 // Not used on Windows
65 throw new RuntimeException("not implemented");
66 }
67
68 @Override
69 public Window getCurrentFocusedWindow() {
70 return getNativeFocusedWindow();
71 }
72
73 public static boolean deliverFocus(Component lightweightChild,
74 Component target,
75 boolean temporary,
76 boolean focusedWindowChangeAllowed,
77 long time,
78 Cause cause)
79 {
80 // TODO: do something to eliminate this forwarding
81 return KeyboardFocusManagerPeerImpl.deliverFocus(lightweightChild,
82 target,
83 temporary,
84 focusedWindowChangeAllowed,
85 time,
86 cause,
87 getNativeFocusOwner());
88 }
89 }
|