Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx.event
Class CompoundFocusListener

    java.lang.Object
      org.jdesktop.beans.AbstractBean
          org.jdesktop.swingx.event.CompoundFocusListener

    public class CompoundFocusListener

extends AbstractBean

An convenience class which maps focusEvents received from a container hierarchy to a bound read-only property. Registered PropertyChangeListeners are notified if the focus is transfered into/out of the hierarchy of a given root.

F.i, client code which wants to get notified if focus enters/exits the hierarchy below panel would install the compound focus listener like:

             // add some components inside
             panel.add(new JTextField("something to .... focus"));
             panel.add(new JXDatePicker(new Date()));
             JComboBox combo = new JComboBox(new Object[] {"dooooooooo", 1, 2, 3, 4 });
             combo.setEditable(true);
             panel.add(new JButton("something else to ... focus"));
             panel.add(combo);
             panel.setBorder(new TitledBorder("has focus dispatcher"));
             // register the compound dispatcher
             CompoundFocusListener report = new CompoundFocusListener(panel);
             PropertyChangeListener l = new PropertyChangeListener() {

                 public void propertyChange(PropertyChangeEvent evt) {
                     // do something useful here

                 }};
             report.addPropertyChangeListener(l);

PENDING JW: change of current instance of KeyboardFocusManager?

Constructor Summary
`CompoundFocusListener(javax.swing.JComponent root)` Instantiates a CompoundFocusListener on the component hierarchy below the given component.

Method Summary
`boolean` | `isFocused()` Return true if the root or any of its descendants is focused.
`protected void` | `permanentFocusOwnerChanged(java.awt.Component focusOwner)` Updates focused property depending on whether or not the given component is below the root's hierarchy.
`void` | `release()` Releases all listeners and internal references.

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`

Constructor Detail

### CompoundFocusListener

    public CompoundFocusListener(javax.swing.JComponent root)

  Instantiates a CompoundFocusListener on the component hierarchy below the given component.

  Parameters:
    `root` - the root of a component hierarchy
  Throws:
    `java.lang.NullPointerException` - if the root is null

Method Detail

### isFocused

    public boolean isFocused()

  Return true if the root or any of its descendants is focused. This is a read-only bound property, that is property change event is fired if focus is transfered into/out of root's hierarchy.

  Returns:
    a boolean indicating whether or not any component in the container hierarchy below root is permanent focus owner.

### release

    public void release()

  Releases all listeners and internal references.

  Note: this instance must not be used after calling this method.

### permanentFocusOwnerChanged

    protected void permanentFocusOwnerChanged(java.awt.Component focusOwner)

  Updates focused property depending on whether or not the given component is below the root's hierarchy.

  Note: Does nothing if the component is null. This might not be entirely correct, but property change events from the focus manager come in pairs, with only one of the new/old value not-null.

  Parameters:
    `focusOwner` - the component with is the current focusOwner.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.