package nl.tudelft.simulation.dsol.swing.gui.appearance; /** * This interface allows on screen items to not obtain colors and/or the font from an {@code Appearance}. This can be * useful for items where considering only a background and a foreground color is not sufficient, possibly creating unreadable * or otherwise unpleasant on screen items.
*
* The default implementation of the methods in this interface return {@code false}, meaning the {@code Appearance} is * completely ignored. In order to ignore it only partially, some methods should be overridden to return true. An example of * this is given below, which will only allow the font of the {@code Appearance}. It also shows a convenient way to implement * this interface when using default on screen items using a local class. * *
 * class AppearanceControlComboBox<T> extends JComboBox<T> implements AppearanceControl
 * {
 *     public boolean isFont()
 *     {
 *         return true;
 *     }
 * }
 * 
 * JComboBox<String> comboBox = new AppearanceControlComboBox<>();
 * 
* * Code based on OpenTrafficSim project component with the same purpose. *

* Copyright (c) 2020-2022 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See * for project information DSOL Manual. The DSOL * project is distributed under a three-clause BSD-style license, which can be found at * DSOL License. *

* @author Alexander Verbraeck * @author Wouter Schakel */ public interface AppearanceControl { /** * Returns whether this item has a controllable background. * @return whether this item has a controllable background */ default boolean isBackground() { return false; } /** * Returns whether this item has a controllable foreground. * @return whether this item has a controllable foreground */ default boolean isForeground() { return false; } /** * Returns whether this item has a controllable font. * @return whether this item has a controllable font */ default boolean isFont() { return false; } }