I have two questions about jar'ing up the skins. Let's say someone has jar'd up their skin and the trinidad-skins.xml file.
I have a jar with this directory structure:
META-INF
trinidad-skins.xml
skin
customSkin.css
images
dateButtonPurple.gif
In trinidad-skins.xml, I needed to put META-INF in front of the path for
the style-sheet-name
<style-sheet-name>
<!-- this doesn't work
skin/customSkin.css
-->
META-INF/skin/customSkin.css
</style-sheet-name>
Is this correct?
Also, I don't know how the browser is supposed to find the images out of
this jar, where
af|inputDate::launch-icon
{
content:url(images/dateButtonPurple.gif);
width:19px;
height:24px
}
The url is:
src="/trinidad-demo-context-root/skin/images/dateButtonPurple.gif"
I tried putting META-INF and 'adf/' in the path, but that didn't work.
- Jeanne
Jeanne Waldman wrote:
By the way, I'm going to break this into two issues:1. enable trinidad-skins.xml to be in META-INF directory and therefore it can be read out of jars. a. first find all trinidad-skins.xml files in META-INF/trinidad-skins.xml b. then look for it in WEB-INF/trinidad-skins.xml. The one that is in WEB-INF 'wins'. c. with regards to 'wins'. If I have a skin definition that is the SAME skin id, but with different parameters, then the one in WEB-INF wins. If I find two in a jar, then which one should win? The last one I load?I will do something like that and log a warning.Another thing I can do is try to merge the information, but I think this can get confusing.2. custom component registering skin additions in trinidad-skins.xml - JeanneJeanne Waldman wrote:I was thinking about whether we should use the same file, and the pro of using the same file --fewer files is really good. The cons, they are aimed at different users.A custom component developer will want to add to existing skins, not create new skins. I'll go with the fewer files is really good outweighing the different users argument. :)Simon, the reason I didn't opt for skin-extension is that we have a SkinExtension class - it's creatinga new skin that extends an existing skin.What I want is to use the same skin, and add new component skin definitions to it.I'm not sure what a good name for it is. Right now I look for trinidad-skins.xml in web-inf, and I +1 to looking for in in META-INF as well. And yes,if there can be multiple trinidad-skins.xml files laying around, I'll need to worry about order. And... I'll have to make sure that all the skins are there before I register the skin additions. I'll need to parse these files and buffer up the information, thenorder them, then register things. Thanks for the feedback. - Jeanne Adam Winer wrote:I don't think it should be a separate file; it should be a new element in trinidad-skins.xml. And +1 to Simon's request for /META-INF support. This way, you could use a /META-INF/trinidad-skins.xml file to provide drop-in JARs that provide: - skin extensions - new skins One big bit of fun: you could have one /META-INF/trinidad-skins.xml that defines a new "my-amazing-skin", and a second JAR that defines a new "even-better-skin" that extends "my-amazing-skin", and a third JAR that defines extensions to "even-better-skin". And you'd have to support the jars getting doled out third, second, first by the class loader. So, the parsing code would need to do some juggling to make sure this all works. -- Adam On 11/6/06, Simon Lessard <[EMAIL PROTECTED]> wrote:+1As for the name, maybe skin-extension? skin-addition is as good however.About the structure, I would like to see those placed in trinidad-skins.xmlalong with the skins. I think we should also extends our lookup to include.jar files' /META-INF folder if we don't already do it since it'll be neededfor developper wanting to deploy simple skin compliant libraries. Regards, ~ Simon On 11/6/06, Jeanne Waldman <[EMAIL PROTECTED]> wrote: > > 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 > >
