On Tue, 28 Nov 2023 00:51:36 GMT, Andy Goryachev <[email protected]> wrote:
>> Provides a public utility method for use by the skins (core and custom) to
>> simplify initialization of styleable properties.
>>
>>
>> + /**
>> + * Utility method which combines CssMetaData items in one unmodifiable list
>> with the size equal to the number
>> + * of items it holds (i.e. with no unnecessary overhead).
>> + *
>> + * @param list the css metadata items, usually from the parent, not nullable
>> + * @param items the additional items
>> + * @return the unmodifiable list containing all of the items
>> + *
>> + * @since 22
>> + */
>> + public static List<CssMetaData<? extends Styleable, ?>> initStyleables(
>> + List<CssMetaData<? extends Styleable, ?>> list,
>> + CssMetaData<? extends Styleable, ?>... items)
>
> Andy Goryachev has updated the pull request incrementally with one additional
> commit since the last revision:
>
> combine
We should also consider changing the specification of
`Node.getClassCssMetaData`. It currently says:
/**
* Gets the {@code CssMetaData} associated with this class, which may
include the
* {@code CssMetaData} of its superclasses.
*/
That's strange. A subclass cannot elect to forgo its inherited properties; yet
the specification allows it to pretend it doesn't have metadata for its
inherited properties. This should be changed in the following ways:
1. A derived class **must** include the metadata of its base class.
2. The inherited metadata **must** come before the new metadata in the list.
The specification should also point developers to the new `CssMetaData.combine`
API.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1296#issuecomment-1828889945