List of usage examples for com.google.gwt.user.client DOM getCaptureElement
public static Element getCaptureElement()
From source file:asquare.gwt.tk.client.ui.behavior.ControllerSupportDelegate.java
License:Apache License
public void onBrowserEvent(Event event) { /*/*from w w w. j a va 2 s . co m*/ * Avoid processing the same event twice (issue with the GWT dispatcher). * If you sink events on a child, but do not set a listener (as in the case of UIObjects), * the following will happen: * * 1) child element's onXXX event handler is invoked * 2) $wnd.__dispatchEvent() is called with the event and child element * 3) this crawls up the heirarchy until it finds a GWT event listener (i.e. CComposite) * 4) CComposite.onBrowserEvent() is called (e.target = child, e.currentTarget = child) * 5) the event bubbles up to the parent element * 6) parent element's onXXX event handler is invoked * 7) $wnd.__dispatchEvent() is called with the event and the parent element * 8) CComposite.onBrowserEvent() is called (e.target = child, e.currentTarget = parent) * * @see DOMImplStandard#init() * @see Tree#onBrowserEvent(Event) * * Note: don't test current target when capturing. DOM.eventGetCurrentTarget() returns $wnd * when capturing in Firefox and $wnd.equals() blows up. * @see http://groups.google.com/group/Google-Web-Toolkit-Contributors/browse_thread/thread/41f12a9def68f97a * * Note: eventGetCurrentTarget(event) is wrong in FocusImplOld (Safari, old Mozilla, Opera)--it returns the * nested INPUT. Focus events don't bubble anyway, so bypass the check in this case. Bleh. */ if (m_controllers != null) { int eventType = DOM.eventGetType(event); if (DOM.getCaptureElement() != null || (eventType & Event.FOCUSEVENTS) != 0 || DOM.eventGetCurrentTarget(event).equals(m_widget.getElement())) { for (int i = 0, size = m_controllers.size(); i < size; i++) { Controller controller = m_controllers.get(i); if ((controller.getEventBits() & eventType) != 0 && (m_enabled || !isControllerDisablable(controller.getId()))) { controller.onBrowserEvent(m_widget, event); } } } } }
From source file:cc.alcina.framework.gwt.client.widget.dialog.RelativePopupPanel.java
License:Apache License
/** * Preview the {@link NativePreviewEvent}. * //ww w.j av a2 s . c om * @param event * the {@link NativePreviewEvent} */ private void previewNativeEvent(NativePreviewEvent event) { // If the event has been canceled or consumed, ignore it if (event.isCanceled() || (!previewAllNativeEvents && event.isConsumed())) { // We need to ensure that we cancel the event even if its been // consumed so // that popups lower on the stack do not auto hide if (modal) { event.cancel(); } return; } // Fire the event hook and return if the event is canceled onPreviewNativeEvent(event); if (event.isCanceled()) { return; } // If the event targets the popup or the partner, consume it Event nativeEvent = Event.as(event.getNativeEvent()); boolean eventTargetsPopupOrPartner = eventTargetsPopup(nativeEvent) || eventTargetsPartner(nativeEvent); if (eventTargetsPopupOrPartner) { event.consume(); } // Cancel the event if it doesn't target the modal popup. Note that the // event can be both canceled and consumed. if (modal) { switch (nativeEvent.getType()) { case BrowserEvents.KEYDOWN: case BrowserEvents.KEYPRESS: case BrowserEvents.KEYUP: if (nativeEvent.getAltKey() || nativeEvent.getMetaKey() || nativeEvent.getCtrlKey()) { return; } } event.cancel(); } // Switch on the event type int type = nativeEvent.getTypeInt(); switch (type) { case Event.ONMOUSEDOWN: case Event.ONTOUCHSTART: // Don't eat events if event capture is enabled, as this can // interfere with dialog dragging, for example. if (DOM.getCaptureElement() != null) { event.consume(); return; } if (!eventTargetsPopupOrPartner && autoHide) { EventTarget target = nativeEvent.getEventTarget(); // if (Element.is(target)) { // ClientUtils.dumpElementTree(Element.as(target)); // } hide(true); return; } break; case Event.ONMOUSEUP: case Event.ONMOUSEMOVE: case Event.ONCLICK: case Event.ONDBLCLICK: { // Don't eat events if event capture is enabled, as this can // interfere with dialog dragging, for example. if (DOM.getCaptureElement() != null) { event.consume(); return; } break; } case Event.ONFOCUS: { if (nativeEvent.getEventTarget().is(Element.class)) { Element target = nativeEvent.getEventTarget().cast(); if (modal && !eventTargetsPopupOrPartner && (target != null)) { blur(target); event.cancel(); return; } } break; } case Event.ONKEYPRESS: { if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE && isHideOnEscape()) { hide(false); event.cancel(); return; } break; } } }
From source file:com.bearsoft.gwt.ui.containers.DraggableDecoration.java
public DraggableDecoration(String... aClasses) { super();/*w ww. j av a2 s . c om*/ Element e = Document.get().createDivElement(); setElement(e); for (String className : aClasses) { e.addClassName(className); } addDomHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { DOM.setCapture(getElement()); event.preventDefault(); event.stopPropagation(); mouseScreenX = event.getScreenX(); mouseScreenY = event.getScreenY(); event.stopPropagation(); Widget target = getMovableTarget(); assert target != null : "movable target widget must present to accept position changes"; String tLeft = target.getElement().getStyle().getLeft(); targetScrollLeft = Double.parseDouble(tLeft.substring(0, tLeft.length() - 2)); String tTop = target.getElement().getStyle().getTop(); targetScrollTop = Double.parseDouble(tTop.substring(0, tTop.length() - 2)); target = getResizableTarget(); assert target != null : "resizable target widget must present to accept size changes"; String tWidth = target.getElement().getStyle().getWidth(); targetWidth = Double.parseDouble(tWidth.substring(0, tWidth.length() - 2)); String tHeight = target.getElement().getStyle().getHeight(); targetHeight = Double.parseDouble(tHeight.substring(0, tHeight.length() - 2)); mousePressed(); } }, MouseDownEvent.getType()); addDomHandler(new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { DOM.releaseCapture(getElement()); event.preventDefault(); event.stopPropagation(); mouseReleased(); } }, MouseUpEvent.getType()); addDomHandler(new MouseMoveHandler() { @Override public void onMouseMove(MouseMoveEvent event) { if (DOM.getCaptureElement() == getElement()) { int dx = event.getScreenX() - mouseScreenX; int dy = event.getScreenY() - mouseScreenY; event.preventDefault(); event.stopPropagation(); changeTarget(getMovableTarget(), getResizableTarget(), dx, dy, event); } } }, MouseMoveEvent.getType()); }
From source file:com.bearsoft.gwt.ui.containers.window.WindowPanel.java
@Override public final void setCaptionWidget(HasHTML aCaptionWidget) { if (captionWidget != aCaptionWidget) { if (captionWidget != null) { captionWidget.removeFromParent(); }//w ww . j a v a 2s . c o m if (mdHandler != null) { mdHandler.removeHandler(); } if (muHandler != null) { muHandler.removeHandler(); } if (mmHandler != null) { mmHandler.removeHandler(); } if (aCaptionWidget instanceof Widget) { captionWidget = (Widget) aCaptionWidget; } else { captionWidget = new Caption(aCaptionWidget.getHTML()); } if (captionWidget != null) { mdHandler = captionWidget.addDomHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { event.preventDefault(); event.stopPropagation(); focus(); if (movable && !maximized) { DOM.setCapture(captionWidget.getElement()); mouseScreenX = event.getScreenX(); mouseScreenY = event.getScreenY(); String tLeft = getMovableTarget().getElement().getStyle().getLeft(); targetScrollLeft = Integer.parseInt(tLeft.substring(0, tLeft.length() - 2)); String tTop = getMovableTarget().getElement().getStyle().getTop(); targetScrollTop = Integer.parseInt(tTop.substring(0, tTop.length() - 2)); beginMoving(); } } }, MouseDownEvent.getType()); muHandler = captionWidget.addDomHandler(new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { event.preventDefault(); event.stopPropagation(); if (movable && !maximized) { DOM.releaseCapture(captionWidget.getElement()); endMoving(); } } }, MouseUpEvent.getType()); mmHandler = captionWidget.addDomHandler(new MouseMoveHandler() { @Override public void onMouseMove(MouseMoveEvent event) { if (movable && !maximized) { if (DOM.getCaptureElement() == captionWidget.getElement()) { event.preventDefault(); event.stopPropagation(); int dx = event.getScreenX() - mouseScreenX; int dy = event.getScreenY() - mouseScreenY; setPosition(targetScrollLeft + dx >= 0 ? targetScrollLeft + dx : 0, targetScrollTop + dy >= 0 ? targetScrollTop + dy : 0); } } } }, MouseMoveEvent.getType()); verticalPanel.insert(captionWidget, 0); } } }
From source file:com.eas.window.DraggableDecoration.java
public DraggableDecoration(String... aClasses) { super();//from ww w. j a v a2 s.co m Element e = Document.get().createDivElement(); setElement(e); for (String className : aClasses) { e.addClassName(className); } addDomHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { DOM.setCapture(getElement()); event.preventDefault(); event.stopPropagation(); mouseScreenX = event.getScreenX(); mouseScreenY = event.getScreenY(); event.stopPropagation(); Widget target = getMovableTarget(); assert target != null : "movable target widget must present to accept position changes"; String tLeft = target.getElement().getStyle().getLeft(); targetScrollLeft = Double.parseDouble(tLeft.substring(0, tLeft.length() - 2)); String tTop = target.getElement().getStyle().getTop(); targetScrollTop = Double.parseDouble(tTop.substring(0, tTop.length() - 2)); target = getResizableTarget(); assert target != null : "resizable target widget must present to accept size changes"; String tWidth = target.getElement().getStyle().getWidth(); targetWidth = Double.parseDouble(tWidth.substring(0, tWidth.length() - 2)); String tHeight = target.getElement().getStyle().getHeight(); targetHeight = Double.parseDouble(tHeight.substring(0, tHeight.length() - 2)); mousePressed(); } }, MouseDownEvent.getType()); addDomHandler(new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { event.preventDefault(); event.stopPropagation(); if (DOM.getCaptureElement() == getElement()) { DOM.releaseCapture(getElement()); int dx = event.getScreenX() - mouseScreenX; int dy = event.getScreenY() - mouseScreenY; changeTarget(getMovableTarget(), getResizableTarget(), dx, dy, event); } mouseReleased(); } }, MouseUpEvent.getType()); addDomHandler(new MouseMoveHandler() { @Override public void onMouseMove(MouseMoveEvent event) { if (DOM.getCaptureElement() == getElement()) { int dx = event.getScreenX() - mouseScreenX; int dy = event.getScreenY() - mouseScreenY; event.preventDefault(); event.stopPropagation(); if (dx != 0 || dy != 0) { mouseDragged(); } changeTarget(getMovableTarget(), getResizableTarget(), dx, dy, event); } } }, MouseMoveEvent.getType()); }
From source file:com.eas.window.WindowPanel.java
@Override public final void setCaptionWidget(HasHTML aCaptionWidget) { if (captionWidget != aCaptionWidget) { if (captionWidget != null) { captionWidget.removeFromParent(); }// w w w . ja v a 2 s. c om if (mdHandler != null) { mdHandler.removeHandler(); } if (muHandler != null) { muHandler.removeHandler(); } if (mmHandler != null) { mmHandler.removeHandler(); } if (aCaptionWidget instanceof Widget) { captionWidget = (Widget) aCaptionWidget; } else { captionWidget = new Caption(aCaptionWidget.getHTML()); } if (captionWidget != null) { mdHandler = captionWidget.addDomHandler(new MouseDownHandler() { @Override public void onMouseDown(MouseDownEvent event) { event.preventDefault(); event.stopPropagation(); focus(); if (movable && !maximized) { DOM.setCapture(captionWidget.getElement()); mouseScreenX = event.getScreenX(); mouseScreenY = event.getScreenY(); String tLeft = getMovableTarget().getElement().getStyle().getLeft(); targetScrollLeft = Integer.parseInt(tLeft.substring(0, tLeft.length() - 2)); String tTop = getMovableTarget().getElement().getStyle().getTop(); targetScrollTop = Integer.parseInt(tTop.substring(0, tTop.length() - 2)); } } }, MouseDownEvent.getType()); muHandler = captionWidget.addDomHandler(new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { dragged = false; event.preventDefault(); event.stopPropagation(); if (movable && !maximized) { DOM.releaseCapture(captionWidget.getElement()); endMoving(); } } }, MouseUpEvent.getType()); mmHandler = captionWidget.addDomHandler(new MouseMoveHandler() { @Override public void onMouseMove(MouseMoveEvent event) { if (movable && !maximized) { if (DOM.getCaptureElement() == captionWidget.getElement()) { event.preventDefault(); event.stopPropagation(); int dx = event.getScreenX() - mouseScreenX; int dy = event.getScreenY() - mouseScreenY; if (!dragged && (dx != 0 || dy != 0)) { dragged = true; beginMoving(); } setPosition(targetScrollLeft + dx >= 0 ? targetScrollLeft + dx : 0, targetScrollTop + dy >= 0 ? targetScrollTop + dy : 0); } } } }, MouseMoveEvent.getType()); verticalPanel.insert(captionWidget, 0); } } }
From source file:com.google.appinventor.client.wizards.Wizard.java
License:Open Source License
@Override public boolean onEventPreview(Event event) { // Always allow event if capturing is enabled if (DOM.getCaptureElement() != null) { return true; }//from w w w. j a v a 2 s .co m // If this is a modal wizard then only allow it if the target element is a child of this wizard if (modal) { Element target = DOM.eventGetTarget(event); return (target != null && DOM.isOrHasChild(getElement(), target)); } else { return super.onEventPreview(event); } }
From source file:com.lorepo.icplayer.client.module.choice.MyPopupPanel.java
License:Apache License
/** * Preview the {@link NativePreviewEvent}. * * @param event the {@link NativePreviewEvent} *///www . j a v a 2 s. c o m private void previewNativeEvent(NativePreviewEvent event) { // If the event has been canceled or consumed, ignore it if (event.isCanceled() || (!previewAllNativeEvents && event.isConsumed())) { // We need to ensure that we cancel the event even if its been consumed so // that popups lower on the stack do not auto hide if (modal) { event.cancel(); } return; } // Fire the event hook and return if the event is canceled onPreviewNativeEvent(event); if (event.isCanceled()) { return; } // If the event targets the popup or the partner, consume it Event nativeEvent = Event.as(event.getNativeEvent()); boolean eventTargetsPopupOrPartner = eventTargetsPopup(nativeEvent) || eventTargetsPartner(nativeEvent); if (eventTargetsPopupOrPartner) { event.consume(); } // Cancel the event if it doesn't target the modal popup. Note that the // event can be both canceled and consumed. if (modal) { event.cancel(); } // Switch on the event type int type = nativeEvent.getTypeInt(); switch (type) { case Event.ONKEYDOWN: { if (!onKeyDownPreview((char) nativeEvent.getKeyCode(), KeyboardListenerCollection.getKeyboardModifiers(nativeEvent))) { event.cancel(); } return; } case Event.ONKEYUP: { if (!onKeyUpPreview((char) nativeEvent.getKeyCode(), KeyboardListenerCollection.getKeyboardModifiers(nativeEvent))) { event.cancel(); } return; } case Event.ONKEYPRESS: { if (!onKeyPressPreview((char) nativeEvent.getKeyCode(), KeyboardListenerCollection.getKeyboardModifiers(nativeEvent))) { event.cancel(); } return; } case Event.ONMOUSEDOWN: case Event.ONTOUCHSTART: // Don't eat events if event capture is enabled, as this can // interfere with dialog dragging, for example. if (DOM.getCaptureElement() != null) { event.consume(); return; } if (!eventTargetsPopupOrPartner && autoHide) { hide(true); return; } break; case Event.ONMOUSEUP: case Event.ONMOUSEMOVE: case Event.ONCLICK: case Event.ONDBLCLICK: { // Don't eat events if event capture is enabled, as this can // interfere with dialog dragging, for example. if (DOM.getCaptureElement() != null) { event.consume(); return; } break; } case Event.ONFOCUS: { Element target = nativeEvent.getTarget(); if (modal && !eventTargetsPopupOrPartner && (target != null)) { blur(target); event.cancel(); return; } break; } } }
From source file:com.ponysdk.core.terminal.ui.PTPopupPanel.java
License:Apache License
@Override public void onMouseDown(final MouseDownEvent event) { if (draggable && DOM.getCaptureElement() == null) { dragging = true;/*from w w w.java 2 s . co m*/ DOM.setCapture(uiObject.getElement()); dragStartX = event.getX(); dragStartY = event.getY(); } }
From source file:com.ponysdk.core.terminal.ui.PTScrollPanel.java
License:Apache License
@Override public void addHandler(final ReaderBuffer buffer, final HandlerModel handlerModel) { if (HandlerModel.HANDLER_SCROLL == handlerModel) { uiObject.addScrollHandler(event -> { if (!dragging) sendScrollPositionEvent(); });//from w ww.j ava2 s. c om uiObject.addDomHandler(event -> { if (DOM.getCaptureElement() == null) { dragging = true; DOM.setCapture(uiObject.getElement()); } }, MouseDownEvent.getType()); uiObject.addDomHandler(event -> { dragging = false; DOM.releaseCapture(uiObject.getElement()); sendScrollPositionEvent(); }, MouseUpEvent.getType()); } else { super.addHandler(buffer, handlerModel); } }