Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.1.0-core
-
None
Description
Skin additions present in trinidad-skins.xml are not loaded if the skin used
is one of the Trinidad provided skins, such as "simple", "casablanca" or
"minimal". Applications may add skin additions to these using
trinidad-skins.xml and they should get loaded.
For example: An application added a skin addition to simple.desktop using its trinidad-skins.xml and used "simple" skin family in its trinidad-config.xml. In this case, the skin addition that application added does not get picked up.
This happens only for the default skins provided by trinidad out of the box.
This bug appears after SkinProvider SPI and SkinFactory deprecation. Earlier SkinFactory used to eager load and process all skins at start-up. With SkinProvider we defer the skin load until the time user requests it. Default trinidad skins are handled by TriniadBaseSkinProvider and those defined in trinidad-skins.xml are handled by TrindiadSkinProvider. It is the responsibility of SkinProviderRegistry that coordinates between all SkinProviders to ensure that the skin additions added in TrindiadSkinProvider are applied to all skins. So I added this logic into SkinProviderRegistry. I also added more comments and javadoc for SkinProvider where I found it missing and did some rearrangements for coding standards compliance.