src/macosx/classes/sun/lwawt/LWKeyboardFocusManagerPeer.java
Print this page
*** 24,110 ****
*/
package sun.lwawt;
import java.awt.Component;
- import java.awt.KeyboardFocusManager;
import java.awt.Window;
-
- import java.util.Map;
- import java.util.HashMap;
-
- import sun.awt.AWTAccessor;
- import sun.awt.AppContext;
import sun.awt.KeyboardFocusManagerPeerImpl;
public class LWKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
! private Object lock = new Object();
! private LWWindowPeer focusedWindow;
! private LWComponentPeer focusOwner;
!
! private static Map<KeyboardFocusManager, LWKeyboardFocusManagerPeer> instances =
! new HashMap<KeyboardFocusManager, LWKeyboardFocusManagerPeer>();
! public static synchronized LWKeyboardFocusManagerPeer getInstance(AppContext ctx) {
! return getInstance(AWTAccessor.getKeyboardFocusManagerAccessor().
! getCurrentKeyboardFocusManager(ctx));
}
! public static synchronized LWKeyboardFocusManagerPeer getInstance(KeyboardFocusManager manager) {
! LWKeyboardFocusManagerPeer instance = instances.get(manager);
! if (instance == null) {
! instance = new LWKeyboardFocusManagerPeer(manager);
! instances.put(manager, instance);
! }
! return instance;
}
! public LWKeyboardFocusManagerPeer(KeyboardFocusManager manager) {
! super(manager);
}
@Override
public Window getCurrentFocusedWindow() {
! synchronized (lock) {
! return (focusedWindow != null) ? (Window)focusedWindow.getTarget() : null;
}
}
@Override
public Component getCurrentFocusOwner() {
! synchronized (lock) {
! return (focusOwner != null) ? focusOwner.getTarget() : null;
}
}
@Override
public void setCurrentFocusOwner(Component comp) {
! synchronized (lock) {
! focusOwner = (comp != null) ? (LWComponentPeer)comp.getPeer() : null;
! }
! }
!
! void setFocusedWindow(LWWindowPeer peer) {
! synchronized (lock) {
! focusedWindow = peer;
! }
! }
!
! LWWindowPeer getFocusedWindow() {
! synchronized (lock) {
! return focusedWindow;
! }
! }
!
! void setFocusOwner(LWComponentPeer peer) {
! synchronized (lock) {
! focusOwner = peer;
! }
! }
!
! LWComponentPeer getFocusOwner() {
! synchronized (lock) {
! return focusOwner;
}
}
}
--- 24,72 ----
*/
package sun.lwawt;
import java.awt.Component;
import java.awt.Window;
import sun.awt.KeyboardFocusManagerPeerImpl;
public class LWKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
+ private static final LWKeyboardFocusManagerPeer inst = new LWKeyboardFocusManagerPeer();
! private Window focusedWindow;
! private Component focusOwner;
! public static LWKeyboardFocusManagerPeer getInstance() {
! return inst;
}
! private LWKeyboardFocusManagerPeer() {
}
! @Override
! public void setCurrentFocusedWindow(Window win) {
! synchronized (this) {
! focusedWindow = win;
! }
}
@Override
public Window getCurrentFocusedWindow() {
! synchronized (this) {
! return focusedWindow;
}
}
@Override
public Component getCurrentFocusOwner() {
! synchronized (this) {
! return focusOwner;
}
}
@Override
public void setCurrentFocusOwner(Component comp) {
! synchronized (this) {
! focusOwner = comp;
}
}
}