Package org.jdesktop.swingx.event
Class CompoundFocusListener
java.lang.Object
org.jdesktop.beans.AbstractBean
org.jdesktop.swingx.event.CompoundFocusListener
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
ConstructorsConstructorDescriptionInstantiates a CompoundFocusListener on the component hierarchy below the given component. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Return true if the root or any of its descendants is focused.protected void
permanentFocusOwnerChanged
(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
-
Constructor Details
-
CompoundFocusListener
Instantiates a CompoundFocusListener on the component hierarchy below the given component.- Parameters:
root
- the root of a component hierarchy- Throws:
NullPointerException
- if the root is null
-
-
Method Details
-
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
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.
-