Class AnimationPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--AnimationPanel
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Serializable
Direct Known Subclasses:
CompleteEuclideanGraph, EuclideanGraph

abstract class AnimationPanel
extends JPanel

Panel where an animation of a graph algorithm is viewed. This is an abstract class (not all methods have been implemented).

See Also:
EuclideanGraph, CompleteEuclideanGraph, Serialized Form

Inner classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
protected  Legend legend
          A legend for the different graphics in this Panel.
protected  Visualization myVisuals
          Used to control the visualizaton's in this Panel.
protected  Rectangle rect
          A Rectangle that specifies the area that this AnimationPanel spans.
protected  Stroke strokeSize
          The outline thickness for graphic objects.
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, listenerList, paintingChild, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AnimationPanel(String name)
          Construct a new AnimationPanel with the specified name.
 
Method Summary
abstract  double getCost()
          Gets the cost of the algorithm.
abstract  int getCurrentStep()
          Gets the current step that the algorithm is at.
 String getHelp()
          Gets the help for this file.
 String getName()
          Gets the name for this AnimationPanel
abstract  int getTotalSteps()
          Gets the total amount of steps for this algorithm.
 void paintComponent(Graphics g)
          Resizes the panel when the window size is changed.
 void PickVisualization(String v)
          Picks the specified visualization for this AnimationPanel
 void setHelp(URL url)
          Uses the specified url to set the help for this Animation Panel.
abstract  void setInput(URL inputFile, int rndN, double density)
          Abstract method that sets the input for this AnimationPanel.
abstract  void step()
          Does one step of the algorithm, updating relavent data.
abstract  void stepback()
          Goes back one step in the algorithm, changing relavent data.
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, alwaysOnTop, checkIfChildObscuredBySibling, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

rect

protected Rectangle rect
A Rectangle that specifies the area that this AnimationPanel spans.

strokeSize

protected Stroke strokeSize
The outline thickness for graphic objects.

myVisuals

protected Visualization myVisuals
Used to control the visualizaton's in this Panel.

legend

protected Legend legend
A legend for the different graphics in this Panel.
Constructor Detail

AnimationPanel

public AnimationPanel(String name)
Construct a new AnimationPanel with the specified name. Subclasses should call this parent constructor within it's constructor. For example:
       super(name);
 
Parameters:
name - The name of the algorithm this AnimationPanel is showing.
Method Detail

getCurrentStep

public abstract int getCurrentStep()
Gets the current step that the algorithm is at.
Returns:
an int between 0 and getTotalSteps

getTotalSteps

public abstract int getTotalSteps()
Gets the total amount of steps for this algorithm.
Returns:
an int greater than 0

setInput

public abstract void setInput(URL inputFile,
                              int rndN,
                              double density)
Abstract method that sets the input for this AnimationPanel. If inputFile is null then this method creates a random graph with the rndN points.
Parameters:
inputFile - the file used to create the graph
rndN - the number of random points generated when inputFile input file is null
density - a double specifying how close adjacent points should be to one another

getCost

public abstract double getCost()
Gets the cost of the algorithm. An example would be the distance of the tour in a traveling salesperson algorithm.
Returns:
a double

step

public abstract void step()
Does one step of the algorithm, updating relavent data.
See Also:
getCurrentStep(), stepback()

stepback

public abstract void stepback()
Goes back one step in the algorithm, changing relavent data.
See Also:
getCurrentStep(), step()

PickVisualization

public void PickVisualization(String v)
Picks the specified visualization for this AnimationPanel
Parameters:
v - A string specifying the visualization to be used. Acceptable values are "None", "Circles", and "Dotted Lines". If v is not an acceptable value the visualization is not changed.
See Also:
Visualization

getHelp

public String getHelp()
Gets the help for this file.
Returns:
a String for the help file

getName

public String getName()
Gets the name for this AnimationPanel
Overrides:
getName in class Component
Returns:
a String

paintComponent

public void paintComponent(Graphics g)
Resizes the panel when the window size is changed. Subclasses should call this method when overridden. For example:
       super.paintComponent(g);
 
Overrides:
paintComponent in class JComponent

setHelp

public void setHelp(URL url)
Uses the specified url to set the help for this Animation Panel.
Parameters:
url - the help file for this algorithm


Visualization of Graph Algorithms

Author: Paul Simbi
Started by: Kevin Wayne
2002