List of usage examples for com.google.gwt.user.client Event ONTOUCHCANCEL
int ONTOUCHCANCEL
To view the source code for com.google.gwt.user.client Event ONTOUCHCANCEL.
Click Source Link
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 a 2s.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 ww w .j a va2 s.c o 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 w ww.j ava 2 s . c o 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.widgets.client.addons.dragdroplayouts.ui.VLayoutDragDropMouseHandler.java
License:Apache License
/** * Initiates the drag only on the first move event * * @param originalEvent/*ww w. j a v a2s . com*/ * 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/*w w w .j a v a 2 s .co m*/ */ 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);/* ww w .jav a 2s .c om*/ 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); } }; }
From source file:com.sencha.gxt.widget.core.client.CollapsePanel.java
License:sencha.com license
/** * Expands a collapsed {@link CollapsePanel}, optionally animating it so that * it appears to expand from the direction of its associated region. Has no * effect if the panel is not collapsed. *//*from www . j a v a 2s. co m*/ public void expand() { if (panelData.isFloatable() && !expanded) { SplitBar bar = panel.getData("splitBar"); if (bar != null) { bar.getElement().getStyle().setDisplay(Display.NONE); } for (Widget w : panel.getHeader().getTools()) { w.getElement().getStyle().setVisibility(Visibility.HIDDEN); } panel.getElement().updateZIndex(0); panel.getElement().setVisible(true); RootPanel.get().add(panel); SplitBar collapseBar = getData("splitBar"); if (bar != null) { collapseBar.getElement().getStyle().setDisplay(Display.NONE); } Direction d = Direction.RIGHT; AnchorAlignment align = new AnchorAlignment(Anchor.TOP_LEFT, Anchor.TOP_RIGHT); switch (region) { case EAST: d = Direction.LEFT; align = new AnchorAlignment(Anchor.TOP_RIGHT, Anchor.TOP_LEFT); break; case SOUTH: align = new AnchorAlignment(Anchor.BOTTOM_LEFT, Anchor.TOP_LEFT); d = Direction.UP; break; case NORTH: d = Direction.DOWN; align = new AnchorAlignment(Anchor.TOP_LEFT, Anchor.BOTTOM_LEFT); break; case WEST: case CENTER: // do nothing } panel.getElement().alignTo(getElement(), align, 0, 0); if (animate && !disableAnimations) { Fx fx = new Fx(); fx.addAfterAnimateHandler(new AfterAnimateHandler() { @Override public void onAfterAnimate(AfterAnimateEvent event) { expanded = true; } }); panel.getElement().<FxElement>cast().slideIn(d, fx); } else { expanded = true; } final TapGestureRecognizer previewTapGestureRecognizer = new TapGestureRecognizer() { @Override public boolean handleEnd(NativeEvent endEvent) { super.handleEnd(endEvent); XElement target = endEvent.getEventTarget().cast(); if (!panel.getElement().isOrHasChild(target) && !(getElement().isOrHasChild(target))) { collapse(); return false; } return true; } }; preview = new BaseEventPreview() { @Override protected boolean onPreview(NativePreviewEvent pe) { switch (pe.getTypeInt()) { case Event.ONCLICK: case Event.ONMOUSEDOWN: XElement target = pe.getNativeEvent().getEventTarget().cast(); if (!panel.getElement().isOrHasChild(target) && !(getElement().isOrHasChild(target))) { collapse(); remove(); } break; case Event.ONTOUCHSTART: case Event.ONTOUCHMOVE: case Event.ONTOUCHCANCEL: previewTapGestureRecognizer.handle(pe.getNativeEvent()); break; case Event.ONTOUCHEND: if (!previewTapGestureRecognizer.handle(pe.getNativeEvent())) { remove(); } } return true; } }; CompositeElement comp = new CompositeElement(); comp.add(panel.getElement()); preview.setIgnoreList(comp); preview.add(); } }
From source file:com.sencha.gxt.widget.core.client.Component.java
License:sencha.com license
@Override public void onBrowserEvent(Event event) { switch (event.getTypeInt()) { case Event.ONFOCUS: onFocus(event);/*from w ww .j av a 2 s. c o m*/ break; case Event.ONBLUR: onBlur(event); break; case Event.ONCONTEXTMENU: if (disableContextMenu) { event.preventDefault(); } onRightClick(event); break; case Event.ONTOUCHSTART: case Event.ONTOUCHMOVE: case Event.ONTOUCHCANCEL: case Event.ONTOUCHEND: onTouch(event); break; } if (PointerEventsSupport.impl.isSupported() && PointerEventsSupport.impl.isPointerEvent(event)) { onTouch(event); } int type = event.getTypeInt(); // specialized support for mouse overs if (overElements != null && (type == Event.ONMOUSEOVER || type == Event.ONMOUSEOUT)) { XElement target = event.getEventTarget().cast(); if (target != null) { String style = overElements.get(target.getId()); if (style != null) { target.setClassName(style, type == Event.ONMOUSEOVER); } } } // we are not calling super so must fire dom events DomEvent.fireNativeEvent(event, this, this.getElement()); }
From source file:com.smartgwt.mobile.client.widgets.form.fields.SliderItem.java
License:Open Source License
@Override public void onBrowserEvent(Event event) { if (!isEnabled() || _isReadOnly()) { return;/*ww w . j av a2s . co m*/ } Element target = event.getEventTarget().cast(); if (target != null && getElement().isOrHasChild(target)) { switch (event.getTypeInt()) { case Event.ONMOUSEDOWN: if (!touched) { _onStart(event, null); } break; case Event.ONTOUCHSTART: case Event.ONGESTURESTART: touched = true; _onStart(event, null); break; case Event.ONMOUSEMOVE: if (!touched) { onMove(event); } break; case Event.ONTOUCHMOVE: case Event.ONGESTURECHANGE: onMove(event); break; case Event.ONMOUSEUP: if (!touched) { _onEnd(event); } break; case Event.ONTOUCHEND: case Event.ONTOUCHCANCEL: case Event.ONGESTUREEND: _onEnd(event); break; } } }