[ 
https://issues.apache.org/jira/browse/TRINIDAD-1951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeanne Waldman resolved TRINIDAD-1951.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0.3-core

> add skin versioning
> -------------------
>
>                 Key: TRINIDAD-1951
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1951
>             Project: MyFaces Trinidad
>          Issue Type: New Feature
>          Components: Skinning
>            Reporter: Jeanne Waldman
>            Assignee: Jeanne Waldman
>             Fix For: 2.0.0.3-core
>
>         Attachments: skinversionpatch.patch
>
>
> Add skin versioning into the skinning framework. This is useful when you (the 
> skinning developer) want to update your skin, and you want to version it, so 
> that an end user can decide if he wants to uptake your new version without 
> changing the skin-family name, and keeping the skin-family name version-free.
> In trinidad-config.xml, the application developer chooses the skin-family to 
> use. We will now have a skin-version field as well:
> <skin-family>purple</skin-family>
> <skin-version>v2</skin-version>
> The syntax <skin-version>default</skin-version> can be supported as well to 
> return the purple skin whose version is marked to be the default skin in that 
> skin-family.
> We could also add a <skin-version>latest</skin-version> so an end user can 
> say, "I always want the latest purple skin", and they'll never have to change 
> their trinidad-config.xml every time a new purple skin version comes out.
> In trinidad-skins.xml (the skin developer) could add versioning to the skins 
> like this. The name of the version can be any String the skin developer 
> wants. Here we've chosen "v1" and "v2".
> <skin>
>   <id>purple-v1.desktop</id>
>   <family>purple</family>
>   <version>
>     <name>v1</name>
>     <default>true</default>
>   </version>
>   ...
> </skin>
> <skin>
>   <id>purple-v2.desktop</id>
>   <family>purple</family>
>   <version>
>     <name>v2</name>
>   </version>
>   ...
> </skin> 
> The SkinVersion will be a class and not simply a String so we can add 
> 'default' and maybe 'latest' flags to it.
> A Skin object will have a SkinVersion. A Skin object already has an id, a 
> family, a styleSheetName, etc.
> package org.apache.myfaces.trinidad.skin;
> /**
>  * You can version skins. The skin version works tightly with the skin family.
>  * This allows someone to create versions of their skin, like purple, 
> purple-v2, 
>  * purple-v3. Then the user can say which skin version they want, like:
>  * <skin-family>purple</skin-family><skin-version>v3</skin-version> when they 
>  * pick a skin in trinidad-config.xml.
>  * When creating a skin, you give it a version if you care about versioning.
>  * When extending this class, you must override equals and hashCode
>  */
> abstract public class SkinVersion
> {
>   // when extending this class, you must override equals and hashCode
>   abstract public boolean equals(Object o);
>   
>   // when extending this class, you must override equals and hashCode
>   abstract   public int hashCode();
>   
>   abstract public boolean isDefault();
>   
>   abstract public String getName();
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to