org.jdesktop.swingx.plaf.basic
Class CapsLockSupport

java.lang.Object
  extended by org.jdesktop.beans.AbstractBean
      extended by org.jdesktop.swingx.plaf.basic.CapsLockSupport
All Implemented Interfaces:
KeyEventDispatcher

public final class CapsLockSupport
extends AbstractBean
implements KeyEventDispatcher

A class for determining the state of the CAPS LOCK key. It also supports notification when the locking state changes.

Although it is possible to use Toolkit.getLockingKeyState(int) to determine the current state of the CAPS LOCK key, that method is not guaranteed to work on all platforms. This class attempts to handle those shortfalls and provide an easy mechanism for listening to state changes.

 CapsLockSupport cls = CapsLockSupport.getInstance();
 // for get the current state of the caps lock key
 boolean currentState = cls.isCapsLockEnabled();
 // for listening to changes in the caps lock state
 cls.addPropertyChangeListener("capsLockEnabled", myListener);
 
There is one special case to be aware of. If CapsLockSupport is not able to determine the state of the CAPS LOCK key, then isInitialized() will return false until it is able to introspect a KeyEvent and determine the current locking state. If CapsLockSupport must use delayed initialization, it will fire a property change to notify listeners that it is now in an accurate state.

Author:
kschaefer

Method Summary
 boolean dispatchKeyEvent(KeyEvent e)
          This is an implementation detail and should not be considered public.
static CapsLockSupport getInstance()
          Gets the only instance of CapsLockSupport.
 boolean isCapsLockEnabled()
          Determines the current state of the CAPS LOCK key.
 boolean isInitialized()
          Determines if CapsLockSupport is accurately synchronized with the state of the CAPS LOCK key.
 
Methods inherited from class org.jdesktop.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static CapsLockSupport getInstance()
Gets the only instance of CapsLockSupport.

Returns:
the CapsLockSupport instance

isInitialized

public boolean isInitialized()
Determines if CapsLockSupport is accurately synchronized with the state of the CAPS LOCK key. When not initialized, isCapsLockEnabled() will always return false . CapsLockSupport will fail to initialize only if Toolkit#getLockingKeyState(int) throws an exception; in that case, it will initialize as soon as it receives a valid key event (that can be used to determine the current locking state).

Returns:
true if CapsLockSupport accurately knows the state of the CAPS LOCK key

isCapsLockEnabled

public boolean isCapsLockEnabled()
Determines the current state of the CAPS LOCK key.

Returns:
true if CAPS LOCK is enabled; false otherwise

dispatchKeyEvent

public boolean dispatchKeyEvent(KeyEvent e)
This is an implementation detail and should not be considered public.

Specified by:
dispatchKeyEvent in interface KeyEventDispatcher


Copyright © 2012. All Rights Reserved.