/*
 * Created on Dec 12, 2003
 * CS 108
 * Section A
 */
package finalproject;

import javax.swing.*;

/**
 * @author Eric Knibbe
 * 
 * The frame for SlidingTileGUI. 
 */
public class SlidingTileFrame extends JFrame {
	/**
	 * The panel for data entry.
	 */
	private EntryPanel myEntryPanel;
	/**
	 * The panel in which the game's tiles are displayed.
	 */
	private GamePanel myGamePanel;
	/**
	 * Constructor for SlidingTileFrame.
	 * @param slidingTile
	 */
	public SlidingTileFrame(SlidingTile slidingTile) {
		setContentPane(createContentPane(slidingTile));
	}

	/**
	 * Creates a pane split verticaly with the game on top and data entry below.
	 * @param slidingTile
	 * @return JSplitPane
	 */
	private JSplitPane createContentPane(SlidingTile slidingTile) {
		return new JSplitPane(
			JSplitPane.VERTICAL_SPLIT,
			createGamePanel(slidingTile),
			createEntryPanel(slidingTile));
	}

	/**
	 * Creates the game panel.
	 * @param slidingTile
	 * @return myGamePanel
	 */
	private JComponent createGamePanel(SlidingTile slidingTile) {
		myGamePanel = new GamePanel(slidingTile);
		return myGamePanel;
	}

	/**
	 * Creates the data entry panel.
	 * @param slidingTile
	 * @return myEntryPanel
	 */
	private JComponent createEntryPanel(SlidingTile slidingTile) {
		myEntryPanel = new EntryPanel(slidingTile, myGamePanel);
		return myEntryPanel;
	}

	/**
	 * Accessor for EntryPanel.
	 * @return myEntryPanel
	 */
	public EntryPanel getEntryPanel() {
		return myEntryPanel;
	}

	/**
	 * Accessor for GamePanel.
	 * @return myGamePanel
	 */
	public GamePanel getGamePanel() {
		return myGamePanel;
	}

}
