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 }