diff options
-rw-r--r-- | src/esieequest/view/View.java | 54 | ||||
-rw-r--r-- | src/esieequest/view/app/UserInterface.java | 61 | ||||
-rw-r--r-- | src/esieequest/view/text/TextInterface.java | 36 | ||||
-rw-r--r-- | src/esieequest/view/web/WebInterface.java | 48 |
4 files changed, 131 insertions, 68 deletions
diff --git a/src/esieequest/view/View.java b/src/esieequest/view/View.java index 545879a..9ffd7ec 100644 --- a/src/esieequest/view/View.java +++ b/src/esieequest/view/View.java | |||
@@ -3,8 +3,13 @@ | |||
3 | */ | 3 | */ |
4 | package esieequest.view; | 4 | package esieequest.view; |
5 | 5 | ||
6 | import java.util.HashMap; | ||
7 | |||
6 | import esieequest.controller.GameEngine; | 8 | import esieequest.controller.GameEngine; |
7 | import esieequest.model.Game; | 9 | import esieequest.model.Item; |
10 | import esieequest.model.Quest; | ||
11 | import esieequest.model.Room; | ||
12 | import esieequest.model.Side; | ||
8 | 13 | ||
9 | /** | 14 | /** |
10 | * The view interface that describes an user interface. | 15 | * The view interface that describes an user interface. |
@@ -14,14 +19,6 @@ import esieequest.model.Game; | |||
14 | public interface View { | 19 | public interface View { |
15 | 20 | ||
16 | /** | 21 | /** |
17 | * Sets the model to use. | ||
18 | * | ||
19 | * @param game | ||
20 | * the Game model | ||
21 | */ | ||
22 | public void setModel(Game game); | ||
23 | |||
24 | /** | ||
25 | * Sets the controller to use. | 22 | * Sets the controller to use. |
26 | * | 23 | * |
27 | * @param gameEngine | 24 | * @param gameEngine |
@@ -40,21 +37,48 @@ public interface View { | |||
40 | public void enable(); | 37 | public void enable(); |
41 | 38 | ||
42 | /** | 39 | /** |
40 | * Displays a message. | ||
41 | * | ||
42 | * @param message | ||
43 | * the message | ||
44 | */ | ||
45 | public void echo(String message); | ||
46 | |||
47 | /** | ||
43 | * Disables the user interface. | 48 | * Disables the user interface. |
44 | */ | 49 | */ |
45 | public void disable(); | 50 | public void disable(); |
46 | 51 | ||
47 | /** | 52 | /** |
48 | * Refreshes the user interface. | 53 | * Updates the view to match the current room. |
54 | * | ||
55 | * @param room | ||
56 | * the room to display | ||
49 | */ | 57 | */ |
50 | public void refresh(); | 58 | public void updateRoom(Room room); |
51 | 59 | ||
52 | /** | 60 | /** |
53 | * Displays a message. | 61 | * Updates the view to match a side of a room. |
54 | * | 62 | * |
55 | * @param message | 63 | * @param side |
56 | * the message | 64 | * the side of a room |
57 | */ | 65 | */ |
58 | public void echo(String message); | 66 | public void updateSide(Side side); |
67 | |||
68 | /** | ||
69 | * Updates the view to match the current quest. | ||
70 | * | ||
71 | * @param quest | ||
72 | * the current quest to display | ||
73 | */ | ||
74 | public void updateQuest(Quest quest); | ||
75 | |||
76 | /** | ||
77 | * Updates the view to display the items contained in the inventory | ||
78 | * | ||
79 | * @param items | ||
80 | * the items | ||
81 | */ | ||
82 | public void updateInventory(HashMap<String, Item> items); | ||
59 | 83 | ||
60 | } | 84 | } |
diff --git a/src/esieequest/view/app/UserInterface.java b/src/esieequest/view/app/UserInterface.java index 1fc57bd..28b2f37 100644 --- a/src/esieequest/view/app/UserInterface.java +++ b/src/esieequest/view/app/UserInterface.java | |||
@@ -18,7 +18,10 @@ import javax.swing.border.EmptyBorder; | |||
18 | import com.wordpress.tipsforjava.swing.StretchIcon; | 18 | import com.wordpress.tipsforjava.swing.StretchIcon; |
19 | 19 | ||
20 | import esieequest.controller.GameEngine; | 20 | import esieequest.controller.GameEngine; |
21 | import esieequest.model.Game; | 21 | import esieequest.model.Item; |
22 | import esieequest.model.Quest; | ||
23 | import esieequest.model.Room; | ||
24 | import esieequest.model.Side; | ||
22 | import esieequest.view.View; | 25 | import esieequest.view.View; |
23 | 26 | ||
24 | /** | 27 | /** |
@@ -28,7 +31,6 @@ import esieequest.view.View; | |||
28 | */ | 31 | */ |
29 | abstract class UserInterface implements View, ActionListener { | 32 | abstract class UserInterface implements View, ActionListener { |
30 | 33 | ||
31 | protected Game game; | ||
32 | private GameEngine gameEngine; | 34 | private GameEngine gameEngine; |
33 | 35 | ||
34 | private JPanel layout; | 36 | private JPanel layout; |
@@ -127,18 +129,20 @@ abstract class UserInterface implements View, ActionListener { | |||
127 | controlPanel.add(topControlPanel, BorderLayout.NORTH); | 129 | controlPanel.add(topControlPanel, BorderLayout.NORTH); |
128 | topControlPanel.setLayout(new BorderLayout(0, 0)); | 130 | topControlPanel.setLayout(new BorderLayout(0, 0)); |
129 | 131 | ||
132 | final Font font = new Font("Dialog", Font.BOLD, 19); | ||
133 | |||
130 | final JButton forwardButton = new JButton("↥"); | 134 | final JButton forwardButton = new JButton("↥"); |
131 | forwardButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 135 | forwardButton.setFont(font); |
132 | forwardButton.setToolTipText("Go forward"); | 136 | forwardButton.setToolTipText("Go forward"); |
133 | topControlPanel.add(forwardButton, BorderLayout.CENTER); | 137 | topControlPanel.add(forwardButton, BorderLayout.CENTER); |
134 | 138 | ||
135 | final JButton inventoryButton = new JButton("⇱"); | 139 | final JButton inventoryButton = new JButton("⇱"); |
136 | inventoryButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 140 | inventoryButton.setFont(font); |
137 | inventoryButton.setToolTipText("Use item"); | 141 | inventoryButton.setToolTipText("Use item"); |
138 | topControlPanel.add(inventoryButton, BorderLayout.WEST); | 142 | topControlPanel.add(inventoryButton, BorderLayout.WEST); |
139 | 143 | ||
140 | final JButton actionButton = new JButton("⇲"); | 144 | final JButton actionButton = new JButton("⇲"); |
141 | actionButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 145 | actionButton.setFont(font); |
142 | actionButton.setToolTipText("Talk/Take item"); | 146 | actionButton.setToolTipText("Talk/Take item"); |
143 | topControlPanel.add(actionButton, BorderLayout.EAST); | 147 | topControlPanel.add(actionButton, BorderLayout.EAST); |
144 | 148 | ||
@@ -147,17 +151,17 @@ abstract class UserInterface implements View, ActionListener { | |||
147 | bottomControlPanel.setLayout(new BorderLayout(0, 0)); | 151 | bottomControlPanel.setLayout(new BorderLayout(0, 0)); |
148 | 152 | ||
149 | final JButton backButton = new JButton("↧"); | 153 | final JButton backButton = new JButton("↧"); |
150 | backButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 154 | backButton.setFont(font); |
151 | backButton.setToolTipText("Go back"); | 155 | backButton.setToolTipText("Go back"); |
152 | bottomControlPanel.add(backButton, BorderLayout.CENTER); | 156 | bottomControlPanel.add(backButton, BorderLayout.CENTER); |
153 | 157 | ||
154 | final JButton leftButton = new JButton("↰"); | 158 | final JButton leftButton = new JButton("↰"); |
155 | leftButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 159 | leftButton.setFont(font); |
156 | leftButton.setToolTipText("Turn left"); | 160 | leftButton.setToolTipText("Turn left"); |
157 | bottomControlPanel.add(leftButton, BorderLayout.WEST); | 161 | bottomControlPanel.add(leftButton, BorderLayout.WEST); |
158 | 162 | ||
159 | final JButton rightButton = new JButton("↱"); | 163 | final JButton rightButton = new JButton("↱"); |
160 | rightButton.setFont(new Font("Dialog", Font.BOLD, 19)); | 164 | rightButton.setFont(font); |
161 | rightButton.setToolTipText("Turn right"); | 165 | rightButton.setToolTipText("Turn right"); |
162 | bottomControlPanel.add(rightButton, BorderLayout.EAST); | 166 | bottomControlPanel.add(rightButton, BorderLayout.EAST); |
163 | 167 | ||
@@ -215,8 +219,7 @@ abstract class UserInterface implements View, ActionListener { | |||
215 | * @param actionListener | 219 | * @param actionListener |
216 | * the action listener | 220 | * the action listener |
217 | */ | 221 | */ |
218 | private void setActionListener(final HashMap<String, JButton> hashMap, | 222 | private void setActionListener(final HashMap<String, JButton> hashMap, final ActionListener actionListener) { |
219 | final ActionListener actionListener) { | ||
220 | for (final JButton vButton : hashMap.values()) { | 223 | for (final JButton vButton : hashMap.values()) { |
221 | vButton.addActionListener(actionListener); | 224 | vButton.addActionListener(actionListener); |
222 | } | 225 | } |
@@ -260,15 +263,15 @@ abstract class UserInterface implements View, ActionListener { | |||
260 | * @param quest | 263 | * @param quest |
261 | * the quest title | 264 | * the quest title |
262 | */ | 265 | */ |
263 | private void setQuest(final String quest) { | 266 | private void setQuestLabel(final String questTitle) { |
264 | this.questTextPane.setText(quest); | 267 | this.questTextPane.setText(questTitle); |
265 | } | 268 | } |
266 | 269 | ||
267 | /** | 270 | /** |
268 | * Updates the room illustration. | 271 | * Updates the room illustration. |
269 | */ | 272 | */ |
270 | private void updateIllustration() { | 273 | private void updateIllustration(final String locationImageName) { |
271 | String imageName = this.game.getLocationImageName(); | 274 | String imageName = locationImageName; |
272 | if (imageName == null) { | 275 | if (imageName == null) { |
273 | imageName = "res/img/placeholder.jpg"; | 276 | imageName = "res/img/placeholder.jpg"; |
274 | } | 277 | } |
@@ -287,13 +290,19 @@ abstract class UserInterface implements View, ActionListener { | |||
287 | } | 290 | } |
288 | 291 | ||
289 |