summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/IView.java
blob: acfd4ac6efddd65458276ffb93f8c5a0d679784f (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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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);

	/**
	 * Enables or disables the player's StartTurnPanel
	 * 
	 * @param enable
	 *            enable/disable
	 */
	public void enableStartTurnPanel(boolean enable);

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

	/**
	 * Enables or disables the panel shown when a player has won
	 * 
	 * @param enable
	 *            enable/disable
	 */
	public void enableWinPanel(boolean enable);

	/**
	 * 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 setHasLaidOut(boolean hasLaidOut);

	/**
	 * Is emitted if the player wants to end the game and start a new one
	 * 
	 * @return newGameEvent
	 */
	IEvent getNewGameEvent();

	/**
	 * Enables or disables most parts of the interface
	 * 
	 * @param enable
	 *            specifies if the interface is to be enabled or disabled
	 */
	void showInterface(boolean enable);

	/**
	 * Enables or disables the panel shown while the computer player is making a
	 * move
	 * 
	 * @param b
	 *            specifies if the interface is enabled or disabled
	 */
	public void enableThinkPanel(boolean b);
}