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; } }