// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   BoggleGamePanel.java

import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.EventObject;
import javax.swing.*;

public class BoggleGamePanel extends JPanel
{

    public BoggleGamePanel(Component component, BoggleGrid bogglegrid)
    {
        buttons = new BoggleButton[4][4];
        grid = bogglegrid;
        setLayout(null);
        topPane = new JPanel();
        setupGrid(component);
        bottomPane = new JPanel();
        ImageIcon imageicon = new ImageIcon("Images/scoreBottom.gif", "Scoring image");
        score = new JLabel("0", imageicon, 0);
        score.setVerticalTextPosition(0);
        score.setHorizontalTextPosition(0);
        Font font = new Font("Helvetica", 1, 20);
        score.setForeground(Color.black);
        score.setFont(font);
        bottomPane.add(score);
        score.setBounds(0, 0, 200, 30);
        add(topPane);
        topPane.setBounds(0, 0, 198, 198);
        add(bottomPane);
        bottomPane.setBounds(0, 198, 200, 228);
    }

    public void applyRules(ActionEvent actionevent)
    {
        for(int i = 0; i < 4; i++)
        {
            for(int k = 0; k < 4; k++)
                buttons[i][k].setEnabled(false);

        }

        for(int j = 0; j < 4; j++)
        {
            for(int l = 0; l < 4; l++)
                if(actionevent.getSource().equals(buttons[j][l]))
                {
                    buttons[j][l].setBorder(BorderFactory.createLineBorder(Color.red));
                    buttons[j][l].setSelected(true);
                    buttons[j][l].setEnabled(false);
                    if(j > 0 && !buttons[j - 1][l].getSelected())
                        buttons[j - 1][l].setEnabled(true);
                    if(j > 0 && l > 0 && !buttons[j - 1][l - 1].getSelected())
                        buttons[j - 1][l - 1].setEnabled(true);
                    if(j < 3 && l > 0 && !buttons[j + 1][l - 1].getSelected())
                        buttons[j + 1][l - 1].setEnabled(true);
                    if(j > 0 && l < 3 && !buttons[j - 1][l + 1].getSelected())
                        buttons[j - 1][l + 1].setEnabled(true);
                    if(l > 0 && !buttons[j][l - 1].getSelected())
                        buttons[j][l - 1].setEnabled(true);
                    if(j < 3 && !buttons[j + 1][l].getSelected())
                        buttons[j + 1][l].setEnabled(true);
                    if(j < 3 && l < 3 && !buttons[j + 1][l + 1].getSelected())
                        buttons[j + 1][l + 1].setEnabled(true);
                    if(l < 3 && !buttons[j][l + 1].getSelected())
                        buttons[j][l + 1].setEnabled(true);
                }

        }

    }

    private void setupGrid(Component component)
    {
        topPane.setLayout(new GridLayout(4, 4));
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
            {
                buttons[i][j] = new BoggleButton(grid.getGridPos(i, j), component);
                topPane.add(buttons[i][j]);
            }

        }

    }

    public void updateGrid()
    {
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 4; j++)
            {
                buttons[i][j].setEnabled(true);
                buttons[i][j].setSelected(false);
                buttons[i][j].setBorder(BorderFactory.createRaisedBevelBorder());
            }

        }

    }

    public void updateScore(int i)
    {
        score.setText((new Integer(i)).toString());
    }

    private JPanel topPane;
    private JPanel bottomPane;
    private BoggleGrid grid;
    private BoggleButton buttons[][];
    JLabel score;
}
