ButtonHandler.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package control.button;
  2. import java.awt.Color;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import main.Window;
  8. import model.GameModel;
  9. import control.NetworkHandler;
  10. public class ButtonHandler implements KeyListener{
  11. List<ButtonListener> listeners;
  12. static List<Button> buttons;
  13. NetworkHandler ntw;
  14. public ButtonHandler()
  15. {
  16. this.ntw = null;
  17. listeners = new ArrayList<ButtonListener>();
  18. buttons = new ArrayList<Button>();
  19. }
  20. public void addButtonListener(ButtonListener toAdd) {
  21. listeners.add(toAdd);
  22. }
  23. public void buttonPress(Button b) {
  24. if(Window.ON_ARCADE)
  25. {
  26. Color c = b.getColor().brighter().brighter();
  27. ntw.setLed(b.getLedID(), c.getGreen(), c.getRed(), c.getBlue());
  28. ntw.show();
  29. }
  30. ButtonEvent e = new ButtonEvent(b, System.currentTimeMillis());
  31. for (ButtonListener bt : listeners)
  32. bt.buttonPressed(e);
  33. }
  34. public void buttonRelease(Button b) {
  35. if(Window.ON_ARCADE)
  36. {
  37. ntw.setLed(b.getLedID(), b.getColor().getGreen(), b.getColor().getRed(), b.getColor().getBlue());
  38. ntw.show();
  39. }
  40. ButtonEvent e = new ButtonEvent(b, System.currentTimeMillis());
  41. for (ButtonListener bt : listeners)
  42. bt.buttonReleased(e);
  43. }
  44. @Override
  45. public void keyPressed(KeyEvent e) {
  46. switch(e.getKeyCode())
  47. {
  48. case KeyEvent.VK_0:
  49. buttonPress(buttons.get(0));
  50. break;
  51. case KeyEvent.VK_1:
  52. buttonPress(buttons.get(1));
  53. break;
  54. case KeyEvent.VK_2:
  55. buttonPress(buttons.get(2));
  56. break;
  57. case KeyEvent.VK_3:
  58. buttonPress(buttons.get(3));
  59. break;
  60. case KeyEvent.VK_4:
  61. buttonPress(buttons.get(4));
  62. break;
  63. case KeyEvent.VK_5:
  64. buttonPress(buttons.get(5));
  65. break;
  66. case KeyEvent.VK_6:
  67. buttonPress(buttons.get(6));
  68. break;
  69. case KeyEvent.VK_ESCAPE:
  70. if(!Window.ON_ARCADE)
  71. System.exit(0);
  72. break;
  73. }
  74. }
  75. public void keyReleased(KeyEvent e) {
  76. switch(e.getKeyCode())
  77. {
  78. case KeyEvent.VK_0:
  79. buttonRelease(buttons.get(0));
  80. break;
  81. case KeyEvent.VK_1:
  82. buttonRelease(buttons.get(1));
  83. break;
  84. case KeyEvent.VK_2:
  85. buttonRelease(buttons.get(2));
  86. break;
  87. case KeyEvent.VK_3:
  88. buttonRelease(buttons.get(3));
  89. break;
  90. case KeyEvent.VK_4:
  91. buttonRelease(buttons.get(4));
  92. break;
  93. case KeyEvent.VK_5:
  94. buttonRelease(buttons.get(5));
  95. break;
  96. case KeyEvent.VK_6:
  97. buttonRelease(buttons.get(6));
  98. break;
  99. }
  100. }
  101. public void keyTyped(KeyEvent arg0) {}
  102. public static List<Button> getButtons()
  103. {
  104. return buttons;
  105. }
  106. public static Button getButton(int id)
  107. {
  108. for(Button b : buttons)
  109. {
  110. if(b.getButtonID() == id)
  111. {
  112. return b;
  113. }
  114. }
  115. return null;
  116. }
  117. public void setNetwork(NetworkHandler ntw) {
  118. this.ntw = ntw;
  119. buttons.add(new Button(0, -1, ntw));
  120. buttons.add(new Button(1, 2, ntw));
  121. buttons.add(new Button(2, 1, ntw));
  122. buttons.add(new Button(3, 0, ntw));
  123. buttons.add(new Button(4, -1, ntw));
  124. buttons.add(new Button(5, 3, ntw));
  125. buttons.add(new Button(6, 4, ntw));
  126. for (int i = 1; i < buttons.size(); i++) {
  127. buttons.get(i).setColor(GameModel.colors[i - 1]);
  128. }
  129. }
  130. }