|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jdesktop.swingx.decorator.AbstractHighlighter
public abstract class AbstractHighlighter
Abstract Highlighter
implementation which manages change
notification and supports conditional highlighting.
Subclasses are required to fire ChangeEvents on internal changes which might
effect the highlight. The HighlightPredicate controls whether or not
a highlight should be applied for the given ComponentAdapter,
subclasses must guarantee to respect its decision.
Concrete custom implementations should focus on a single (or few) visual attribute to highlight. This allows easy re-use by composition. F.i. a custom FontHighlighter:
public static class FontHighlighter extends AbstractHighlighter {
private Font font;
public FontHighlighter(HighlightPredicate predicate, Font font) {
super(predicate);
setFont(font);
}
@Override
protected Component doHighlight(Component component,
ComponentAdapter adapter) {
component.setFont(font);
return component;
}
public final void setFont(Font font) {
if (equals(font, this.font)) return;
this.font = font;
fireStateChanged();
}
}
Client code can combine the effect with a f.i. Color decoration, and use a
shared HighlightPredicate to apply both for the same condition.
HighlightPredicate predicate = new HighlightPredicate() {
public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
Object value = adapter.getFilteredValueAt(adapter.row, adapter.column);
return (value instanceof Number) && ((Number) value).intValue() < 0;
}
};
table.setHighlighters(
new ColorHighlighter(predicate, Color.RED, null),
new FontHighlighter(predicate, myBoldFont));
HighlightPredicate
,
ComponentProvider
Constructor Summary | |
---|---|
AbstractHighlighter()
Instantiates a Highlighter with default HighlightPredicate. |
|
AbstractHighlighter(HighlightPredicate predicate)
Instantiates a Highlighter with the given HighlightPredicate. |
Method Summary | |
---|---|
void |
addChangeListener(javax.swing.event.ChangeListener l)
Adds a ChangeListener . |
javax.swing.event.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. |
java.awt.Component |
highlight(java.awt.Component component,
ComponentAdapter adapter)
Decorates the specified component for the given component adapter. |
void |
removeChangeListener(javax.swing.event.ChangeListener l)
Removes a ChangeListener e. |
void |
setHighlightPredicate(HighlightPredicate predicate)
Set the HighlightPredicate used to decide whether a cell should be highlighted. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AbstractHighlighter()
setHighlightPredicate(HighlightPredicate)
public AbstractHighlighter(HighlightPredicate predicate)
predicate
- the HighlightPredicate to use.setHighlightPredicate(HighlightPredicate)
Method Detail |
---|
public void setHighlightPredicate(HighlightPredicate predicate)
predicate
- the HighlightPredicate to use.public HighlightPredicate getHighlightPredicate()
public java.awt.Component highlight(java.awt.Component component, ComponentAdapter adapter)
highlight
in interface Highlighter
component
- the cell renderer component that is to be decoratedadapter
- the ComponentAdapter for this decorate operation
canHighlight(Component, ComponentAdapter)
,
doHighlight(Component, ComponentAdapter)
,
getHighlightPredicate()
public final void addChangeListener(javax.swing.event.ChangeListener l)
ChangeListener
. ChangeListeners are
notified after changes of any attribute.
addChangeListener
in interface Highlighter
l
- the ChangeListener to addremoveChangeListener(javax.swing.event.ChangeListener)
public final void removeChangeListener(javax.swing.event.ChangeListener l)
ChangeListener
e.
removeChangeListener
in interface Highlighter
l
- the ChangeListener
to removeaddChangeListener(javax.swing.event.ChangeListener)
public final javax.swing.event.ChangeListener[] getChangeListeners()
Highlighter
.
getChangeListeners
in interface Highlighter
ChangeListener
s
or an empty
array if no change listeners are currently registeredaddChangeListener(javax.swing.event.ChangeListener)
,
removeChangeListener(javax.swing.event.ChangeListener)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |