package swingUI;

import game.TicTacToeFrame;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.AbstractAction;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;


/**
 * @author martin
 * menu panel
 * put jmenubar on top of given panel
 */
public class TicTacToeMenu extends JPanel{
	/**
	 * @param nav as jframe navigator
	 * @param sub as panel to decorate
	 */
	TicTacToeMenu(final TicTacToeNav nav, final Container sub){
		super(new BorderLayout());
		setFocusable(true);

		//build menubar
		JMenuBar menu = new JMenuBar();
		JMenu menuField = new JMenu("Men U");
		menu.add(menuField);
		menuField.add(new JMenuItem(new AbstractAction("restart as Single"){
			public void actionPerformed(ActionEvent e) {
				nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'S'));
			}
	    }));
		menuField.add(new JMenuItem(new AbstractAction("restart as Vs"){
			public void actionPerformed(ActionEvent e) {
				nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'X'));
			}
	    }));
		menuField.add(new JMenuItem(new AbstractAction("return to Title"){
			public void actionPerformed(ActionEvent e) {
				nav.title();
			}
	    }));
		add(menu, BorderLayout.NORTH);

		//keyboard listener
		addKeyListener(new KeyListener() {
			public void keyPressed(KeyEvent e) {
				switch(e.getKeyCode()){
				case KeyEvent.VK_S:
					//nav.singlePlayer();
					break;
				case KeyEvent.VK_V:
					nav.game(new TicTacToeGame(nav, TicTacToeFrame.fromEmpty(), 'X'));
					break;
				case KeyEvent.VK_T:
					nav.title();
					break;
				}
			}
			public void keyTyped(KeyEvent e) {}
			public void keyReleased(KeyEvent e) {}
		});


		//sub screen
		add(sub, BorderLayout.CENTER);
	}
}
