1 package de.jos.game.objects.buttons;
2
3 import de.jos.game.objects.screen.AbstractGameObject;
4 import de.jos.game.objects.screen.MultiPageScreen;
5
6 public class NextButton extends GameButton {
7
8 /***
9 * Create a NexButton at the position.
10 *
11 * @param gameObject
12 * @param x
13 * @param y
14 */
15 public NextButton(AbstractGameObject gameObject, int x, int y) {
16 super(gameObject.getString("menu.next"), x, y, 0, 0, gameObject);
17
18 setButtonClickCallback(new NextButtonClickCallback(gameObject));
19 }
20
21 @Override
22 public Action getAction() {
23 return Action.NEXT;
24 }
25
26 /***
27 * Callback fuer einen Button click.
28 *
29 * @author root
30 *
31 */
32 private static final class NextButtonClickCallback implements ButtonClickCallback {
33
34 AbstractGameObject gameObject = null;
35
36 public NextButtonClickCallback(AbstractGameObject gameObject) {
37 this.gameObject = gameObject;
38 }
39
40 /***
41 * {@inheritDoc}
42 */
43 public void performClickAction() {
44 if (gameObject instanceof MultiPageScreen) {
45 MultiPageScreen multiPageScreen = (MultiPageScreen) gameObject;
46 multiPageScreen.setCurrentPage(multiPageScreen.getCurrentPage() + 1);
47
48 if (multiPageScreen.getCurrentPage() == 0) {
49 multiPageScreen.setCurrentPage(1);
50 } else if (multiPageScreen.getCurrentPage() > multiPageScreen.getNumberOfPages()) {
51 multiPageScreen.setCurrentPage(multiPageScreen.getNumberOfPages());
52 }
53
54 multiPageScreen.executePagingAction();
55 }
56
57 }
58
59 }
60
61 }