The reason this doesn't work is because accordion header data is painted by a 
renderer, which, as Chris mentioned, is only painted when the accordion skin 
thinks it needs to be refreshed. When active, an activity indicator runs a 
timer that attempts to repaint it every n milliseconds. However, in order for 
the repaint to happen, the activity indicator must be part of the component 
hierarchy, which renderers are not.

Re: Chris's suggestion:

> Your TerraAccordionSkin might override these so that the header is a simply a 
> real BoxPane with an ActivityIndicator and a Label inside.  Then the BoxPane 
> skin (and ActivityIndicator & Label skins) will take care of painting, and 
> more importantly, animating.
> (ie, use real, fully fledged Components, rather than a Renderer for each 
> header)


This seems like a reasonable approach. Just one thought - while you could 
certainly hard-code the use of a Label here, continuing to use a renderer will 
offer you a little more flexibility (for example, if you want to use icons in 
your headers).

G

On Mar 21, 2011, at 4:16 AM, Simon Chatelain wrote:

> Hello all,
> 
> I am trying to display an animated component inside the headers of an 
> accordion. For that I defined a subclass of AccordionHeaderDataRenderer 
> inserting a ActivityIndicator at first position in the header.
> 
> But the activity indicator animation is not refreshed unless I move the mouse 
> cursor over the header. What am I doing wrong and is there a way to do that ?
> You can find in attachment a sample application showing the described 
> behavior.
> 
> Thanks
> 
> Simon
> <AnimatedHeader.zip>

Reply via email to