> Platform preferences are the preferred UI settings of the operating system.
> For example, on Windows this includes the color values identified by the
> `Windows.UI.ViewManagement.UIColorType` enumeration; on macOS this includes
> the system color values of the `NSColor` class.
>
> Exposing these dynamic values to JavaFX applications allows developers to
> create themes that can integrate seamlessly with the color scheme of the
> operating system.
>
> Platform preferences are exposed as an `ObservableMap` of platform-specific
> key-value pairs, which means that the preferences available on Windows are
> different from macOS or Linux. JavaFX provides a small, curated list of
> preferences that are available on most platforms, and are therefore exposed
> with a platform-independent API:
>
>
> public interface Preferences extends ObservableMap<String, Object> {
> // Platform-independent API
> ReadOnlyObjectProperty<Appearance> appearanceProperty();
> ReadOnlyObjectProperty<Color> backgroundColorProperty();
> ReadOnlyObjectProperty<Color> foregroundColorProperty();
> ReadOnlyObjectProperty<Color> accentColorProperty();
>
> // Convenience methods to retrieve platform-specific values from the map
> String getString(String key);
> String getString(String key, String fallbackValue);
> Boolean getBoolean(String key);
> boolean getBoolean(String key, boolean fallbackValue);
> Color getColor(String key);
> Color getColor(String key, Color fallbackValue);
> }
>
>
> The platform appearance is defined by the new `javafx.stage.Appearance`
> enumeration:
>
>
> public enum Appearance {
> LIGHT,
> DARK
> }
>
>
> An instance of the `Preferences` interface can be retrieved by calling
> `Platform.getPreferences()`.
Michael Strauß has updated the pull request incrementally with one additional
commit since the last revision:
Use Optional for convenience methods in Preferences
-------------
Changes:
- all: https://git.openjdk.org/jfx/pull/1014/files
- new: https://git.openjdk.org/jfx/pull/1014/files/776dabf3..59dfb2b5
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jfx&pr=1014&range=01
- incr: https://webrevs.openjdk.org/?repo=jfx&pr=1014&range=00-01
Stats: 106 lines in 3 files changed: 18 ins; 36 del; 52 mod
Patch: https://git.openjdk.org/jfx/pull/1014.diff
Fetch: git fetch https://git.openjdk.org/jfx pull/1014/head:pull/1014
PR: https://git.openjdk.org/jfx/pull/1014