Hi there,
Let's say a custom component developer created some new components. He
wants those components to "fit in" with the
'simple' skin. He also wants them to "fit in" with the 'minimal' skin
or any other public skin out there. He doesn't have access to the files
where we
have this information -- our base-desktop.xss, simple-desktop.xss,
simple-pda.xss, etc.
With Trinidad's Skin API, he can call the
skin.registerStyleSheet("META-INF/styles/myCustomComponentsSimpleDesktop.css")
method on the skin instance. Aside: I'm not sure *when/where* the custom
component developer would do this, because it would need to be after we've
registered our base skins and any skin extensions, so presumably it
would need to be after the TrinidadFilter.
It would be much nicer for the custom component developer if all he has
to do is create an .xml file and stick it in the META-INF
of his jar file. Then we'll parse the xml file and register the
stylesheets with the skins for him.
*Does anyone object to a new .xml file for custom component skin additions?*
Also, we'll need to discuss the 'api' -- the name and format of the file.
This is what I have right now . The purpose of the file is for
custom component developers to add skinning information for their custom
components to a
specific, existing skin. Any name suggestions are welcome!
*trinidad-skin-additions.xml*
<?xml version="1.0"?>
<skin-additions xmlns="http://myfaces.apache.org/trinidad/skin">
<skin-addition>
<skin-id>
simple.desktop
</skin-id>
<style-sheet-name>
META-INF/myStyles/skin/customSkin/myCustomComponentsSimpleDesktop.css
</style-sheet-name>
</skin-addition>
<skin-addition>
<skin-id>
minimal.desktop
</skin-id>
<style-sheet-name>
META-INF/myStyles/skin/customSkin/myCustomComponentsMinimalDesktop.css
</style-sheet-name>
</skin-addition>
</skin-additions>
For comparison, here's the trinidad-skins.xml file:
<skins xmlns="http://myfaces.apache.org/trinidad/skin">
<skin>
<id>
purple.desktop
</id>
<family>
purple
</family>
<render-kit-id>
org.apache.myfaces.trinidad.desktop
</render-kit-id>
<style-sheet-name>
skins/purple/purpleSkin.css
</style-sheet-name>
<bundle-name>
org.apache.myfaces.trinidaddemo.resource.SkinBundle
</bundle-name>
</skin>
</skins>
Thanks a lot,
Jeanne