org.jdesktop.swingx
Class JXList.DelegatingRenderer

java.lang.Object
  extended by org.jdesktop.swingx.JXList.DelegatingRenderer
All Implemented Interfaces:
ListCellRenderer, RolloverRenderer
Enclosing class:
JXList

public class JXList.DelegatingRenderer
extends Object
implements ListCellRenderer, RolloverRenderer

A decorator for the original ListCellRenderer. Needed to hook highlighters after messaging the delegate.

PENDING JW: formally implement UIDependent?


Constructor Summary
JXList.DelegatingRenderer()
          Instantiates a DelegatingRenderer with list's default renderer as delegate.
JXList.DelegatingRenderer(ListCellRenderer delegate)
          Instantiates a DelegatingRenderer with the given delegate.
 
Method Summary
 void doClick()
          Same as AbstractButton.doClick().
 ListCellRenderer getDelegateRenderer()
          Returns the delegate.
 Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
          Return a component that has been configured to display the specified value.
 boolean isEnabled()
          
 void setDelegateRenderer(ListCellRenderer delegate)
          Sets the delegate.
 void updateUI()
          Updates the ui of the delegate.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JXList.DelegatingRenderer

public JXList.DelegatingRenderer()
Instantiates a DelegatingRenderer with list's default renderer as delegate.


JXList.DelegatingRenderer

public JXList.DelegatingRenderer(ListCellRenderer delegate)
Instantiates a DelegatingRenderer with the given delegate. If the delegate is null, the default is created via the list's factory method.

Parameters:
delegate - the delegate to use, if null the list's default is created and used.
Method Detail

setDelegateRenderer

public void setDelegateRenderer(ListCellRenderer delegate)
Sets the delegate. If the delegate is null, the default is created via the list's factory method.

Parameters:
delegate - the delegate to use, if null the list's default is created and used.

getDelegateRenderer

public ListCellRenderer getDelegateRenderer()
Returns the delegate.

Returns:
the delegate renderer used by this renderer, guaranteed to not-null.

updateUI

public void updateUI()
Updates the ui of the delegate.


getListCellRendererComponent

public Component getListCellRendererComponent(JList list,
                                              Object value,
                                              int index,
                                              boolean isSelected,
                                              boolean cellHasFocus)
Return a component that has been configured to display the specified value. That component's paint method is then called to "render" the cell. If it is necessary to compute the dimensions of a list because the list cells do not have a fixed size, this method is called to generate a component on which getPreferredSize can be invoked.

Overridden to apply the highlighters, if any, after calling the delegate. The decorators are not applied if the row is invalid.

Specified by:
getListCellRendererComponent in interface ListCellRenderer
Parameters:
list - The JList we're painting.
value - The value returned by list.getModel().getElementAt(index).
index - The cells index.
isSelected - True if the specified cell was selected.
cellHasFocus - True if the specified cell has the focus.
Returns:
A component whose paint() method will render the specified value.
See Also:
JList, ListSelectionModel, ListModel

isEnabled

public boolean isEnabled()

Specified by:
isEnabled in interface RolloverRenderer
Returns:
true if rollover effects are on and clickable.

doClick

public void doClick()
Same as AbstractButton.doClick(). It's up to client code to prepare the renderer's component before calling this method.

Specified by:
doClick in interface RolloverRenderer