Package 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);
-
-
Constructor Summary
Constructors Constructor Description CompoundFocusListener(JComponent root)
Instantiates a CompoundFocusListener on the component hierarchy below the given component.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isFocused()
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 Detail
-
CompoundFocusListener
public CompoundFocusListener(JComponent root)
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 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(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.
-
-