edu.princeton.cs.algs4.growingtree.framework
Class InsertBSTAnimation<P extends NodeProperties>

java.lang.Object
  extended by edu.princeton.cs.algs4.growingtree.framework.AbstractAnimation
      extended by edu.princeton.cs.algs4.growingtree.framework.InsertBSTAnimation<P>
All Implemented Interfaces:
Animation

public class InsertBSTAnimation<P extends NodeProperties>
extends AbstractAnimation

The Animation object that defines the Insertion into a BSTTree. Two constructors exist, one setting the animator and animation color Schemes. The addition of nodes that the Animation must pass include both the AffineTransform and then BSTTree or either separately.

Version:
2.2 9/15/01
Author:
Corey Sanders

Field Summary
 
Fields inherited from class edu.princeton.cs.algs4.growingtree.framework.AbstractAnimation
DEFAULT_CONVERSION, DEFAULT_STEP
 
Fields inherited from interface edu.princeton.cs.algs4.growingtree.framework.Animation
ANIMATION_MESSAGE, BEGIN, FINISH, PAUSE, PLAY, REDRAW, REWIND, STEP, STOP
 
Constructor Summary
InsertBSTAnimation(GrowingTreeNode<P> node)
          The constructor which initiates the status and sets the colorSchemes to null.
InsertBSTAnimation(GrowingTreeNode<P> node, NodeSettings AnimationSchemeLeft, NodeSettings AnimationSchemeRight, NodeSettings AnimatorScheme, KeySettings KeyAnimatorScheme, java.lang.String startingCmd, int stepTime)
          The constructor which initiates the status and prepares the colorSchemes.
 
Method Summary
 void add(java.awt.geom.AffineTransform a)
          Add a step to the InsertAnimation.
 void add(java.awt.geom.AffineTransform a, GrowingTreeNode<P> node)
          Add a step to the InsertAnimation.
 void add(GrowingTreeNode<P> node)
          Add a step to the InsertAnimation.
 void drawAnimation(java.awt.Graphics2D g2, java.lang.String startingStatus)
          Draws the animation of the next step, using the status of the animation (Animation.PLAY, Animation.PAUSE and so forth).
 NodeSettings getAnimationSchemeLeft()
          Gets the NodeSettings for the left animation scheme for the insertion.
 NodeSettings getAnimationSchemeRight()
          Gets the NodeSettings for the right animation scheme for the insertion.
 NodeSettings getAnimatorScheme()
          Gets the NodeSettings for the animator scheme for the insertion.
 KeySettings getKeyAnimatorScheme()
          Sets the KeySettings for the animator scheme key for the insertion.
 void setAnimationSchemeLeft(NodeSettings scheme)
          Sets the NodeSettings for the left animation scheme for the insertion.
 void setAnimationSchemeRight(NodeSettings scheme)
          Sets the NodeSettings for the right animation scheme for the insertion.
 void setAnimatorScheme(NodeSettings scheme)
          Sets the NodeSettings for the animator scheme for the insertion.
 void setKeyAnimatorScheme(KeySettings scheme)
          Sets the KeySettings for the animator scheme key for the insertion.
 
Methods inherited from class edu.princeton.cs.algs4.growingtree.framework.AbstractAnimation
addAnimationListener, addDescription, drawAnimation, getDescription, getListeners, getStatus, getStep, getStepTime, removeAnimationListener, setStatus, setStep, setStepTime
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InsertBSTAnimation

public InsertBSTAnimation(GrowingTreeNode<P> node,
                          NodeSettings AnimationSchemeLeft,
                          NodeSettings AnimationSchemeRight,
                          NodeSettings AnimatorScheme,
                          KeySettings KeyAnimatorScheme,
                          java.lang.String startingCmd,
                          int stepTime)
The constructor which initiates the status and prepares the colorSchemes. The node which is animating must be passed. The first step added is the identity step.

Parameters:
node - the BSTTree which is animated during the animation.
AnimationSchemeLeft - the NodeSettings associated with a color scheme according to NodeSettings for the left Animation.
AnimationSchemeRight - the NodeSettings associated with a color scheme according to NodeSettings for the right Animation.
AnimatorScheme - the NodeSettings associated with a color scheme according to NodeSettings.
KeyAnimatorScheme - the KeySettings associated with a color scheme according to KeySettings.
startingCmd - the Animation command that this should start.
stepTime - the time for each step of the Animation. Sets the initial value.

InsertBSTAnimation

public InsertBSTAnimation(GrowingTreeNode<P> node)
The constructor which initiates the status and sets the colorSchemes to null. No colors will be change using this animation. The node which is animating must be passed. The first step added is the identity step.

Parameters:
node - the BSTTree which is animated during the animation.
Method Detail

getAnimationSchemeLeft

public NodeSettings getAnimationSchemeLeft()
Gets the NodeSettings for the left animation scheme for the insertion.

Returns:
NodeSettings for the node after the animated node passes it to the left.

getAnimationSchemeRight

public NodeSettings getAnimationSchemeRight()
Gets the NodeSettings for the right animation scheme for the insertion.

Returns:
NodeSettings for the node after the animated node passes it to the right.

getAnimatorScheme

public NodeSettings getAnimatorScheme()
Gets the NodeSettings for the animator scheme for the insertion.

Returns:
NodeSettings for the node animating.

getKeyAnimatorScheme

public KeySettings getKeyAnimatorScheme()
Sets the KeySettings for the animator scheme key for the insertion.

Returns:
KeySettings for the key of the node animating.

setAnimationSchemeLeft

public void setAnimationSchemeLeft(NodeSettings scheme)
Sets the NodeSettings for the left animation scheme for the insertion. The settings affect the change the node makes after the inserted node passes it to the left.

Parameters:
scheme - NodeSettings for the node after the animated node passes it to the left.

setAnimationSchemeRight

public void setAnimationSchemeRight(NodeSettings scheme)
Sets the NodeSettings for the right animation scheme for the insertion. The settings affect the change the node makes after the inserted node passes it to the right.

Parameters:
scheme - NodeSettings for the node after the animated node passes it to the right.

setAnimatorScheme

public void setAnimatorScheme(NodeSettings scheme)
Sets the NodeSettings for the animator scheme for the insertion. The settings affect the change the node makes as it is animating during the insertion

Parameters:
scheme - NodeSettings for the node animating.

setKeyAnimatorScheme

public void setKeyAnimatorScheme(KeySettings scheme)
Sets the KeySettings for the animator scheme key for the insertion. The settings affect the change the key of the node makes as it is animating during the insertion

Parameters:
scheme - KeySettings for the key of the node animating.

add

public void add(java.awt.geom.AffineTransform a)
Add a step to the InsertAnimation. The step is added with only an AffineTransform, which is used to draw that step in the Animation. No node will be affected, even if the transform comes from a node.

Parameters:
a - AffineTransform to be drawn in the following step.

add

public void add(java.awt.geom.AffineTransform a,
                GrowingTreeNode<P> node)
Add a step to the InsertAnimation. The step is added with an AffineTransform and a BSTTree node. Consequently, when the step is performed, the node will transform to the given AffineTransform, and the node passed will be modified (Color Scheme only).

Parameters:
a - AffineTransform to be drawn in the following step.
node - the color scheme is changed when the step is completed.

add

public void add(GrowingTreeNode<P> node)
Add a step to the InsertAnimation. The step is added with only a BSTTree which is used to determine the AffineTransform for the current step.W hen the step is performed, the node will transform to the passed node's AffineTransform, and the node passed will be modified (Color Scheme only).

Parameters:
node - the color scheme is changed when the step is completed.

drawAnimation

public void drawAnimation(java.awt.Graphics2D g2,
                          java.lang.String startingStatus)
Draws the animation of the next step, using the status of the animation (Animation.PLAY, Animation.PAUSE and so forth). After completing the drawing, the Animation sends an AnimationEvent to all its listeners, indicating any information that the listerners may wish to use.

Specified by:
drawAnimation in interface Animation
Overrides:
drawAnimation in class AbstractAnimation
Parameters:
g2 - the graphics to which the animation step should be drawn.
startingStatus - the status used as the starting command of animation, if needed.