Guest User

Untitled

a guest
Jun 24th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. package edu.uci.ics.inf117.mstar.filter;
  2.  
  3. import java.util.Vector;
  4.  
  5. import edu.uci.ics.inf117.mstar.event.Point;
  6. import edu.uci.ics.inf117.mstar.event.StarboardEvent;
  7. import edu.uci.ics.inf117.mstar.gesture.GestureAnalyzer;
  8.  
  9.  
  10. public class Filter implements CoordinateFilter
  11. {
  12. private Vector<StarboardEvent> events;
  13. private GestureAnalyzer gestureHandler;
  14. private boolean leftClick;
  15. private boolean prevIsRelease;
  16. private boolean sendDataToApplication;
  17. private boolean mouseIsDown;
  18.  
  19. private Point previous;
  20.  
  21.  
  22. private final int TOLERANCE = 10;
  23.  
  24. private enum LeftButtonState {LB_UP, LB_DOWN}
  25.  
  26. private LeftButtonState leftMouseState = LeftButtonState.LB_UP;
  27.  
  28. public Filter(GestureAnalyzer analyzer)
  29. {
  30. gestureHandler = analyzer;
  31. events = new Vector<StarboardEvent>();
  32.  
  33. leftClick = false;
  34. prevIsRelease = false;
  35. sendDataToApplication = false;
  36. mouseIsDown = false;
  37. }
  38.  
  39.  
  40.  
  41. // the current filter does two things
  42. // 1) get rid of extra point after release
  43. // 2) (NOT YET IMPLEMENTED) it makes sure that related inputs
  44. @Override
  45. public void filterEvent(StarboardEvent e)
  46. {
  47.  
  48. if (sendDataToApplication)
  49. {
  50. // We are getting an extra point after a release,which doesn't make sense,
  51. // so we want to get rid of it
  52. if (mouseIsDown)
  53. {
  54. if (e.getPoint().released() == 1)
  55. {
  56. mouseIsDown = false;
  57. }
  58.  
  59. if (currentPointInValidRange(e.getPoint()))
  60. {
  61. System.out.println("valid point");
  62.  
  63. gestureHandler.receiveFilteredEvent(e);
  64. previous = e.getPoint();
  65. }
  66. else
  67. {
  68. System.out.println("invalid point!");
  69.  
  70. }
  71. }
  72. else
  73. {
  74. if (e.getPoint().click() == 1)
  75. {
  76. mouseIsDown = true;
  77. previous = e.getPoint();
  78. gestureHandler.receiveFilteredEvent(e);
  79. }
  80. }
  81. }
  82. else
  83. {
  84. // this makes sure no points get sent to the application until the board
  85. // has actually been touched. Since an LC is always the first thing to
  86. // be sent when the board is first touched, we can check for that
  87. if (e.getPoint().click() == 1)
  88. {
  89. sendDataToApplication = true;
  90. mouseIsDown = true;
  91. previous = e.getPoint();
  92. gestureHandler.receiveFilteredEvent(e);
  93. }
  94. }
  95. }
  96.  
  97. private boolean currentPointInValidRange(Point current)
  98. {
  99. /*if ((Math.abs(previous.getX()- current.getX()) > TOLERANCE) ||
  100. (Math.abs(previous.getX() - current.getY()) > TOLERANCE))
  101. {
  102. return false;
  103. }
  104. else
  105. {
  106. return true;
  107. }*/
  108.  
  109. System.out.println("Current Point: (" + current.getX() + ", " + current.getY() +")");
  110. System.out.println("Previous Point: (" + previous.getX() + ", " + previous.getY() +")");
  111.  
  112. return true;
  113. }
  114.  
  115.  
  116.  
  117.  
  118.  
  119. }
Add Comment
Please, Sign In to add comment