/*
 * Animateable.java  
 *
 * Copyright 2001
 * College of Computer Science
 * Northeastern University
 * Boston, MA  02115
 *
 * This software may be used for educational purposes as long as
 * this copyright notice is retained intact at the top of all files.
 *
 * Should this software be modified, the words "Modified from 
 * Original" must be included as a comment below this notice.
 *
 * All publication rights are retained.  This software or its 
 * documentation may not be published in any media either in whole
 * or in part without explicit permission.
 *
 * Contact information:
 *   Richard Rasala    rasala@ccs.neu.edu
 *   Viera Proulx      vkp@ccs.neu.edu
 *   Jeff Raab         jmr@ccs.neu.edu
 *   Jennifer McDonald jenimac@ccs.neu.edu
 * 
 * Telephone:          617-373-2462
 *
 * This software was created with support from Northeastern 
 * University and from NSF grant DUE-9950829.
 */

import java.awt.*;
import edu.neu.ccs.util.*;
import edu.neu.ccs.gui.*;

public abstract class Animateable {

	public abstract void draw(Graphics2D g, Color c);

	public void animate(BufferedPanel p, int pauseTime) {
		
		Graphics2D g = p.getBufferGraphics();
		
		Color highlight = 
			AutomataApplication.getHighlightColor();
			
		Color visited = 
			AutomataApplication.getVisitedColor();
		
		draw(g, highlight);
		
		p.repaint();

		JPTUtilities.pauseThread(pauseTime);
		
		draw(g, visited);
		
		p.repaint();
	}
}
