On Fri, 12 Aug 2022 18:15:37 GMT, Andy Goryachev <[email protected]> wrote:
>> - added Skin.install()
>> - javadoc changes for Skinnable.setSkin(Skin)
>>
>> no code changes for Skinnable.setSkin(Skin) yet.
>
> Andy Goryachev has updated the pull request incrementally with one additional
> commit since the last revision:
>
> 8290844: review comments
trying again: the current state of a (arbitrarily complex property)
// constructor setting a property unconditionally
control.setYY(myYY);
// dispose
if (getSkinnable().getYY() == myYY) getSkinnable().setYY(myYY);
We agree that setting the property unconditionally is suboptimal, a better (yet
to be implemented, RFE required :) way would be to only do so if the control
doesn't have one set
// constructor setting a property as default, only if the control doesn't
have its own
// not possible - can't differentiate control-set from skin-set
if (control.getYY() == null) control.setYY(myYY);
// dispose is the same
if (getSkinnable().getYY() == myYY) getSkinnable().setYY(null);
Implementating that pattern - in a future RFE - requires new API, f.i.
separating instantiation from install
// constructor does nothing related to YY
// install
// the constraint getSkinnable().getSkin() == null guarantees that no
skin installed property is left
if (control.getYY() == null) control.setYY(myYY);
-------------
PR: https://git.openjdk.org/jfx/pull/845