Details
- 
        Type:
 New Feature
            
         - 
        Status: Closed
 - 
            Priority:
 Major
                
             - 
            Resolution: Fixed
 - 
            Affects Version/s: 2.0-Alpha3
 - 
            Component/s: ICE-Components
 - 
            Labels:None
 - 
            Environment:ICEfaces 2.0 w/ Sparkle Component Platform.
 
- 
                        Affects:Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial, Compatibility/Configuration
 
Description
For example, the Tab component could use effects for the following state-change:
- tab selection change (hide current tab pane contents, display newly selected tab pane contents)
For each of these component state-changes there are a finite number of effect-types that could be used that would result in an aesthetically pleasing result, such as fade-out + fade-in, cross-fade, slide up / slide-down, etc. To simplify customization by the app. developer, each component should have an attribute for each state-change that can be used to set the effect-type to be used for that state-change, such as "tabTransitionEffect='fade'".
In addition, each effect-type may have a time-interval or period associated with it to adjust the duration that the effect takes to complete. In order to simplify the customization of the time intervals by the application developer, and ensure a consistent reaction-time for all components on the page, we should identify pre-defined values for adjusting the effect time, such as "fast, normal, slow" that can be defined via an attribute on the component, such as "tabTransitionEffectSpeed='fast'.
Each theme could provide a definition for the standard effect labels ("fade", "xfade", "slideX", "slideY", etc.) and speed/durations ("slow", "normal", "fast") that would provide the desired effect behaviors for that theme. A master/default set could be used if the theme did not provide an implementation of its' own to ease supporting effects with custom themes without forcing each theme to implement the effects configuration code. While it would be nice to be able to use CSS or perhaps XML to define the theme effects, initially an pure JavaScript implementation would suffice.
Issue Links
Activity
- All
 - Comments
 - History
 - Activity
 - Remote Attachments
 - Subversion
 
effect model committed
Command: Commit  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Appear.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabMeta.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetMeta.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\component\annotation\ClientBehaviorHolder.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\behavior\ClientBehaviorHolder.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\context\GeneratorContext.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FacesConfigBuilder.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\tabset.xhtml  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\tabset.xhtml  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabMeta.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\context\GeneratorContext.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Appear.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\component\annotation\ClientBehaviorHolder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FacesConfigBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetMeta.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\behavior\ClientBehaviorHolder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Completed: At revision: 22210  
Refactord as per requirement.
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Appear.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Highlight.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabMeta.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetMeta.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FacesConfigBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FacesConfigBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetMeta.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabMeta.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Highlight.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Appear.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Completed: At revision: 22234  
ValueExpression issue resolved by adding BehaviorHandler
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehaviorHandler.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\generator\src\org\icefaces\generator\xmlbuilder\FaceletTagLibBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehaviorHandler.java  
Completed: At revision: 22241  
Property map added to the effect component base class, which would allow to set properties on effects generically. (e.g.)
effect.getProperties().put("color": "red");
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\JSONBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\JSONBuilder.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Completed: At revision: 22244  
Following changes made:
- So initial properties can be set using Effect's style classes, and which can be overridden by component using property map on the effect component. Another layer added so each component can define its own css rule by using styleClass and child effect component will respect parent component's style class.
 
- Rule added so the Effect style classes will be use for providing initial values only, and effect style classes will not be a part of a decode instead on effect complete the latest style of the element will be serialized on hidden filed by the effect API, and on submit decode of Effect component will store it to its style property of effect. Which later can be used by the component or renderers.
 
- There could be two type of events passthrough javascript event (onXXXX) or custom events. Both event requires different type of javascript call, on javascript XXX event we would like to send and effect with run() command, so the JSF renderer would automatically execute the effect, and for custom component, we just need to send an instance of an effect so the custom component can plugin its behavior before making a run() call. So that there are two getScript() methods available, the default one returns "new effect().run()" and second one is usful for custom event types for example "transition" which returns "new effect()" only.
 
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehaviorHandler.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Fade.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehaviorHandler.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Completed: At revision: 22245  
The reverting of an effect allows to reverse the effect using a single call, which mean for example both Fade and Appear will be executed in a row. but there can be some cases where an effect will completely executed and later it might want to call its reverse effect. For example when popup closes the Fade can be used and on show we might want to use Appear effect. But we don't want to pass two effects to the component. So we are just going to pass Fade which will be executed on hide, and on show we can simply say effect.peer.run();
So in this commit peer support added, so the reverse of the effect can be called on demand.
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Completed: At revision: 22268  
Effect support added to the dateTimeSelector componet, as well as some code re-factoring has been done.
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.datetimeselector\calendar.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\datetimeselector\DateTimeSelectorMeta.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\datetimeselector\DateTimeSelectorRenderer.java  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\ClientBehaviorContextImpl.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\tab\TabSetRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\utils\Utils.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.datetimeselector\calendar.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\datetimeselector\DateTimeSelectorMeta.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\datetimeselector\DateTimeSelectorRenderer.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\ClientBehaviorContextImpl.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.css  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\effects\EffectBehavior.java  
Completed: At revision: 22282  
IE fix.
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.tab\tabset.js  
Completed: At revision: 22298  
effect demos added.
Command: Commit  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\calendarEffect.xhtml  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\index.html  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\tabsetEffect.xhtml  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\calendarEffect.xhtml  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\index.html  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\showcase\test\web\tabsetEffect.xhtml  
Completed: At revision: 22299  
For reference, here's a reference of the decisions we have taken:
1. Need to rename the new component as soon as possible as the current name collides with the 1.8 ice:effect component. We had agreed that <ice:animation> was a good name, so please proceed with this change. Also note the namespace should be "http://www.icefaces.org/icefaces/components".
2. Proceed with adding the following attributes on the animation tag (no JSON required!):
- to
 - from
 - duration
 - easing
 - reverse
 
3. Using two or more <ice:animation> tags in a row for implied chaining seems like a good solution. We can then later possibly add another tag ("<ice:group>" ??) that could be used to synchronize chained animations to run simultaneously, etc.
For now, we will not bother with a direct object reference attribute (effectObj, etc.) since this would break POJO and we are also not certain of it's usefulness since the multiple attribute approach + CSS provides a lot of flexibility on its own.
4. Support for h: comps. We will support any std. or 3rd party component that supports client behaviors, and will not do anything beyond that to support 3rd party comps. with the new <ice:animation> component. The h:panelGroup supports client behaviors so folks can wrap any other comps. with it if they want to apply animations to it.
Following attributes and their support has been added.
- to
-from
-easing
-iterations 
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Adding: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\Anim.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehaviorHandler.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehavior.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\Anim.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\resources\org.icefaces.component.animation\animation.js  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\Effect.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehaviorHandler.java  
Completed: At revision: 22461  
Duration attribute and its support added.
Command: Commit  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehavior.java  
Modified: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehaviorHandler.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehavior.java  
Sending content: D:\work\development\head\svn\ossrepo\icefaces\scratchpads\sparkle\component\src\org\icefaces\component\animation\AnimationBehaviorHandler.java  
Completed: At revision: 22464  
Also, effects could sorted into 3 main categories: showing, hiding, getting attention. So, for example, fade in would be a showing effect, and fade out would be a hiding effect, and pulsate would be a getting attention effect. It would be nice if applications could simply ask for a hiding effect, and be given some default one to use. Maybe this could be tied in with the theme, so that each category would have a default in the theme.