On Sun, 29 Jan 2023 17:10:26 GMT, Michael Strauß <mstra...@openjdk.org> wrote:
>> 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 >> Optional<Integer> getInteger(String key); >> Optional<Double> getDouble(String key); >> Optional<String> getString(String key); >> Optional<Boolean> getBoolean(String key); >> Optional<Color> getColor(String key); >> } >> >> >> 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 mailing list ate a screenshot from the last message. here it is: <img width="467" alt="Screenshot 2023-01-31 at 15 10 38" src="https://user-images.githubusercontent.com/107069028/215905602-1e656e6c-620f-4437-b041-11b6ebc46834.png"> ------------- PR: https://git.openjdk.org/jfx/pull/1014