com.vlsolutions.swing.docking.animation

Class ComponentAnimator


public class ComponentAnimator
extends java.lang.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 Component
comp
The animated component
protected float
duration
the animation duration in seconds
protected float
elapsed
time elapsed since the beginnig of animation
protected Rectangle
endBounds
the component's end bounds
protected Rectangle
startBounds
the component's start bounds

Constructor Summary

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

Method Summary

void
addAnimationListener(AnimationListener listener)
Adds a new listener to the animator
void
cancel()
Cancels the animation (the component is not reset to its initial location/size)
float
getDuration()
Returns the duration of the animation
Rectangle
getEndBounds()
Returns the end bounds of the components.
Rectangle
getStartBounds()
Returns the start bounds of the component.
void
setDuration(float duration)
Sets the duration of the animation.
void
setEndBounds(Rectangle endBounds)
Sets the end bounds of the component.
void
setStartBounds(Rectangle startBounds)
Sets the start bounds of the component for animation.
void
start()
Starts the animation.

Field Details

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 Details

ComponentAnimator

public ComponentAnimator(Component comp,
                         Rectangle startBounds,
                         Rectangle endBounds,
                         float duration)

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

Method Details

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-2006 VLSolutions. All Rights Reserved.
www.vlsolutions.com : Java Components - Smart Client Applications