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

Reply via email to