com.alee.managers.focus
Class FocusManager

java.lang.Object
  extended by com.alee.managers.focus.FocusManager

public class FocusManager
extends java.lang.Object

This manager allows you to track certain component their childs focus state by adding your custom FocusTracker or global focus listeners to track component focus state.

Author:
Mikle Garin

Field Summary
protected static java.lang.ref.WeakReference<java.awt.Component> focusOwner
          Reference to currently focused component.
protected static java.util.List<GlobalFocusListener> globalFocusListeners
          Global focus listeners list.
protected static boolean initialized
          Whether manager is initialized or not.
protected static java.lang.Object listenersLock
          Global focus listeners lock.
protected static java.lang.ref.WeakReference<java.awt.Component> oldFocusOwner
          Reference to previously focused component.
protected static java.util.Map<java.awt.Component,java.util.Map<FocusTracker,java.lang.Boolean>> trackers
          Focus trackers list.
protected static java.lang.Object trackersLock
          Tracker list and cache lock.
 
Constructor Summary
FocusManager()
           
 
Method Summary
static void addFocusTracker(java.awt.Component component, FocusTracker focusTracker)
          Registers focus tracker.
protected static void fireGlobalFocusChanged(java.awt.Component oldComponent, java.awt.Component newComponent)
          Fires about global focus change.
static java.awt.Component getFocusOwner()
          Returns currently focused component.
static java.awt.Component getOldFocusOwner()
          Returns previously focused component.
protected static java.util.Map<java.awt.Component,java.util.Map<FocusTracker,java.lang.Boolean>> getTrackersCopy()
          Returns trackers map copy.
static void initialize()
          Initializes manager if it wasn't already initialized.
static void registerGlobalFocusListener(GlobalFocusListener listener)
          Registers global focus listener.
static void removeFocusTracker(FocusTracker focusTracker)
          Unregisters specified focus tracker.
static void removeFocusTrackers(java.awt.Component component)
          Unregisters all focus trackers from the specified component.
static void unregisterGlobalFocusListener(GlobalFocusListener listener)
          Unregisters global focus listener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

trackersLock

protected static final java.lang.Object trackersLock
Tracker list and cache lock.


trackers

protected static final java.util.Map<java.awt.Component,java.util.Map<FocusTracker,java.lang.Boolean>> trackers
Focus trackers list.


listenersLock

protected static final java.lang.Object listenersLock
Global focus listeners lock.


globalFocusListeners

protected static final java.util.List<GlobalFocusListener> globalFocusListeners
Global focus listeners list.


oldFocusOwner

protected static java.lang.ref.WeakReference<java.awt.Component> oldFocusOwner
Reference to previously focused component.


focusOwner

protected static java.lang.ref.WeakReference<java.awt.Component> focusOwner
Reference to currently focused component.


initialized

protected static boolean initialized
Whether manager is initialized or not.

Constructor Detail

FocusManager

public FocusManager()
Method Detail

initialize

public static void initialize()
Initializes manager if it wasn't already initialized.


getTrackersCopy

protected static java.util.Map<java.awt.Component,java.util.Map<FocusTracker,java.lang.Boolean>> getTrackersCopy()
Returns trackers map copy.

Returns:
trackers map copy

getFocusOwner

public static java.awt.Component getFocusOwner()
Returns currently focused component.

Returns:
currently focused component

getOldFocusOwner

public static java.awt.Component getOldFocusOwner()
Returns previously focused component.

Returns:
previously focused component

registerGlobalFocusListener

public static void registerGlobalFocusListener(GlobalFocusListener listener)
Registers global focus listener.

Parameters:
listener - new global focus listener

unregisterGlobalFocusListener

public static void unregisterGlobalFocusListener(GlobalFocusListener listener)
Unregisters global focus listener.

Parameters:
listener - global focus listener to unregister

fireGlobalFocusChanged

protected static void fireGlobalFocusChanged(java.awt.Component oldComponent,
                                             java.awt.Component newComponent)
Fires about global focus change.

Parameters:
oldComponent - previously focused component
newComponent - currently focused component

addFocusTracker

public static void addFocusTracker(java.awt.Component component,
                                   FocusTracker focusTracker)
Registers focus tracker.

Be aware that when all links to either component or focus tracker (outside of the FocusManager) are lost all component focus trackers or specific focus tracker will be disposed. So make sure you keep strong references to whatever you pass here.

Parameters:
focusTracker - new focus tracker

removeFocusTracker

public static void removeFocusTracker(FocusTracker focusTracker)
Unregisters specified focus tracker.

Parameters:
focusTracker - focus tracker to unregister

removeFocusTrackers

public static void removeFocusTrackers(java.awt.Component component)
Unregisters all focus trackers from the specified component.

Parameters:
component - component to unregister all focus trackers from