Comment:

1) From that article you sent, I think we need to answer a similar question:  
When I set the transition CSS property on a node, should it clear any previous 
setting of transitioned properties?  Or should it merge the transitioned 
properties?  I guess our setter can just smash them and punt the override/merge 
question up to the CSS applicability manager.

2) I think I might have called "skipSetter", "customSetter".  Then we could 
generalize it to handle setter methods too.  (One of the reasons nodes have to 
be dynamic is because we need to look up setter methods.  If we move that 
lookup out to a "customSetter" table, we are one step closer to having sealed 
nodes.  (Of course, we still have to deal with attributes...)

Issue:

1) I think we are asking for trouble by depending on the "inlining" of 
setAttribute in the LFC to break the circular dependency between transitions 
and setAttribute.  This is a punji stick just waiting for someone to step on.  
We should be explicit about this and have something like setAttributeInternal 
for the internal case.  (I just wasted about 15 minutes trying to figure out 
why you _weren't_ getting an infinite loop.)

I expect this is already checked in (sorry for not reviewing sooner), in which 
case, maybe you could re-open or create a new Jira to address these.

On 2010-06-24, at 17:38, Max Carlson wrote:

> Change 20100624-maxcarlson-E by maxcarl...@friendly on 2010-06-24 13:52:05 PDT
>    in /Users/maxcarlson/openlaszlo/trunk-clean
>    for http://svn.openlaszlo.org/openlaszlo/trunk
> 
> Summary: Add support for CSS3 transition attribute
> 
> New Features: Node attributes that have corresponding transition set will be 
> automatically animated.  See LzNode.transition for more details.
> 
> Bugs Fixed: LPP-9020 - Support CSS3 transitions
> 
> Technical Reviewer: ptw
> QA Reviewer: hminsky
> 
> Release Notes: Setting the 'transition' attribute will cause subsequent calls 
> to be animated, e.g.:
> 
> <canvas> 
>    <button transition="x 2s" onclick="this.setAttribute('x', 200)">Hello 
> Laszlo!</button>
> </canvas>
> 
> Details: LzNode - Add transition propery event and setter that parses the 
> CSS3 transition syntax.  Override LzEventable.__skipSetter() to do transition 
> animations.  
> 
> LzEventable - Add __LZskipsetter hash to track attributes that should have 
> their setter call skipped and __skipSetter() called instead.  
> 
> LaszloAnimation - Inline setValue() calls into update().
> 
> Tests: Animators run as before clicking this button causes it to animate:
> <canvas>
>    <button transition="x 2s" onclick="this.setAttribute('x', 200)">Hello
>    Laszlo!</button>
> </canvas>
> 
> Files:
> M       WEB-INF/lps/lfc/core/LzNode.lzs
> M       WEB-INF/lps/lfc/core/LzEventable.lzs
> M       WEB-INF/lps/lfc/controllers/LaszloAnimation.lzs
> 
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/20100624-maxcarlson-E.tar


Reply via email to