public static ThemeManager getInstance() {
		return INSTANCE;
	}
This class manages application themes and their values. The ThemeManager is an abstract
base class that has two concrete subclasses (and others for testing purposes) -
StubThemeManager and ApplicationThememManager. The StubThemeManager exists as a placeholder
until the ApplicationThemeManager is installed via {@link ApplicationThemeManager#initialize()}.
<P>
The basic idea is that all the colors, fonts, and icons used in an application should be
accessed indirectly via an "id" string. Then the actual color, font, or icon can be changed
without changing the source code. The default mapping of the id strings to a value is defined
in {@code <name>.theme.properties} files which are dynamically discovered by searching the module's
data directory. Also, these files can optionally define a dark default value for an id which
would replace the standard default value in the event that the current theme specifies that it
is a dark theme. Themes are used to specify the application's {@link LookAndFeel}, whether or
not it is dark, and any customized values for colors, fonts, or icons. There are several
"built-in" themes, one for each supported {@link LookAndFeel}, but additional themes can
be defined and stored in the users application home directory as a {@code <name>.theme} file.
<P>
Clients that just need to access the colors, fonts, and icons from the theme can use the
convenience methods in the {@link Gui} class.  Clients that need to directly manipulate the
themes and values will need to directly use the ThemeManager which and be retrieved using the
static {@link #getInstance()} method.
Ghidra/Framework/Gui/src/main/java/generic/theme/ThemeManager.java