private void readGestureState() { final PeekingIterator<AbstractGestureEvent> eventIterator = _gestureWrapper.getEvents(); if (eventIterator.hasNext()) { _currentGestureState = new GestureState(); while (eventIterator.hasNext()) { _currentGestureState.addEvent(eventIterator.next()); } } else { _currentGestureState = GestureState.NOTHING; } }
@Override public boolean apply(final TwoInputStates states) { final InputState current = states.getCurrent(); if (current == null) { return false; } final List<AbstractGestureEvent> events = current.getGestureState().getEvents(); for (int i = 0, maxI = events.size(); i < maxI; i++) { if (_clazz.isInstance(events.get(i))) { return true; } } return false; } }
public void perform(final Canvas source, final TwoInputStates inputStates, final double tpf) { final PinchGestureEvent event = inputStates.getCurrent().getGestureState() .first(PinchGestureEvent.class); if (event.isStartOfGesture()) { initialZoom = _sphereCoords.getX(); } if (event.getScale() != 0.0) { _sphereCoords.setX(MathUtils.clamp((1.0 / event.getScale()) * initialZoom, _minZoomDistance, _maxZoomDistance)); makeDirty(); } if (_updateCameraFromInput) { _camera = source.getCanvasRenderer().getCamera(); } } }));
@Test public void testTooManyChanges2() throws Exception { final PeekingIterator<MouseState> iter = new NeverEndingMouseIterator(); keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())).atLeastOnce(); expect(mouseWrapper.getEvents()).andReturn(iter).atLeastOnce(); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).atLeastOnce(); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).atLeastOnce(); expect(focusWrapper.getAndClearFocusLost()).andReturn(false).atLeastOnce(); replay(mocks); pl.readState(); }
private void init() { _inited = true; _keyboardWrapper.init(); _mouseWrapper.init(); _focusWrapper.init(); _controllerWrapper.init(); _gestureWrapper.init(); }
@SuppressWarnings({ "unchecked" }) @Before public void setup() throws Exception { pl = createMock("Physicallayer", PhysicalLayer.class); ta1 = createMock("TA1", TriggerAction.class); ta2 = createMock("TA2", TriggerAction.class); p1 = createMock("P1", Predicate.class); p2 = createMock("P2", Predicate.class); canvas = createMock("canvas", Canvas.class); ll = new LogicalLayer(); ll.registerInput(canvas, pl); ks = new KeyboardState(EnumSet.noneOf(Key.class), KeyEvent.NOTHING); ms = new MouseState(0, 0, 0, 0, 0, MouseButton.makeMap(ButtonState.UP, ButtonState.UP, ButtonState.UP), null); cs = new ControllerState(); gs = new GestureState(); mocks = new Object[] { pl, ta1, ta2, p1, p2, canvas }; }
@Test public void testTooManyChanges1() throws Exception { final PeekingIterator<KeyEvent> iter = new NeverEndingKeyIterator(); keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(iter).atLeastOnce(); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).atLeastOnce(); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).atLeastOnce(); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).atLeastOnce(); expect(focusWrapper.getAndClearFocusLost()).andReturn(false).atLeastOnce(); replay(mocks); pl.readState(); }
@Test public void testLostFocus1() throws Exception { keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(Adown.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(2); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(2); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(2); expect(focusWrapper.getAndClearFocusLost()).andReturn(true); replay(mocks); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("2 states", 2, inputStates.size()); is = inputStates.get(0); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); assertTrue("lost focus", InputState.LOST_FOCUS == inputStates.get(1)); }
@Test public void testKeyboardBasic1() throws Exception { keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(Adown.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(3); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(3); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(3); expect(focusWrapper.getAndClearFocusLost()).andReturn(false).atLeastOnce(); replay(mocks); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("1 state", 1, inputStates.size()); is = inputStates.get(0); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("0 states", 0, inputStates.size()); }
@Test public void testLostFocus2() throws Exception { keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(Adown.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(3); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(3); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(3); expect(focusWrapper.getAndClearFocusLost()).andReturn(false); expect(focusWrapper.getAndClearFocusLost()).andReturn(true); replay(mocks); pl.readState(); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("2 states", 2, inputStates.size()); is = inputStates.get(0); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); is = inputStates.get(1); assertEquals("lost focus", InputState.LOST_FOCUS, is); assertFalse("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); }
@Test public void testKeyboardBasic2() throws Exception { final PeekingIterator<KeyEvent> adau = Iterators.peekingIterator(AdownAup.iterator()); keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(adau); expect(keyboardWrapper.getEvents()).andReturn(adau); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(4); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(4); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(4); expect(focusWrapper.getAndClearFocusLost()).andReturn(false).times(2); replay(mocks); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("2 states", 2, inputStates.size()); is = inputStates.get(0); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); is = inputStates.get(1); assertFalse("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("0 states", 0, inputStates.size()); }
@Test public void testKeyboardBasic3() throws Exception { keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); final PeekingIterator<KeyEvent> keyIterator = Iterators.peekingIterator(AdownBdown.iterator()); expect(keyboardWrapper.getEvents()).andReturn(keyIterator).times(4); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(4); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(4); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(4); expect(focusWrapper.getAndClearFocusLost()).andReturn(false).times(2); replay(mocks); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("2 states", 2, inputStates.size()); is = inputStates.get(0); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); is = inputStates.get(1); assertTrue("a down", is.getKeyboardState().isDown(Key.A)); assertTrue("b down", is.getKeyboardState().isDown(Key.B)); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("0 states", 0, inputStates.size()); }
@Test public void testLostFocus3() throws Exception { keyboardWrapper.init(); mouseWrapper.init(); controllerWrapper.init(); gestureWrapper.init(); focusWrapper.init(); expect(keyboardWrapper.getEvents()).andReturn(Iterators.peekingIterator(noKeys.iterator())).times(3); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(buttonDown.iterator())); expect(mouseWrapper.getEvents()).andReturn(Iterators.peekingIterator(noMice.iterator())).times(2); expect(controllerWrapper.getEvents()).andReturn(Iterators.peekingIterator(nothing.iterator())).times(3); expect(gestureWrapper.getEvents()).andReturn(Iterators.peekingIterator(noGestures.iterator())).times(3); expect(focusWrapper.getAndClearFocusLost()).andReturn(false); expect(focusWrapper.getAndClearFocusLost()).andReturn(true); replay(mocks); pl.readState(); pl.readState(); inputStates = pl.drainAvailableStates(); assertEquals("2 states", 2, inputStates.size()); is = inputStates.get(0); assertFalse("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); assertEquals("mb down", ButtonState.DOWN, is.getMouseState().getButtonState(MouseButton.LEFT)); is = inputStates.get(1); assertEquals("lost focus", InputState.LOST_FOCUS, is); assertFalse("a down", is.getKeyboardState().isDown(Key.A)); assertFalse("b down", is.getKeyboardState().isDown(Key.B)); assertEquals("mb up", ButtonState.UP, is.getMouseState().getButtonState(MouseButton.LEFT)); }