View Javadoc

1   package de.jos.game.objects.buttons;
2   
3   import java.awt.Color;
4   import java.awt.Font;
5   import java.awt.Insets;
6   
7   import org.apache.commons.lang.builder.ToStringBuilder;
8   
9   import com.golden.gamedev.GameObject;
10  import com.golden.gamedev.gui.TButton;
11  import com.golden.gamedev.object.GameFont;
12  
13  /***
14   * Basisklasse aller Buttons
15   * 
16   * @author andreaswuest
17   * 
18   */
19  public abstract class GameButton extends TButton {
20  
21    private GameObject gameObject = null;
22  
23    private ButtonClickCallback buttonClickCallback = null;
24  
25    public enum Action {
26      NONE, PUZZLE_MODE, INFINITE_MODE, QUIT, BACK, CREDITS, HELP, NEXT, PREVIOUS, UNDO, RESTART, PUZZLE_LEVEL
27    };
28  
29    public GameButton(String text, int x, int y, int width, int height, GameObject gameObject) {
30      super(text, x, y, width, height);
31  
32      GameFont externalFont = gameObject.fontManager.getFont(new Font("Arial", Font.BOLD, 14));
33  
34      this.gameObject = gameObject;
35  
36      setExternalUI(gameObject.getImages("img/buttons/defaultButton.png", 4, 1), true);
37      UIResource().put("Text Color", Color.WHITE);
38      UIResource().put("Text Over Color", Color.WHITE);
39      UIResource().put("Text Font", externalFont);
40      UIResource().put("Text Over Font", externalFont);
41      UIResource().put("Text Pressed Font", externalFont);
42      UIResource().put("Text Vertical Space Integer", Integer.valueOf(0));
43      UIResource().put("Text Insets", new Insets(4, 5, 5, 5));
44  
45    }
46  
47    public abstract Action getAction();
48  
49    @Override
50    protected void processMousePressed() {
51      super.processMousePressed();
52      gameObject.bsSound.play("effects/sound70.wav");
53    }
54  
55    protected void processMouseClicked() {
56      super.processMouseClicked();
57      // wenn es einen buttonClickCallback gibt, diesen ausfuehren
58      if (getButtonClickCallback() != null) {
59        getButtonClickCallback().performClickAction();
60      }
61    }
62  
63    public String toString() {
64      ToStringBuilder tsb = new ToStringBuilder(this);
65      tsb.append("action", getAction());
66      return tsb.toString();
67    }
68  
69    public ButtonClickCallback getButtonClickCallback() {
70      return buttonClickCallback;
71    }
72  
73    public void setButtonClickCallback(ButtonClickCallback buttonClickCallback) {
74      this.buttonClickCallback = buttonClickCallback;
75    }
76  
77  }