Class IconHighlighter

  • All Implemented Interfaces:
    Highlighter

    public class IconHighlighter
    extends AbstractHighlighter
    Highlighter which decorates by setting the icon property of a JLabel.

    Note: The limitation to JLabel icons (vs. covering AbstractButton as well) is intentional. Highlighters are allowed to touch only those properties of the rendering component which are guaranteed to be reset by the corresponding ComponentProvider, this implementation is safe enough - LabelProvider guarantees to reset both text and icon. On the other hand, CheckBoxProvider doesn't touch the icon (which is LAF depend), consequently this Highlighter must not touch it as well. Custom subclasses trying to cover AbstractButton must take care that their custom providers reset the icon property.

    Author:
    Jeanette Winzenburg
    See Also:
    ComponentProvider, LabelProvider, CheckBoxProvider
    • Constructor Detail

      • IconHighlighter

        public IconHighlighter()
        Instantiates a IconHighlighter with null Icon and default HighlightPredicate.
      • IconHighlighter

        public IconHighlighter​(HighlightPredicate predicate)
        Instantiates a IconHighlighter with null Icon the given predicate.
        Parameters:
        predicate - the HighlightPredicate to use.
      • IconHighlighter

        public IconHighlighter​(javax.swing.Icon icon)
        Instantiates a IconHighlighter with the specified Icon and default HighlightPredicate.
        Parameters:
        icon - the icon to use for decoration.
      • IconHighlighter

        public IconHighlighter​(HighlightPredicate predicate,
                               javax.swing.Icon icon)
        Instantiates a IconHighlighter with the specified Icon and HighlightPredicate.
        Parameters:
        predicate - the HighlightPredicate to use.
        icon - the Icon to use for decoration.
    • Method Detail

      • setIcon

        public void setIcon​(javax.swing.Icon icon)
        Sets the icon to use for decoration. A null icon indicates to not decorate.

        The default value is null.

        Parameters:
        icon - the Icon to use for decoration, might be null.
      • getIcon

        public javax.swing.Icon getIcon()
        Returns the Icon used for decoration.
        Returns:
        icon the Icon used for decoration.
        See Also:
        setIcon(Icon)
      • doHighlight

        protected java.awt.Component doHighlight​(java.awt.Component component,
                                                 ComponentAdapter adapter)
        Apply the highlights. Implemented to set the component's Icon property, if possible and this Highlighter's icon is not null. Does nothing if the decorating icon is null.
        Specified by:
        doHighlight in class AbstractHighlighter
        Parameters:
        component - the cell renderer component that is to be decorated
        adapter - the ComponentAdapter for this decorate operation
        See Also:
        canHighlight(Component, ComponentAdapter), setIcon(Icon)
      • canHighlight

        protected boolean canHighlight​(java.awt.Component component,
                                       ComponentAdapter adapter)
        Subclasses may override to further limit the highlighting based on Highlighter state, f.i. a PainterHighlighter can only be applied to PainterAware components.

        This implementation returns true always.

        Overridden to return true if the component is of type JLabel, false otherwise.

        Overrides:
        canHighlight in class AbstractHighlighter
        Returns:
        a boolean indication if the adapter can be highlighted based general state. This implementation returns true always.