/* * Created on 31.03.2011 * */ package org.jdesktop.swingx.decorator; import java.awt.Component; import java.awt.ComponentOrientation; /** * A Highlighter which applies the ComponentOrientation to the component. * * @author Jeanette Winzenburg, Berlin */ public class ComponentOrientationHighlighter extends AbstractHighlighter { private ComponentOrientation co; /** * Instantiates a ComponentOrientationHighlighter with <code>ComponentOrientation.LEFT_TO_RIGHT</code>. * The Highlighter is applied always. */ public ComponentOrientationHighlighter() { this((HighlightPredicate) null); } /** * Instantiates a ComponentOrientationHighlighter with the given HighlightPredicate * and <code>ComponentOrientation.LEFT_TO_RIGHT</code>. * * @param predicate the HighlightPredicate to use, may be null to default to ALWAYS. */ public ComponentOrientationHighlighter(HighlightPredicate predicate) { this(predicate, null); } /** * Instantiates a ComponentOrientationHighlighter with the given ComponentOrientation. * The Highlighter is applied always. * * @param co the ComponentOrientation to apply */ public ComponentOrientationHighlighter(ComponentOrientation co) { this(null, co); } /** * Instantiates a ComponentOrientationHighlighter with the given ComponentOrientation and HighlightPredicate. * * @param predicate the HighlightPredicate to use, may be null to default to ALWAYS. * @param co the ComponentOrientation to apply, may be null */ public ComponentOrientationHighlighter(HighlightPredicate predicate, ComponentOrientation co) { super(predicate); setComponentOrientation(co); } /** * Returns the ComponentOrientation to apply. * * @return the ComponentOrientation to apply, guaranteed to be not null. */ public ComponentOrientation getComponentOrientation() { return co; } /** * Sets the ComponentOrientation to apply. * * @param co the co to set, may be null to denote fallback to LEFT_TO_RIGHT */ public void setComponentOrientation(ComponentOrientation co) { if (co == null) { co = ComponentOrientation.LEFT_TO_RIGHT; } if (areEqual(this.co, co)) return; this.co = co; fireStateChanged(); } /** * @inherited <p> * Implementated to decorate the given component with the ComponentOrientation. */ @Override protected Component doHighlight(Component component, ComponentAdapter adapter) { component.applyComponentOrientation(getComponentOrientation()); return component; } }