Refine search
private void handleEvent (NativeEvent e) { if (e.getType().equals("mousedown")) { if (!e.getEventTarget().equals(canvas) || pressedButtons.contains(getButton(e.getButton()))) { float mouseX = getRelativeX(e, canvas); float mouseY = getRelativeY(e, canvas); for (int i = 0, j = touches.length(); i < j; i++) { Touch touch = touches.get(i); int real = touch.getIdentifier(); int touchId; touchMap.put(real, touchId = getAvailablePointer()); for (int i = 0, j = touches.length(); i < j; i++) { Touch touch = touches.get(i); int real = touch.getIdentifier(); int touchId = touchMap.get(real); deltaX[touchId] = getRelativeX(touch, canvas) - touchX[touchId]; for (int i = 0, j = touches.length(); i < j; i++) { Touch touch = touches.get(i); int real = touch.getIdentifier(); int touchId = touchMap.get(real); touchMap.remove(real); for (int i = 0, j = touches.length(); i < j; i++) { Touch touch = touches.get(i);
assert tasks != null : "tasks"; int length = tasks.length(); if (length == 0) { return null; boolean executedSomeTask = false; for (int i = 0; i < length; i++) { assert tasks.length() == length : "Working array length changed " + tasks.length() + " != " + length; Task t = tasks.get(i); if (t == null) { continue; tasks.set(i, null); canceledSomeTasks = true; if (tasks.get(i) != null) { newTasks.push(tasks.get(i)); assert newTasks.length() < length; return newTasks.length() == 0 ? null : newTasks; } else { return tasks;
public static void pollGamepads() { JsArray<Gamepad> currentGamepads = nativePollGamepads(); if (currentGamepads != null) { gamepadsTemp.clear(); gamepadsTemp.putAll(gamepads); for (int i = 0, j = currentGamepads.length(); i < j; i++) { Gamepad gamepad = currentGamepads.get(i); if (gamepad != null) { if (!gamepadsTemp.containsKey(gamepad.getIndex())) { onGamepadConnect(gamepad); } gamepadsTemp.remove(gamepad.getIndex()); } } for (Gamepad gamepad : gamepadsTemp.values()) { onGamepadDisconnect(gamepad); } } }
private final ArrayList<TouchPoint> getTouches(TouchEvent<?> event) { ArrayList<TouchPoint> touches = new ArrayList<TouchPoint>(); JsArray<Touch> jsarray = event.getTouches(); Element element = event.getRelativeElement(); if ((null != jsarray) && (jsarray.length() > 0)) { int size = jsarray.length(); for (int i = 0; i < size; i++) { Touch touch = jsarray.get(i); touches.add(new TouchPoint(touch.getRelativeX(element), touch.getRelativeY(element))); } } else { int x = event.getNativeEvent().getClientX() - element.getAbsoluteLeft() + element.getScrollLeft() + element.getOwnerDocument().getScrollLeft(); int y = event.getNativeEvent().getClientY() - element.getAbsoluteTop() + element.getScrollTop() + element.getOwnerDocument().getScrollTop(); touches.add(new TouchPoint(x, y)); } return touches; }
/** * Converts a java object array into a javascript array (JsArray). * * @param <E> the type of array * @param array the array containing values * @return a corresponding JsArray */ @SafeVarargs public static <E extends JavaScriptObject> JsArray<E> createArray(E... array) { JsArray<E> jsArray = JavaScriptObject.createArray().cast(); for (int i = 0; i < array.length; i++) { jsArray.set(i, array[i]); } return jsArray; }
public JsArray<Element> unique(JsArray<Element> a) { JsArray<Element> ret = JavaScriptObject.createArray().cast(); JsCache cache = JsCache.create(); for (int i = 0; i < a.length(); i++) { Element e = a.get(i); int id = e.hashCode(); if (!cache.exists(id)) { cache.putNumber(id, 1); ret.push(e); } } return ret; }
@Override public void onTouchStart(TouchStartEvent event) { if (event.getTouches().length() == 1) { dragging = true; Element e = event.getRelativeElement(); startX = event.getTouches().get(0).getRelativeX(e); startY = event.getTouches().get(0).getRelativeY(e); } // Stop the event from reaching the map controller: no panning while we're dragging the rectangle. event.stopPropagation(); }
final int type = event.getTypeInt(); final Element targetTdOrTr = getEventTargetTdOrTr(event); if (type == Event.ONCONTEXTMENU) { event.stopPropagation(); event.preventDefault(); case Event.ONTOUCHSTART: touchStart = event; Touch touch = event.getChangedTouches().get(0); touchStartX = touch.getClientX(); touchStartY = touch.getClientY();
@Override public void handleEvent(NativeEvent nativeEvent) { JsArray<Touch> touches = nativeEvent.getChangedTouches(); if (touches.length() > 0) { inDragSequence = true; // cancel touch events by default to prevent browser scrolling on iOS if (onPointerStart(eventFromTouch(rootElement, touches.get(0)), true)) nativeEvent.preventDefault(); } } });
/** * Creates a {@link SeriesGradient} with specified gradient */ public static SeriesGradient of( Double fromOpacity, Double fromBrightness, Double toOpacity, Double toBrightness ) { SeriesGradient gradient = JavaScriptObject.createObject().cast(); JsArray<Gradient> array = JavaScriptObject.createArray().cast(); array.push( Gradient.of( fromOpacity, fromBrightness ) ); array.push( Gradient.of( toOpacity, toBrightness ) ); gradient.put( FILL_COLOR_COLORS_KEY, array ); return gradient; }
private boolean isSignificantMove(Event event) { if (touchStart == null) { // no touch start return false; } /* * TODO calculate based on real distance instead of separate * axis checks */ Touch touch = event.getChangedTouches().get(0); if (Math.abs(touch.getClientX() - touchStartX) > TouchScrollDelegate.SIGNIFICANT_MOVE_THRESHOLD) { return true; } if (Math.abs(touch.getClientY() - touchStartY) > TouchScrollDelegate.SIGNIFICANT_MOVE_THRESHOLD) { return true; } return false; }
public NodeList<Element> select(String selector, Node context) { JsArray<Element> results = JavaScriptObject.createArray().cast(); return select(selector, context, results, null).cast(); } }
final int type = event.getTypeInt(); touchStart = event; isDragging = false; Touch touch = event.getChangedTouches().get(0); touchStartX = touch.getClientX(); touchStartY = touch.getClientY(); event.stopPropagation();
/** * Take a Java array, and produce a JS array that is only used for reading. As * this is actually a reference to the original array in prod mode, the source * must not be modified while this copy is in use or you will get different * behavior between DevMode and prod mode. * * @param array source array * @return JS array, which may be a copy or an alias of the input array */ public static <T extends JavaScriptObject> JsArray<T> readOnlyJsArray(T[] array) { if (GWT.isScript()) { return arrayAsJsArrayForProdMode(array).cast(); } JsArray<T> dest = JavaScriptObject.createArray().cast(); for (int i = 0; i < array.length; ++i) { dest.push(array[i]); } return dest; }
public MarkerClusterGroup addLayers(final List<ILayer> layers) { final JsArray<JSObject> layerArray = JsArray.createArray().cast(); for (final ILayer marker : layers) { layerArray.push(marker.getJSObject()); } MarkerClusterGroupImpl.addLayers(getJSObject(), layerArray); return this; }
@Override public Coordinate getLocation(HumanInputEvent<?> event, RenderSpace renderSpace) { switch (renderSpace) { case WORLD: Coordinate screen = getLocation(event, RenderSpace.SCREEN); return mapPresenter.getViewPort().transform(screen, RenderSpace.SCREEN, RenderSpace.WORLD); case SCREEN: default: if (event instanceof MouseEvent<?>) { Element element = mapPresenter.asWidget().getElement(); double offsetX = ((MouseEvent<?>) event).getRelativeX(element); double offsetY = ((MouseEvent<?>) event).getRelativeY(element); return new Coordinate(offsetX, offsetY); } else if (event instanceof TouchEvent<?>) { Touch touch = ((TouchEvent<?>) event).getTouches().get(0); return new Coordinate(touch.getClientX(), touch.getClientY()); } return new Coordinate(event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY()); } }
@Override public void onTouchStart(TouchStartEvent event) { touchCanceled = false; hasMoved = false; if(event.getNativeEvent() != null){ targetElement = event.getNativeEvent().getEventTarget().<Element>cast(); }else { targetElement = null; } start_x = event.getTouches().get(0).getPageX(); start_y = event.getTouches().get(0).getPageY(); }
@SuppressWarnings("unchecked") @Nonnull public static RemoteSettings convertToRemoteSettings(@Nonnull final Settings settings) { RemoteSettings remoteSettings = (RemoteSettings) JavaScriptObject.createObject(); JsArray<RemoteSubscription> remoteSubscriptions = (JsArray<RemoteSubscription>) JavaScriptObject.createArray(); for (Subscription subscription : settings.getSubscriptions()) { remoteSubscriptions.push(convertToRemoteSubscription(subscription)); } remoteSettings.setSubscriptions(remoteSubscriptions); return remoteSettings; }