myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeanne Waldman (JIRA)" <>
Subject [jira] Resolved: (TRINIDAD-1951) add skin versioning
Date Fri, 17 Dec 2010 01:41:02 GMT


Jeanne Waldman resolved TRINIDAD-1951.

       Resolution: Fixed
    Fix Version/s:

> add skin versioning
> -------------------
>                 Key: TRINIDAD-1951
>                 URL:
>             Project: MyFaces Trinidad
>          Issue Type: New Feature
>          Components: Skinning
>            Reporter: Jeanne Waldman
>            Assignee: Jeanne Waldman
>             Fix For:
>         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,
> package;
> /**
>  * 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.

View raw message