package jrummikub.view; import java.awt.Color; import java.io.File; import java.util.Collection; import jrummikub.model.Stone; import jrummikub.util.IEvent; import jrummikub.util.IEvent1; /** * The top-level view interface */ public interface IView { /** * Returns the settings panel * * @return the settings panel */ public ISettingsPanel getSettingsPanel(); /** * Returns the score panel * * @return the score panel */ public IScorePanel getScorePanel(); /** * Returns the table * * @return the table */ public ITablePanel getTablePanel(); /** * @return the board where the players hand stones are displayed */ public IHandPanel getHandPanel(); /** * Returns the player panel * * @return the playerPanel */ public IPlayerPanel getPlayerPanel(); /** * Sets the current player's name * * @param playerName * the player name */ public void setCurrentPlayerName(String playerName); /** * Sets the stones that are to be painted selected * * @param stones * the stones to be painted selected */ public void setSelectedStones(Collection stones); /** * The start turn event is emitted when the player wants to start his turn * * @return the event */ public IEvent getStartTurnEvent(); /** * The quit event is emitted when the player wants to quit the game * * @return the event */ public IEvent getEndProgramEvent(); /** * The new round event is emitted when the player wants to start a new round * * @return the event */ public IEvent getNewRoundEvent(); /** * Shows or hides the game settings panel * * @param show * specifies if the panel shall be shown or hidden */ public void showSettingsPanel(boolean show); /** * Shows or hides the score panel * * @param show * specifies if the panel shall be shown or hidden */ public void showScorePanel(boolean show); /** * Is used for the PlayerPanel and ScorePanel to display a player's color * along with the name * * @param color * the current player's color */ public void setCurrentPlayerColor(Color color); /** * Is used for the PlayerPanel to display if a player has laid out along with * the name * * @param hasLaidOut * specifies if the current player has laid out or not */ public void setCurrentPlayerHasLaidOut(boolean hasLaidOut); /** * Is emitted if the player wants to end the game and start a new one * * @return newGameEvent */ public IEvent getNewGameEvent(); /** * Sets the bottom panels type * * @param type * the type of the bottom panel */ public void setBottomPanel(BottomPanelType type); /** * Different types of bottom panels */ public enum BottomPanelType { /** */ START_GAME_PANEL, /** */ START_TURN_PANEL, /** */ HUMAN_HAND_PANEL, /** */ COMPUTER_HAND_PANEL, /** */ WIN_PANEL } /** * The menu new game event is emitted when the user selects the new game menu * entry * * @return the event */ public IEvent getMenuNewGameEvent(); /** * The menu quit event is emitted when the user selects the quit menu entry * * @return the event */ public IEvent getMenuQuitEvent(); /** * The load event is emitted when the user wants to load a previously saved * game state * * @return the event */ IEvent1 getLoadEvent(); /** * The save event is emitted when the user wants to save the current game * state * * @return the event */ IEvent1 getSaveEvent(); }