package swingUI;

import game.TicTacToeFrame;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;


/**
 * @author martin
 *main panel, the titlescreen that include the general menu
 */
public class TicTacToeTitle extends JPanel{
	/**
	 * @param nav as jframe navigator
	 */
	public TicTacToeTitle(final TicTacToeNav nav){
		super(new GridLayout(6,1));
		setFocusable(true);
		//title
		add(new JLabel("TicTacToe"));
		//buttons
		add(new JButton(new AbstractAction("against the Machine"){
			public void actionPerformed(ActionEvent e) {
				nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'S'));
			}
	    }));
		add(new JButton(new AbstractAction("Vs a friend"){
			public void actionPerformed(ActionEvent e) {
				nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'X'));
			}
	    }));
		add(new JButton(new AbstractAction("Score"){
			public void actionPerformed(ActionEvent e) {
				nav.stat();
			}
	    }));
		add(new JButton(new AbstractAction("About"){
			public void actionPerformed(ActionEvent e) {
				nav.about();
			}
	    }));
		add(new JButton(new AbstractAction("Quit"){
			public void actionPerformed(ActionEvent e) {
				nav.quit();
			}
	    }));
		//key listener
		addKeyListener(new KeyListener() {
			public void keyPressed(KeyEvent e) {
				switch(e.getKeyCode()){
				case KeyEvent.VK_M:
					//nav.singlePlayer();
					break;
				case KeyEvent.VK_V:
					nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'X'));
					break;
				case KeyEvent.VK_S:
					nav.stat();
					break;
				case KeyEvent.VK_A:
					nav.about();
					break;
				case KeyEvent.VK_Q:
					nav.quit();
					break;
				}
			}
			public void keyReleased(KeyEvent e) {}
			public void keyTyped(KeyEvent e) {}
		});


	}
}
