Base class for defining the visual representation of user interface controls
by defining a scene graph of nodes to represent the skin.
A user interface control is abstracted behind the Skinnable interface.
Gets the Skinnable to which this Skin is assigned. A Skin must be created
for one and only one Skinnable. This value will only ever go from a
non-null to null value when the Skin is removed from the Skinnable, and
only as a consequence of a call to dispose().
The caller who constructs a Skinnable must also construct a Skin and
properly establish the relationship between the Control and its Skin.
Gets the Node which represents this Skin. This must never be null, except
after a call to dispose(), and must never change except when
changing to null.
A non-null Node, except when the Skin has been disposed.
Called by a Skinnable when the Skin is replaced on the Skinnable. This method
allows a Skin to implement any logic necessary to clean up itself after
the Skin is no longer needed. It may be used to release native resources.
The methods getSkinnable() and getNode()
should return null following a call to dispose. Calling dispose twice
has no effect.