// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Pentris.java

import java.awt.Container;
import java.awt.event.*;
import java.io.PrintStream;
import javax.swing.*;

public class Pentris extends JApplet
    implements ActionListener, FocusListener, KeyListener, MouseListener
{

    public Pentris()
    {
    }

    public void init()
    {
        b = new Board();
        try
        {
            SwingUtilities.invokeAndWait(new Runnable() {

                public void run()
                {
                    createGUI();
                }

            });
        }
        catch(Exception exception)
        {
            System.err.println("createGUI failed");
        }
    }

    public void start()
    {
        fallingTimer.start();
    }

    public void stop()
    {
        fallingTimer.stop();
    }

    public void createGUI()
    {
        fallingTimer = new Timer(200, this);
        Container container = getContentPane();
        container.setLayout(null);
        container.add(b);
        b.setBounds(5, 5, 160, 320);
        container.add(b.getScorePane());
        b.getScorePane().setBounds(170, 304, 71, 21);
        container.add(b.getNextPiecePane());
        b.getNextPiecePane().setBounds(170, 5, 80, 80);
        addFocusListener(this);
        addKeyListener(this);
        addMouseListener(this);
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        b.poke();
        repaint();
    }

    public void focusGained(FocusEvent focusevent)
    {
        b.setPIsFocused(true);
        fallingTimer.start();
        repaint();
    }

    public void focusLost(FocusEvent focusevent)
    {
        fallingTimer.stop();
        b.setPIsFocused(false);
        repaint();
    }

    public void keyPressed(KeyEvent keyevent)
    {
        if(keyevent.getKeyCode() == 37)
            b.moveHorizontally(-1);
        else
        if(keyevent.getKeyCode() == 39)
            b.moveHorizontally(1);
        else
        if(keyevent.getKeyCode() == 40 && b.fall())
            fallingTimer.restart();
        repaint();
    }

    public void keyReleased(KeyEvent keyevent)
    {
    }

    public void keyTyped(KeyEvent keyevent)
    {
    }

    public void mousePressed(MouseEvent mouseevent)
    {
        requestFocus();
    }

    public void mouseEntered(MouseEvent mouseevent)
    {
    }

    public void mouseExited(MouseEvent mouseevent)
    {
    }

    public void mouseReleased(MouseEvent mouseevent)
    {
    }

    public void mouseClicked(MouseEvent mouseevent)
    {
    }

    Timer fallingTimer;
    Board b;
}
