summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/IView.java
blob: 41dbdf120501aebadfdbf2e1ae3ab95ca2a00460 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package jrummikub.view;

import java.awt.Color;
import java.util.Collection;

import jrummikub.model.Stone;
import jrummikub.util.IEvent;

/**
 * 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<Stone> 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();

	public void setBottomPanel(BottomPanelType type);

	public enum BottomPanelType {
		START_GAME_PANEL, START_TURN_PANEL, HUMAN_HAND_PANEL, COMPUTER_HAND_PANEL, WIN_PANEL
	}
}