package jrummikub.view;

import java.util.List;

import jrummikub.util.GameData;
import jrummikub.util.IEvent;
import jrummikub.util.IEvent1;

/**
 * Panel showing all offered games in the chosen channel
 */
public interface IGameListPanel {
	/**
	 * Emitted when a new game is offered
	 * 
	 * @return the event
	 */
	public IEvent getOpenNewGameEvent();

	/**
	 * Emitted when the network game is canceled
	 * 
	 * @return the event
	 */
	public IEvent getCancelEvent();

	/**
	 * Emitted when the user chose to join an existing, open game
	 * 
	 * @return the event
	 */
	public IEvent1<GameData> getJoinEvent();

	/**
	 * Sets the channel name
	 * 
	 * @param name
	 *            channel name
	 */
	public void setChannelName(String name);

	/**
	 * Set the games (host and player count) into the game list
	 * 
	 * @param games
	 *            list of game data
	 */
	public void setGameList(List<GameData> games);
}
