org.jdesktop.swingx.renderer
Class DefaultVisuals<T extends JComponent>

java.lang.Object
  extended by org.jdesktop.swingx.renderer.DefaultVisuals<T>
All Implemented Interfaces:
Serializable

public class DefaultVisuals<T extends JComponent>
extends Object
implements Serializable

Encapsulates the default visual configuration of renderering components, respecting the state of the passed-in CellContext. It's basically re-usable across all types of renderees (JTable, JList, JTree).

Guarantees to completely configure the default visual properties (listed below) of a given component. As a consequence, client code (f.i. in Highlighters) can safely change them without long-lasting visual artefacts.

Client code will rarely need to be aware of this class. It's the single place to change on introduction of new properties considered as belonging to the "default visuals" of rendering components.

PENDING: allow mutators for overruling the CellContexts defaults? Would prefer not to, as in the context of SwingX visual config on the renderer level is discouraged (the way to go are Highlighters.

PENDING: not yet quite decided whether the toolTipText property belongs into the visual default config. Doing so gives client code the choice to set it either in a Highlighter or a custom ComponentProvider.

See Also:
CellContext, Serialized Form

Constructor Summary
DefaultVisuals()
           
 
Method Summary
protected  void configureBorder(T renderingComponent, CellContext context)
          Configures the rendering component's border from the given cell context.
protected  void configureColors(T renderingComponent, CellContext context)
          Configures colors of rendering component from the given cell context.
protected  void configureFocusColors(T renderingComponent, CellContext context)
          Configures focus-related colors form given cell context.
protected  void configurePainter(T renderingComponent, CellContext context)
          Configures the default Painter if applicable.
protected  void configureSizes(T renderingComponent, CellContext context)
          Configures min-, max, preferredSize properties of the renderingComponent.
protected  void configureState(T renderingComponent, CellContext context)
          Configure "divers" visual state of the rendering component from the given cell context.
 void configureVisuals(T renderingComponent, CellContext context)
          Configures all default visual state of the rendering component from the given cell context.
protected  Color getBackground(CellContext context)
          Returns the unselected background to use for the rendering component.
protected  Color getForeground(CellContext context)
          Returns the unselected foreground to use for the rendering component.
 void setBackground(Color c)
          Sets the renderer's unselected-background color to the specified color.
 void setForeground(Color c)
          Sets the renderer's unselected-foreground color to the specified color.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultVisuals

public DefaultVisuals()
Method Detail

setForeground

public void setForeground(Color c)
Sets the renderer's unselected-foreground color to the specified color. If not null this color will overrule the default color of the CellContext.

Parameters:
c - set the foreground color to this value

setBackground

public void setBackground(Color c)
Sets the renderer's unselected-background color to the specified color. If not null this color will overrule the default color of the CellContext.

Parameters:
c - set the background color to this value

configureVisuals

public void configureVisuals(T renderingComponent,
                             CellContext context)
Configures all default visual state of the rendering component from the given cell context.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null
Throws:
NullPointerException - if either renderingComponent or cellContext is null

configurePainter

protected void configurePainter(T renderingComponent,
                                CellContext context)
Configures the default Painter if applicable. Here: set's to null.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

configureState

protected void configureState(T renderingComponent,
                              CellContext context)
Configure "divers" visual state of the rendering component from the given cell context.

Here: synch Font, ComponentOrientation and enabled to context's component. Resets toolTipText to null. Calls configureSizes to reset xxSize if appropriate.

PENDING: not fully defined - "divers" means everything that's not Colors nor Border nor Painter.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

configureSizes

protected void configureSizes(T renderingComponent,
                              CellContext context)
Configures min-, max, preferredSize properties of the renderingComponent. Here: set all to null.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

configureColors

protected void configureColors(T renderingComponent,
                               CellContext context)
Configures colors of rendering component from the given cell context.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

configureFocusColors

protected void configureFocusColors(T renderingComponent,
                                    CellContext context)
Configures focus-related colors form given cell context.

PENDING: move to context as well? - it's the only comp with focus specifics? Problem is the parameter type...

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

configureBorder

protected void configureBorder(T renderingComponent,
                               CellContext context)
Configures the rendering component's border from the given cell context.

Parameters:
renderingComponent - the component to configure, must not be null
context - the cell context to configure from, must not be null

getForeground

protected Color getForeground(CellContext context)
Returns the unselected foreground to use for the rendering component.

Here: returns this renderer's unselected foreground is not null, returns the foreground from the given context. In other words: the renderer's foreground takes precedence if set.

Parameters:
context - the cell context.
Returns:
the unselected foreground.

getBackground

protected Color getBackground(CellContext context)
Returns the unselected background to use for the rendering component.

Here: returns this renderer's unselected background is not null, returns the background from the given context. In other words: the renderer's background takes precedence if set.

Parameters:
context - the cell context.
Returns:
the unselected background.