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

java.lang.Object
  extended by edu.princeton.cs.algs4.growingtree.framework.AbstractAnimation
      extended by edu.princeton.cs.algs4.growingtree.framework.SelectionBSTAnimation<P>
All Implemented Interfaces:
Animation
Direct Known Subclasses:
SwapNodesBSTAnimation

public class SelectionBSTAnimation<P extends NodeProperties>
extends AbstractAnimation

The Animation object that defines a selection within a BSTTree.

The object restores all values changed in the given nodes, however, if the object is never allowed to finish, the restoring of values becomes impossible. On any exception occuring elsewhere, the object may not restore the conditions correctly.

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

Field Summary
static float ENLARGE_SIZE
           
 
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
SelectionBSTAnimation(int elementCount)
          The constructor which initiates the status and sets the color schemes to null.
SelectionBSTAnimation(int elementCount, 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(GrowingTreeNode<P> node)
          Add a step to the Search Animation.
 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 search.
 NodeSettings getAnimationSchemeRight()
          Gets the NodeSettings for the right animation scheme for the search.
 NodeSettings getAnimatorScheme()
          Gets the NodeSettings for the animator scheme for the search.
 int getElementCount()
          Gets the element count (kth element being partition).
 KeySettings getKeyAnimatorScheme()
          Sets the KeySettings for the animator scheme key for the search.
 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 setElementCount(int elementCount)
          Sets the element count (kth element being partition).
 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
 

Field Detail

ENLARGE_SIZE

public static final float ENLARGE_SIZE
See Also:
Constant Field Values
Constructor Detail

SelectionBSTAnimation

public SelectionBSTAnimation(int elementCount,
                             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:
elementCount - the integer count of the kth element being partitioned.
headNode - the head of the tree being searched.
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.
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.

SelectionBSTAnimation

public SelectionBSTAnimation(int elementCount)
The constructor which initiates the status and sets the color schemes to null. All colors are set to default for this animation. The key which is being searched for must be passed.

Parameters:
elementCount - the integer count of the kth element being partitioned.
Method Detail

getElementCount

public int getElementCount()
Gets the element count (kth element being partition).

Returns:
elementCount count of kth element being partitioned.

getAnimationSchemeLeft

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

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 search.

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 search.

Returns:
NodeSettings for the node animating.

getKeyAnimatorScheme

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

Returns:
KeySettings for the key of the node animating.

setElementCount

public void setElementCount(int elementCount)
Sets the element count (kth element being partition).

Parameters:
elementCount - count of kth element being partitioned.

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(GrowingTreeNode<P> node)
Add a step to the Search Animation. The step is added with only a BSTTree.When the step is performed, the search will transform the node passed (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.