List of usage examples for com.google.gwt.user.client Event ONTOUCHEND
int ONTOUCHEND
To view the source code for com.google.gwt.user.client Event ONTOUCHEND.
Click Source Link
From source file:ch.unifr.pai.twice.dragndrop.client.TouchDragNDrop.java
License:Apache License
/** * Replaces the native preview handler to listen to touch events instead of mouse events * /* w w w . j ava 2 s .c o m*/ * @see ch.unifr.pai.twice.dragndrop.client.MPDragNDrop#createNativePreviewHandler() */ @Override protected NativePreviewHandler createNativePreviewHandler() { return new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { switch (event.getTypeInt()) { case Event.ONTOUCHSTART: event.getNativeEvent().preventDefault(); break; case Event.ONTOUCHMOVE: case Event.ONTOUCHEND: event.getNativeEvent().preventDefault(); String deviceId = getDeviceId(event.getNativeEvent()); MPDragNDrop handler = activeHandlers.get(deviceId); if (handler != null) { handler.onMouseEvent(deviceId, (Event) event.getNativeEvent()); } break; } if (event.getTypeInt() == Event.ONTOUCHEND) { removeEventPreview(); } } }; }
From source file:ch.unifr.pai.twice.dragndrop.client.TouchDragNDrop.java
License:Apache License
/** * react to touch events instead of mouse events * /*from ww w. j ava 2s . c o m*/ * @see ch.unifr.pai.twice.dragndrop.client.MPDragNDrop#onMouseEvent(java.lang.String, com.google.gwt.user.client.Event) */ @Override protected void onMouseEvent(String deviceId, Event event) { switch (DOM.eventGetType(event)) { case Event.ONTOUCHMOVE: onDrag(deviceId, event); break; case Event.ONTOUCHEND: endDrag(deviceId, event); break; } }
From source file:com.cgxlib.xq.client.plugins.MousePlugin.java
License:Apache License
private void bindOtherEvents(final Element element) { int moveEvent = touchSupported ? Event.ONTOUCHMOVE : Event.ONMOUSEMOVE; int endEvents = touchSupported ? Event.ONTOUCHEND : Event.ONMOUSEUP; $(document).as(Events).bind(moveEvent, getPluginName(), (Object) null, new Function() { @Override/*w w w. j av a2 s .c om*/ public boolean f(Event e) { mouseMove(element, (XQEvent) XQEvent.create(e)); return false; } }).bind(endEvents, getPluginName(), (Object) null, new Function() { @Override public boolean f(Event e) { mouseUp(element, (XQEvent) XQEvent.create(e)); return false; } }); // TODO Event.ONTOUCHEND | Event.ONTOUCHCANCEL don't work -> investigate if (touchSupported) { $(document).as(Events).bind(Event.ONTOUCHCANCEL, getPluginName(), (Object) null, new Function() { @Override public boolean f(Event e) { mouseUp(element, (XQEvent) XQEvent.create(e)); return false; } }); } }
From source file:com.cgxlib.xq.client.plugins.MousePlugin.java
License:Apache License
private void unbindOtherEvents() { int events = touchSupported ? Event.ONTOUCHCANCEL | Event.ONTOUCHEND | Event.ONTOUCHMOVE : Event.ONMOUSEUP | Event.ONMOUSEMOVE; $(document).as(Events).unbind(events, getPluginName(), null); }
From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java
License:Apache License
private void onResizeEvent(Event event) { if (resizable && WidgetUtil.isTouchEventOrLeftMouseButton(event)) { switch (event.getTypeInt()) { case Event.ONMOUSEDOWN: case Event.ONTOUCHSTART: showResizingCurtain();/*from w ww . j a v a2 s. co m*/ if (BrowserInfo.get().isIE()) { resizeBox.getStyle().setVisibility(Style.Visibility.HIDDEN); } resizing = true; startX = WidgetUtil.getTouchOrMouseClientX(event); startY = WidgetUtil.getTouchOrMouseClientY(event); origW = getElement().getOffsetWidth(); origH = getElement().getOffsetHeight(); DOM.setCapture(getElement()); event.preventDefault(); break; case Event.ONMOUSEUP: case Event.ONTOUCHEND: setSize(event); case Event.ONTOUCHCANCEL: DOM.releaseCapture(getElement()); case Event.ONLOSECAPTURE: hideResizingCurtain(); if (BrowserInfo.get().isIE()) { resizeBox.getStyle().clearVisibility(); } resizing = false; break; case Event.ONMOUSEMOVE: case Event.ONTOUCHMOVE: if (resizing) { setSize(event); event.preventDefault(); } break; default: event.preventDefault(); break; } } }
From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.CubaFileUploadProgressWindow.java
License:Apache License
private void onDragEvent(Event event) { if (!WidgetUtil.isTouchEventOrLeftMouseButton(event)) { return;/*from ww w . ja v a 2 s.co m*/ } switch (DOM.eventGetType(event)) { case Event.ONTOUCHSTART: if (event.getTouches().length() > 1) { return; } case Event.ONMOUSEDOWN: beginMovingWindow(event); break; case Event.ONMOUSEUP: case Event.ONTOUCHEND: case Event.ONTOUCHCANCEL: case Event.ONLOSECAPTURE: stopMovingWindow(); break; case Event.ONMOUSEMOVE: case Event.ONTOUCHMOVE: moveWindow(event); break; default: break; } }
From source file:com.haulmont.cuba.web.toolkit.ui.client.notification.CubaNotification.java
License:Apache License
@Override public boolean onEventPreview(Event event) { int type = DOM.eventGetType(event); if ((type == Event.ONCLICK || type == Event.ONTOUCHEND) && event.getEventTarget() != null) { Element target = Element.as(event.getEventTarget()); if (target.getClassName() != null && target.getClassName().contains(CUBA_NOTIFICATION_MODALITY_CURTAIN)) { hide();//from ww w . ja v a 2s .c o m return false; } } if (type == Event.ONKEYDOWN && event.getKeyCode() == KeyCodes.KEY_ESCAPE) { if (!getElement().getClassName().contains(TRAY_STYLE)) { hide(); return false; } } return super.onEventPreview(event); }
From source file:com.haulmont.cuba.web.widgets.client.addons.dragdroplayouts.ui.VLayoutDragDropMouseHandler.java
License:Apache License
/** * Initiates the drag only on the first move event * * @param originalEvent//from w w w . ja v a 2 s . co m * the original Mouse Down event. Only events on elements are * passed in here (Element.as() is safe without check here) */ protected void initiateDragOnMove(final NativeEvent originalEvent) { EventTarget eventTarget = originalEvent.getEventTarget(); boolean stopEventPropagation = false; Element targetElement = Element.as(eventTarget); Widget target = WidgetUtil.findWidget(targetElement, null); Widget targetParent = target.getParent(); // Stop event propagation and prevent default behaviour if // - target is *not* a VTabsheet.TabCaption or // - drag mode is caption mode and widget is caption boolean isTabCaption = targetParent instanceof VTabsheet.TabCaption; boolean isCaption = VDragDropUtil.isCaptionOrCaptionless(targetParent); if (dragMode == LayoutDragMode.CLONE && isTabCaption == false) { stopEventPropagation = true; // overwrite stopEventPropagation flag again if // - root implements VHasDragFilter but // - target is not part of its drag filter and // - target is not a GWT Label based widget if (root instanceof VHasDragFilter) { if (((VHasDragFilter) root).getDragFilter().isDraggable(target) == false && (target instanceof LabelBase) == false) { stopEventPropagation = false; } } if (root instanceof VHasGrabFilter) { VGrabFilter grabFilter = ((VHasGrabFilter) root).getGrabFilter(); if (grabFilter != null && !grabFilter.canBeGrabbed(root, target)) { return; } } } if (dragMode == LayoutDragMode.CAPTION && isCaption) { stopEventPropagation = true; } if (isElementNotDraggable(targetElement)) { stopEventPropagation = false; } if (stopEventPropagation) { originalEvent.stopPropagation(); originalEvent.preventDefault(); // Manually focus as preventDefault() will also cancel focus targetElement.focus(); } mouseDownHandlerReg = Event.addNativePreviewHandler(new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { int type = event.getTypeInt(); if (type == Event.ONMOUSEUP || type == Event.ONTOUCHCANCEL || type == Event.ONTOUCHEND) { mouseDownHandlerReg.removeHandler(); mouseDownHandlerReg = null; } else if (type == Event.ONMOUSEMOVE || type == Event.ONTOUCHMOVE) { mouseDownHandlerReg.removeHandler(); mouseDownHandlerReg = null; initiateDrag(originalEvent); } } }); }
From source file:com.haulmont.cuba.web.widgets.client.addons.dragdroplayouts.ui.VLayoutDragDropMouseHandler.java
License:Apache License
/** * Called when the dragging a component should be initiated by both a mouse * down event as well as a touch start event * * FIXME This method is a BIG hack to circumvent Vaadin's very poor client * side API's. This will break often. Refactor once Vaadin gets a grip. * * @param event/* ww w. j ava 2s .c om*/ */ protected void initiateDrag(NativeEvent event) { // Check that dragging is enabled if (dragMode == LayoutDragMode.NONE) { return; } // Dragging can only be done with left mouse button and no modifier keys if (!isMouseDragEvent(event) && !Util.isTouchEvent(event)) { return; } // Get target widget EventTarget eventTarget = event.getEventTarget(); Element targetElement = Element.as(eventTarget); Widget target = WidgetUtil.findWidget(targetElement, null); if (isEventOnScrollBar(event)) { return; } // do not drag close button of TabSheet tab if (isElementNotDraggable(targetElement)) { VDragAndDropManager.get().interruptDrag(); return; } // Abort if drag mode is caption mode and widget is not a caption boolean isPanelCaption = target instanceof VPanel && targetElement.getParentElement().getClassName().contains("v-panel-caption"); boolean isCaption = isPanelCaption || VDragDropUtil.isCaptionOrCaptionless(target); if (dragMode == LayoutDragMode.CAPTION && !isCaption) { /* * Ensure target is a caption in caption mode */ return; } if (dragMode == LayoutDragMode.CAPTION && isCaption) { /* * Ensure that captions in nested layouts don't get accepted if in * caption mode */ Widget w = VDragDropUtil.getTransferableWidget(target); ComponentConnector c = Util.findConnectorFor(w); ComponentConnector parent = (ComponentConnector) c.getParent(); if (parent.getWidget() != root) { return; } } // Create the transfarable VTransferable transferable = VDragDropUtil.createLayoutTransferableFromMouseDown(event, root, target); // Are we trying to drag the root layout if (transferable == null) { VConsole.log("Creating transferable on mouse down returned null"); return; } // Resolve the component final Widget w; ComponentConnector c = null, parent = null; if (target instanceof TabCaption) { TabCaption tabCaption = (TabCaption) target; Tab tab = tabCaption.getTab(); int tabIndex = ((ComplexPanel) tab.getParent()).getWidgetIndex(tab); VTabsheet tabsheet = tab.getTabsheet(); w = tab; c = tabsheet.getTab(tabIndex); parent = Util.findConnectorFor(tabsheet); } else if (root instanceof VDDAccordion) { w = target; parent = Util.findConnectorFor(root); StackItem tab = WidgetUtil.findWidget(targetElement, StackItem.class); if (tab != null && root.getElement().isOrHasChild(tab.getElement())) { c = ((VDDAccordion) root).getTab(((VDDAccordion) root).getTabPosition(tab)); } } else if (transferable.getData(Constants.TRANSFERABLE_DETAIL_COMPONENT) != null) { ComponentConnector connector = (ComponentConnector) transferable .getData(Constants.TRANSFERABLE_DETAIL_COMPONENT); w = connector.getWidget(); c = Util.findConnectorFor(w); parent = (ComponentConnector) c.getParent(); } else { // Failsafe if no widget was found w = root; c = Util.findConnectorFor(w); parent = (ComponentConnector) c.getParent(); VConsole.log("Could not resolve component, using root as component"); } VConsole.log("Dragging widget: " + w); VConsole.log(" in parent: " + parent); // Ensure component is draggable if (!VDragDropUtil.isDraggingEnabled(parent, w)) { VConsole.log("Dragging disabled for " + w.getClass().getName() + " in " + parent.getWidget().getClass().getName()); VDragAndDropManager.get().interruptDrag(); return; } // Announce drag start to listeners for (DragStartListener dl : dragStartListeners) { if (!dl.dragStart(w, dragMode)) { VDragAndDropManager.get().interruptDrag(); return; } } currentDraggedWidget = w; // Announce to handler that we are starting a drag operation VDragEvent currentDragEvent = VDragAndDropManager.get().startDrag(transferable, event, true); /* * Create the drag image */ boolean hasDragCaption = false; com.google.gwt.dom.client.Element dragImageElement = null; if (root instanceof VHasDragCaptionProvider) { VDragCaptionProvider dragCaptionProvider = ((VHasDragCaptionProvider) root).getDragCaptionProvider(); if (dragCaptionProvider != null) { hasDragCaption = true; dragImageElement = dragCaptionProvider.getDragCaptionElement(currentDraggedWidget); } } if (!hasDragCaption && dragImageProvider != null) { dragImageElement = dragImageProvider.getDragImageElement(w); } if (dragImageElement != null) { // Set stylename to proxy component as well if (hasDragCaption) { dragImageElement.addClassName(ACTIVE_DRAG_CUSTOM_IMAGE_STYLENAME); } else { dragImageElement.addClassName(ACTIVE_DRAG_SOURCE_STYLENAME); } } else if (root instanceof VCssLayout) { /* * CSS Layout does not have an enclosing div so we just use the * component div */ dragImageElement = w.getElement(); } else if (root instanceof VTabsheet) { /* * Tabsheet should use the dragged tab as a drag image */ dragImageElement = targetElement; } else if (root instanceof VAccordion) { /* * Accordion should use the dragged tab as a drag image */ dragImageElement = targetElement; } else if (root instanceof VFormLayout) { /* * Dragging a component in a form layout should include the caption * and error indicator as well */ Element rowElement = (Element) VDDFormLayout .getRowFromChildElement((com.google.gwt.dom.client.Element) w.getElement().cast(), (com.google.gwt.dom.client.Element) root.getElement().cast()) .cast(); dragImageElement = rowElement; } else { /* * For other layouts we just use the target element; */ dragImageElement = w.getElement(); } Element clone; if (hasDragCaption) { currentDragEvent.setDragImage(dragImageElement); clone = dragImageElement; } else { currentDragEvent.createDragImage(dragImageElement, true); clone = currentDragEvent.getDragImage(); } assert (clone != null); // Lock drag image dimensions if (!hasDragCaption) { clone.getStyle().setWidth(dragImageElement.getOffsetWidth(), Style.Unit.PX); clone.getStyle().setHeight(dragImageElement.getOffsetHeight(), Style.Unit.PX); } if (c != null && c.delegateCaptionHandling() && !(root instanceof VTabsheet) && !(root instanceof VAccordion)) { /* * Captions are not being dragged with the widget since they are * separate. Manually add a clone of the caption to the drag image. */ if (target instanceof VCaption) { clone.insertFirst(targetElement.cloneNode(true)); } } if (BrowserInfo.get().isIE()) { // Fix IE not aligning the drag image correctly when dragging // layouts clone.getStyle().setPosition(Position.ABSOLUTE); } currentDraggedWidget.addStyleName(ACTIVE_DRAG_SOURCE_STYLENAME); // Listen to mouse up for cleanup mouseUpHandlerReg = Event.addNativePreviewHandler(new Event.NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { if (event.getTypeInt() == Event.ONMOUSEUP || event.getTypeInt() == Event.ONTOUCHEND || event.getTypeInt() == Event.ONTOUCHCANCEL) { if (mouseUpHandlerReg != null) { mouseUpHandlerReg.removeHandler(); if (currentDraggedWidget != null) { currentDraggedWidget.removeStyleName(ACTIVE_DRAG_SOURCE_STYLENAME); if (dragImageProvider != null) { com.google.gwt.dom.client.Element dragImageElement = dragImageProvider .getDragImageElement(currentDraggedWidget); if (dragImageElement != null) { dragImageElement.removeClassName(ACTIVE_DRAG_SOURCE_STYLENAME); } } currentDraggedWidget = null; } } // Ensure capturing is turned off at mouse up Event.releaseCapture(RootPanel.getBodyElement()); } } }); }
From source file:com.sencha.gxt.cell.core.client.form.ComboBoxCell.java
License:sencha.com license
protected void init(ListStore<T> store) { listContainer = new VerticalLayoutContainer(); listContainer.getElement().makePositionable(true); listContainer.setBorders(true);//w w w . j a v a 2s. co m listContainer.setShadow(true); listContainer.add(listView, new VerticalLayoutData(1, -1)); bindStore(store); final TapGestureRecognizer previewTapGestureRecognizer = new TapGestureRecognizer() { @Override protected void onTap(TouchData touchData) { NativeEvent event = touchData.getLastNativeEvent(); Element target = touchData.getStartElement().asElement(); if (listContainer.getElement().isOrHasChild(target)) { if (pagingToolBar == null || (!pagingToolBar.getElement().isOrHasChild(target))) { onViewClick(lastParent, event, true, false); event.preventDefault(); } } else { collapseIf(target.<XElement>cast()); } super.onTap(touchData); } }; eventPreview = new BaseEventPreview() { protected boolean onPreview(NativePreviewEvent pe) { Element target = pe.getNativeEvent().getEventTarget().cast(); // pointer event MOUSEDOWN conflicts with scrolling if (PointerEventsSupport.impl.isSupported()) { previewTapGestureRecognizer.handle(pe.getNativeEvent()); return true; } switch (pe.getTypeInt()) { case Event.ONSCROLL: case Event.ONMOUSEWHEEL: collapseIf(pe); break; case Event.ONMOUSEDOWN: if (listContainer.getElement().isOrHasChild(target)) { if (pagingToolBar == null || (!pagingToolBar.getElement().isOrHasChild(target))) { onViewClick(lastParent, pe.getNativeEvent(), true, false); pe.getNativeEvent().preventDefault(); } } else { collapseIf(pe); } break; case Event.ONTOUCHSTART: case Event.ONTOUCHMOVE: case Event.ONTOUCHEND: case Event.ONTOUCHCANCEL: previewTapGestureRecognizer.handle(pe.getNativeEvent()); break; } NativeEvent e = pe.getNativeEvent(); if (pe.getTypeInt() == KeyNav.getKeyEvent() && expanded) { if (e.getKeyCode() == KeyCodes.KEY_ENTER) { if (pagingToolBar != null && pagingToolBar.getElement().isOrHasChild(target)) { return true; } e.stopPropagation(); e.preventDefault(); if (GXT.isIE()) { ignoreNextEnter = true; } onViewClick(lastParent, e, false, true); } } return true; } }; eventPreview.setAutoHide(false); dqTask = new DelayedTask() { @Override public void onExecute() { doQuery(lastContext, lastParent, lastValueUpdater, lastValue, getText(lastParent), false); } }; }