package jrummikub.view;

import jrummikub.util.IEvent;

/**
 * The player panel that contains a player's board and other user interfaces
 */
public interface IPlayerPanel {
	/**
	 * @return the board where the players hand stones are displayed
	 */
	public IHandPanel getHandPanel();

	/**
	 * Sets the time the player has left for his turn
	 * 
	 * @param time
	 *          the time left
	 */
	public void setTimeLeft(int time);

	/**
	 * The sort by groups event is emitted when the player wants to sort his
	 * stones by groups
	 * 
	 * @return the event
	 */
	public IEvent getSortByGroupsEvent();

	/**
	 * The sort by runs event is emitted when the player wants to sort his stones
	 * by runs
	 * 
	 * @return the event
	 */
	public IEvent getSortByRunsEvent();

	/**
	 * The end turn event is emitted when the player wants to end his turn
	 * 
	 * @return the event
	 */
	public IEvent getEndTurnEvent();
}
