org.jdesktop.swingx.decorator
Class AbstractHighlighter

java.lang.Object
  extended by org.jdesktop.swingx.decorator.AbstractHighlighter
All Implemented Interfaces:
Highlighter
Direct Known Subclasses:
ColorHighlighter, CompoundHighlighter, LegacyHighlighter, PainterHighlighter

public abstract class AbstractHighlighter
extends Object
implements Highlighter

Abstract Highlighter implementation which manages notification and highlights conditionally, controlled by a HighlightPredicate.

See Also:
HighlightPredicate

Field Summary
protected  WeakEventListenerList listenerList
          The listeners waiting for model changes.
 
Constructor Summary
AbstractHighlighter()
          Instantiates a Highlighter with default HighlightPredicate.
AbstractHighlighter(HighlightPredicate predicate)
          Instantiates a Highlighter with the given HighlightPredicate.
 
Method Summary
 void addChangeListener(ChangeListener l)
          Adds a ChangeListener.
protected abstract  Component doHighlight(Component component, ComponentAdapter adapter)
          Apply the highlights.
protected  void fireStateChanged()
          Notifies registered ChangeListeners about state changes.
 ChangeListener[] getChangeListeners()
          Returns an array of all the change listeners registered on this Highlighter.
 HighlightPredicate getHighlightPredicate()
          Returns the HighlightPredicate used to decide whether a cell should be highlighted.
 Component highlight(Component component, ComponentAdapter adapter)
          Decorates the specified component for the given component adapter. This implementation checks the HighlightPredicate and calls doHighlight to apply the decoration.
 void removeChangeListener(ChangeListener l)
          Removes a ChangeListenere.
 void setHighlightPredicate(HighlightPredicate predicate)
          Set the HighlightPredicate used to decide whether a cell should be highlighted.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listenerList

protected WeakEventListenerList listenerList
The listeners waiting for model changes.

Constructor Detail

AbstractHighlighter

public AbstractHighlighter()
Instantiates a Highlighter with default HighlightPredicate.

See Also:
setHighlightPredicate(HighlightPredicate)

AbstractHighlighter

public AbstractHighlighter(HighlightPredicate predicate)
Instantiates a Highlighter with the given HighlightPredicate.

Parameters:
predicate - the HighlightPredicate to use.
See Also:
setHighlightPredicate(HighlightPredicate)
Method Detail

setHighlightPredicate

public void setHighlightPredicate(HighlightPredicate predicate)
Set the HighlightPredicate used to decide whether a cell should be highlighted. If null, sets the predicate to HighlightPredicate.ALWAYS. The default value is HighlightPredicate.ALWAYS.

Parameters:
predicate - the HighlightPredicate to use.

getHighlightPredicate

public HighlightPredicate getHighlightPredicate()
Returns the HighlightPredicate used to decide whether a cell should be highlighted. Guaranteed to be never null.

Returns:
the HighlightPredicate to use, never null.

highlight

public Component highlight(Component component,
                           ComponentAdapter adapter)
Decorates the specified component for the given component adapter. This implementation checks the HighlightPredicate and calls doHighlight to apply the decoration. Returns the undecorated component if false.

Specified by:
highlight in interface Highlighter
Parameters:
component - the cell renderer component that is to be decorated
adapter - the ComponentAdapter for this decorate operation
Returns:
the decorated cell rendering component
See Also:
doHighlight(Component, ComponentAdapter), getHighlightPredicate()

doHighlight

protected abstract Component doHighlight(Component component,
                                         ComponentAdapter adapter)
Apply the highlights.

Parameters:
component - the cell renderer component that is to be decorated
adapter - the ComponentAdapter for this decorate operation
See Also:
highlight(Component, ComponentAdapter)

addChangeListener

public void addChangeListener(ChangeListener l)
Adds a ChangeListener. ChangeListeners are notified after changes of any attribute. PENDING: make final once the LegacyHighlighters are removed.

Specified by:
addChangeListener in interface Highlighter
Parameters:
l - the ChangeListener to add
See Also:
removeChangeListener(javax.swing.event.ChangeListener)

removeChangeListener

public final void removeChangeListener(ChangeListener l)
Removes a ChangeListenere.

Specified by:
removeChangeListener in interface Highlighter
Parameters:
l - the ChangeListener to remove
See Also:
addChangeListener(javax.swing.event.ChangeListener)

getChangeListeners

public final ChangeListener[] getChangeListeners()
Returns an array of all the change listeners registered on this Highlighter.

Specified by:
getChangeListeners in interface Highlighter
Returns:
all of this model's ChangeListeners or an empty array if no change listeners are currently registered
Since:
1.4
See Also:
addChangeListener(javax.swing.event.ChangeListener), removeChangeListener(javax.swing.event.ChangeListener)

fireStateChanged

protected final void fireStateChanged()
Notifies registered ChangeListeners about state changes.