On Thu, 7 Dec 2023 07:57:01 GMT, Nir Lisker <nlis...@openjdk.org> wrote:

>> Michael Strauß has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   renamed Windows.SPI.HighContrastOn to Windows.SPI.HighContrast
>
> modules/javafx.graphics/src/main/java/javafx/application/ColorScheme.java 
> line 35:
> 
>> 33:  * @since 22
>> 34:  */
>> 35: public enum ColorScheme {
> 
> Can there be future additions to this enum, or is its purpose to be limited 
> to the current choices?

I suspect this is limited to the current choices, but it's a good question.

> modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 1:
> 
>> 1: /*
> 
> I wonder if it's worth specifying the corresponding properties in JavaFX that 
> match the ones in this class. For example, that the background property is 
> used for `Region#backgroundProperty()`, and the foreground color is used for 
> `Shape#fillProperty()` (or however `TextField` colors its text).

With the exception of the high-contrast theme on Windows, JavaFX doesn't make 
any use of these platform-specific properties. It's up to the application to do 
that.

> modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 
> 474:
> 
>> 472:      * <p>
>> 473:      * The following preferences are potentially available on the 
>> specified platforms:
>> 474:      * <table id="preferences-table">
> 
> Long tables can benefit from alternating colored rows. This can be achieved 
> with `<table class="striped">` I think.

That might be a good enhancement for other tables as well (GraphicsContext 
comes to mind). I would recommend this as a follow-up.

> modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 
> 572:
> 
>> 570:      * @since 22
>> 571:      */
>> 572:     public interface Preferences extends ObservableMap<String, Object> {
> 
> Note that this will be the first case where a public API implementation of 
> `ObservableMap` is not for a general use type, but for a specific use case. 
> All previous implementations are:
> `MapBinding, MapExpression, MapProperty, MapPropertyBase, 
> ReadOnlyMapProperty, ReadOnlyMapPropertyBase, ReadOnlyMapWrapper, 
> SimpleMapProperty`, and all are from the `base` module.
> 
> This might be fine, but consider composition here.
> 
> @kevinrushforth what do you think?

I think this is OK. Given what it is being used for, I'm satisfied with the 
API. One thing we could consider is an `@implNote` indicating that applications 
are not expected to implement this. This could be done as a follow-up.

> modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 
> 604:
> 
>> 602:          *
>> 603:          * @return the {@code foregroundColor} property
>> 604:          * @defaultValue {@code Color.BLACK}
> 
> Is `BLACK` a good default? From what I remember, because some devices have a 
> difficulty with pure black, some dark gray color is used instead.

I would expect this to be one of the properties that is set on all platforms 
anyway, but if not, I think this `BLACK` is a reasonable default.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1419168545
PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1419174768
PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1419167654
PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1419166082
PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1419177332

Reply via email to