import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
import java.util.Random;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
/*
 * Created on Jan 11, 2005
 */

/**
 * @author David Matuszek
 * @version Jan 11, 2005
 */
public class FloodFillApplet extends JApplet implements Observer {
    Container c;
    ColorArrayComponent canvas;
    Color[][] colors = new Color[20][30];
    JPanel controlPanel = new JPanel();
    JButton testButton = new JButton("Test");
    Color color = Color.BLACK;
    Random rand = new Random();
    
    public void init() {
        canvas = new ColorArrayComponent(colors, this);
        c = getContentPane();
        c.add(canvas, BorderLayout.CENTER);
        c.add(controlPanel, BorderLayout.SOUTH);
        controlPanel.add(testButton);
        testButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                handleButtonClick();
            }
        });
    }

    protected void handleButtonClick() {
        for (int i = 0; i < colors.length; i++) {
            for (int j = 0; j < colors[i].length; j++) {
                colors[i][j] = new Color(rand.nextInt(255),
                                         rand.nextInt(255),
                                         rand.nextInt(255));
            }
        }
        repaint();
    }

    public void update(Observable arg0, Object obj) {
        Point p = (Point)obj;
        System.out.println("Mouse click on row " + p.x + ", column " + p.y);
        colors[p.x][p.y] = Color.BLACK;
        repaint();
    }
}
