com.vlsolutions.swing.docking.animation

Class ComponentAnimator

public class ComponentAnimator extends Object

Utility class used to perform move/resize animation for awt/swing components.

This class moves/resizes a Component given a start and end Rectangle and a duration.

Movements and listeners notifications are processed in the Swing Event Thread.

Field Summary
protected Componentcomp
The animated component
protected floatduration
the animation duration in seconds
protected floatelapsed
time elapsed since the beginnig of animation
protected RectangleendBounds
the component's end bounds
protected RectanglestartBounds
the component's start bounds
Constructor Summary
ComponentAnimator(Component comp, Rectangle startBounds, Rectangle endBounds, float duration, AnimationListener listener)
Single-shot animator (use another ComponentAnimator for a new animation).
ComponentAnimator(Component comp, Rectangle startBounds, Rectangle endBounds, float duration)
Reusable component animator.
Method Summary
voidaddAnimationListener(AnimationListener listener)
Adds a new listener to the animator
voidcancel()
Cancels the animation (the component is not reset to its initial location/size)
floatgetDuration()
Returns the duration of the animation
RectanglegetEndBounds()
Returns the end bounds of the components.
RectanglegetStartBounds()
Returns the start bounds of the component.
voidsetDuration(float duration)
Sets the duration of the animation.
voidsetEndBounds(Rectangle endBounds)
Sets the end bounds of the component.
voidsetStartBounds(Rectangle startBounds)
Sets the start bounds of the component for animation.
voidstart()
Starts the animation.

Field Detail

comp

protected Component comp
The animated component

duration

protected float duration
the animation duration in seconds

elapsed

protected float elapsed
time elapsed since the beginnig of animation

endBounds

protected Rectangle endBounds
the component's end bounds

startBounds

protected Rectangle startBounds
the component's start bounds

Constructor Detail

ComponentAnimator

public ComponentAnimator(Component comp, Rectangle startBounds, Rectangle endBounds, float duration, AnimationListener listener)
Single-shot animator (use another ComponentAnimator for a new animation).

Parameters: comp the component to animate startBounds initial bounds of the component endBounds end bounds of the component duration duration of animation, expressed in seconds listener single listener used for animation notification

ComponentAnimator

public ComponentAnimator(Component comp, Rectangle startBounds, Rectangle endBounds, float duration)
Reusable component animator. To start an animation, don't forget to call the start() method.

Method Detail

addAnimationListener

public void addAnimationListener(AnimationListener listener)
Adds a new listener to the animator

Parameters: listener the listener

cancel

public void cancel()
Cancels the animation (the component is not reset to its initial location/size)

getDuration

public float getDuration()
Returns the duration of the animation

Returns: the duration of the animation, in seconds

getEndBounds

public Rectangle getEndBounds()
Returns the end bounds of the components.

Returns: the end bounds of the components.

getStartBounds

public Rectangle getStartBounds()
Returns the start bounds of the component.

Returns: the start bounds of the component (those of when animation starts).

setDuration

public void setDuration(float duration)
Sets the duration of the animation.

Warning : do not change this value during an animation

Parameters: duration the new duration in seconds

setEndBounds

public void setEndBounds(Rectangle endBounds)
Sets the end bounds of the component.

Warning : do not change end bounds during an animation.

Parameters: endBounds

setStartBounds

public void setStartBounds(Rectangle startBounds)
Sets the start bounds of the component for animation.

Warning :do not change start bounds during an animation

Parameters: startBounds the start bounds of the component.

start

public void start()
Starts the animation.

The component is setBoundsed to startBounds and made visible, than a Swing timer is started to process the animation (refresh rate is 100 ms).

the ANIMATION_START event is then fired to all listeners.

© Copyright 2004-2005 VLSolutions. All Rights Reserved.
www.vlsolutions.com : Java Components - Smart Client Applications