1 package de.jos.game.objects.screen;
2
3 import java.awt.Graphics2D;
4
5 import org.springframework.beans.factory.xml.XmlBeanFactory;
6
7 import com.golden.gamedev.GameEngine;
8
9 import de.jos.game.objects.ResourceContainer;
10 import de.jos.game.objects.buttons.BackButton;
11 import de.jos.game.objects.buttons.NextButton;
12 import de.jos.game.objects.buttons.PreviousButton;
13
14 /***
15 *
16 * @author root
17 *
18 */
19 public abstract class MultiPageScreen extends AbstractGameObject {
20
21 /***
22 * The page that is currently displayed.
23 */
24 private int currentPage = 1;
25
26 /***
27 * The number of pages to be displayed.
28 */
29 private int numberOfPages = 0;
30
31 private Screen backScreen = null;
32
33 public MultiPageScreen(GameEngine gameEngine, ResourceContainer resourceContainer, XmlBeanFactory xmlBeanFactory,
34 Screen backScreen) {
35 super(gameEngine, resourceContainer, xmlBeanFactory);
36 this.backScreen = backScreen;
37 }
38
39 public void initResources() {
40 addButtonToScreen(new PreviousButton(this, 30 + 0 * 150, 360));
41 addButtonToScreen(new NextButton(this, 30 + 2 * 150, 360));
42 addButtonToScreen(new BackButton(this, 30 + 1 * 150, 360, backScreen));
43 }
44
45 public void render(Graphics2D graphics) {
46 getResourceContainer().getBackground().render(graphics);
47 getFramework().render(graphics);
48 }
49
50 public void update(long elapsedTime) {
51 super.update(elapsedTime);
52 }
53
54 /***
55 * In dieser Methode koennen zusaetzliche Aktionen definiert werden, die beim
56 * wechseln einer Seite durchzufuehren sind (z.B. umschalten eines Panels).
57 *
58 */
59 public abstract void executePagingAction();
60
61 public int getNumberOfPages() {
62 return numberOfPages;
63 }
64
65 public int getCurrentPage() {
66 return currentPage;
67 }
68
69 public void setCurrentPage(int currentPage) {
70 this.currentPage = currentPage;
71 }
72
73 public void setNumberOfPages(int numberOfPages) {
74 this.numberOfPages = numberOfPages;
75 }
76
77 }