RFR: 8350917: Allow parent nodes to provide CSS styleable properties for child nodes

John Hendrikx jhendrikx at openjdk.org
Sun Mar 16 21:32:00 UTC 2025


On Sun, 16 Mar 2025 18:36:05 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> 8350917: Allow parent nodes to provide CSS styleable properties for child nodes
>
> modules/javafx.graphics/src/main/java/javafx/css/Styleable.java line 101:
> 
>> 99:      * only for its direct children!
>> 100:      *
>> 101:      * @return an immutable list of CSS meta data, never {@code null}
> 
> Since we don't specify that `getCssMetaData()` should never return null, we should consider also not specifying it here. Alternatively, maybe we should add the non-null requirement to the existing `getCssMetaData()`.

That might be a good idea, as there are several places in `CssStyleHelper` where `getCssMetaData` is assumed to be non-null already (and also a few locations where it is assumed it can be `null`).  In other words, if the function would return `null`, FX would break currently.

For example, `recalculateRelativeSizeProperties` will do:

        final List<CssMetaData<? extends Styleable,  ?>> styleables = node.getCssMetaData();
        final int numStyleables = styleables.size();
        
Which would be an NPE.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1714#discussion_r1997723358


More information about the openjfx-dev mailing list