public class ResetDTCRColorHighlighter extends ColorHighlighter
The issue is that the default has internal color management which is different from other types of renderers. The consequence of the internal color handling is that there's a color memory which must be reset somehow. The "old" hack around reset the xxColors of all types of renderers to the adapter's target XXColors, introducing #178-swingx (Highlighgters must not change any colors except those for which their color properties are explicitly set).
This hack limits the interference to renderers of type DefaultTableCellRenderer, applying a hacking highlighter which resets the renderers XXColors to a previously "memorized" color. Note that setting the color to null didn't have the desired effect.
PENDING: extend ColorHighlighter
Modifier and Type | Class and Description |
---|---|
private static class |
ResetDTCRColorHighlighter.ColorMemory |
listenerList
Constructor and Description |
---|
ResetDTCRColorHighlighter() |
Modifier and Type | Method and Description |
---|---|
protected void |
applyBackground(Component renderer,
ComponentAdapter adapter)
Applies a suitable background for the renderer component within the
specified adapter.
|
protected void |
applyForeground(Component renderer,
ComponentAdapter adapter)
Applies a suitable foreground for the renderer component within the
specified adapter.
|
Component |
highlight(Component renderer,
ComponentAdapter adapter)
applies the memory hack for renderers of type DefaultTableCellRenderer,
does nothing for other types.
|
doHighlight, getBackground, getForeground, getSelectedBackground, getSelectedForeground, setBackground, setForeground, setSelectedBackground, setSelectedForeground
addChangeListener, areEqual, canHighlight, fireStateChanged, getChangeListeners, getHighlightPredicate, removeChangeListener, setHighlightPredicate
public ResetDTCRColorHighlighter()
public Component highlight(Component renderer, ComponentAdapter adapter)
highlight
in interface Highlighter
highlight
in class AbstractHighlighter
renderer
- the component to highlightadapter
- the renderee's component state.AbstractHighlighter.canHighlight(Component, ComponentAdapter)
,
AbstractHighlighter.doHighlight(Component, ComponentAdapter)
,
AbstractHighlighter.getHighlightPredicate()
protected void applyBackground(Component renderer, ComponentAdapter adapter)
ColorHighlighter
This implementation applies its background or selectedBackground color (depending on the adapter's selected state) if != null. Otherwise it does nothing.
applyBackground
in class ColorHighlighter
renderer
- the cell renderer component that is to be decoratedadapter
- the ComponentAdapter for this decorate operationprotected void applyForeground(Component renderer, ComponentAdapter adapter)
ColorHighlighter
This implementation applies its foreground or selectedfForeground color (depending on the adapter's selected state) if != null. Otherwise it does nothing.
applyForeground
in class ColorHighlighter
renderer
- the cell renderer component that is to be decoratedadapter
- the ComponentAdapter for this decorate operationWebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses