List of usage examples for com.google.gwt.dom.client Node as
public static Node as(JavascriptObjectEquivalent o)
From source file:cc.alcina.framework.gwt.client.gwittir.widget.RichTextArea.java
License:Apache License
@SuppressWarnings("unchecked") public RichTextArea(boolean withToolbar, String defaultFontSize) { this.defaultFontSize = defaultFontSize; old = base.getHTML();//from w w w. jav a2 s .com this.setComparator(SimpleComparator.INSTANCE); this.base.addBlurHandler(new BlurHandler() { public void onBlur(BlurEvent event) { EventTarget eventTarget = event.getNativeEvent().getEventTarget(); if (Node.is(eventTarget)) { Node elt = Node.as(eventTarget); if (DomUtils.isAncestorOf(toolbar.getElement(), elt)) { return; } } changes.firePropertyChange("value", old, getValue()); } }); this.base.addKeyUpHandler(new KeyUpHandler() { public void onKeyUp(KeyUpEvent event) { int keyCode = event.getNativeKeyCode(); if (keyCode == 'M' && event.isControlKeyDown()) { if (maximised) { RichTextArea.this.removeStyleName("max"); WidgetUtils.restoreFromMaximise(); } else { WidgetUtils.maximiseWidget(RichTextArea.this); RichTextArea.this.addStyleName("max"); } maximised = !maximised; } } }); this.base.addInitializeHandler(new InitializeHandler() { @Override public void onInitialize(InitializeEvent event) { styleBody(base.getElement(), "12px"); } }); FlowPanel fp = new FlowPanel(); if (withToolbar) { FlowPanel tbHolder = new FlowPanel(); tbHolder.setStyleName("alcina-richTextToolbarBkg"); tbHolder.add(toolbar); fp.add(tbHolder); } fp.add(base); super.initWidget(fp); }
From source file:client.net.sf.saxon.ce.Xslt20ProcessorImpl.java
License:Mozilla Public License
private void registerEventHandlers(Controller controller) throws XPathException { // add an event listener to capture registered event modes if (registeredEventModes != null) { return;//from www .j ava 2 s . c o m } Element docElement = (com.google.gwt.user.client.Element) (Object) Document.get(); registeredEventModes = controller.getRuleManager().getModesInNamespace(NamespaceConstant.IXSL); // Restriction: only one event listener per element if (registeredEventModes.size() > 0 && !registeredForEvents) { registeredForEvents = true; registerNonDOMevents(controller); if (DOM.getEventListener((com.google.gwt.user.client.Element) docElement) == null) { principleEventListener = true; DOM.setEventListener((com.google.gwt.user.client.Element) docElement, new EventListener() { public void onBrowserEvent(Event event) { EventTarget eTarget = event.getEventTarget(); Node eventNode; if (Node.is(eTarget)) { eventNode = Node.as(eTarget); } else { eventNode = Node.as(getCorrespondingSVGElement(eTarget)); if (eventNode == null) { return; } } bubbleApplyTemplates(eventNode, event); } }); } else { // can't register for event so register for relayEvent Controller.addEventProcessor(this); } } // Events for all processor instances may register 1 or more event types for (Mode eventMode : registeredEventModes) { String eventName = eventMode.getModeName().getLocalName(); if (!eventName.startsWith("on")) { logger.warning("Event name: '" + eventName + "' is invalid - names should begin with 'on'"); } else { eventName = eventName.substring(2); } int eventNo = Event.getTypeInt(eventName); DOM.sinkEvents((com.google.gwt.user.client.Element) docElement, eventNo | DOM.getEventsSunk((com.google.gwt.user.client.Element) docElement)); } }
From source file:com.google.gwt.sample.contacts.client.view.ContactsViewImpl.java
@UiHandler("contactsTable") void onTableClicked(ClickEvent event) { if (presenter != null) { EventTarget target = event.getNativeEvent().getEventTarget(); Node node = Node.as(target); TableCellElement cell = findNearestParentCell(node); if (cell == null) { return; }/*ww w . j a v a 2 s . co m*/ TableRowElement tr = TableRowElement.as(cell.getParentElement()); int row = tr.getSectionRowIndex(); if (cell != null) { if (shouldFireClickEvent(cell)) { presenter.onItemClicked(rowData.get(row)); } if (shouldFireSelectEvent(cell)) { presenter.onItemSelected(rowData.get(row)); } } } }
From source file:com.gwtm.ui.client.widgets.OverlayPanel.java
License:Apache License
@Override public void onBrowserEvent(Event e) { EventTarget target = e.getEventTarget(); Node node = Node.as(target); if (Element.is(node)) { Element ele = Element.as(target); // maek sure click is invoked from overlay not inner widget if (ele.getClassName().contains(ThemeManager.getTheme().overlaypanel())) { super.onBrowserEvent(e); return; }//from w w w .j a v a2 s.co m } }
From source file:com.gwtmobile.ui.client.event.DragController.java
License:Apache License
protected void fireDragEvent(DragEvent e) { if (_capturingDragEventsHandler != null) { e.dispatch(_capturingDragEventsHandler); return;//from w ww . j a va 2 s. com } EventTarget target = e.getNativeEvent().getEventTarget(); Node node = Node.as(target); if (!Element.is(node)) { node = node.getParentNode(); // Text node } if (Element.is(node)) { Element ele = Element.as(target); int count = 0; while (ele != null) { for (DragEventsHandler handler : _dragEventHandlers) { if (ele.equals(handler.getElement())) { e.dispatch(handler); count++; if (e.getStopPropagation() || count == _dragEventHandlers.size()) { return; } } } ele = ele.getParentElement(); } } }
From source file:com.gwtmobile.ui.client.event.DragController.java
License:Apache License
protected void fireSwipeEvent(SwipeEvent e) { if (_capturingSwipeEventsHandler != null) { e.dispatch(_capturingSwipeEventsHandler); return;/*w w w .ja va2 s . c o m*/ } if (_capturingDragEventsHandler != null) { return; } EventTarget target = e.getNativeEvent().getEventTarget(); Node node = Node.as(target); if (!Element.is(node)) { node = node.getParentNode(); //Text node } if (Element.is(node)) { Element ele = Element.as(target); int count = 0; while (ele != null) { for (SwipeEventsHandler handler : _swipeEventHandlers) { if (ele.equals(handler.getElement())) { e.dispatch(handler); count++; if (e.getStopPropagation() || count == _swipeEventHandlers.size()) { return; } } } ele = ele.getParentElement(); } } }
From source file:com.vaadin.client.ui.dd.DDEventHandleStrategy.java
License:Apache License
/** * Get target element for {@code event}. * /*from www . j a va 2s . c o m*/ * @param event * GWT event to find target * @param mediator * VDragAndDropManager data accessor * @return target element for {@code event} */ public Element getTargetElement(NativePreviewEvent event, DDManagerMediator mediator) { NativeEvent gwtEvent = event.getNativeEvent(); Element targetElement; if (WidgetUtil.isTouchEvent(gwtEvent) || mediator.getManager().getDragElement() != null) { int x = WidgetUtil.getTouchOrMouseClientX(gwtEvent); int y = WidgetUtil.getTouchOrMouseClientY(gwtEvent); // Util.browserDebugger(); targetElement = WidgetUtil.getElementFromPoint(x, y); } else { Node targetNode = Node.as(gwtEvent.getEventTarget()); if (Element.is(targetNode)) { targetElement = Element.as(targetNode); } else { targetElement = targetNode.getParentElement(); } } return targetElement; }
From source file:com.vaadin.client.ui.dd.VaaclipseDragAndDropManager.java
License:Apache License
/** * This method is used to start Vaadin client side drag and drop operation. * Operation may be started by virtually any Widget. * <p>/*from w ww. j a va2 s . c o m*/ * Cancels possible existing drag. TODO figure out if this is always a bug * if one is active. Maybe a good and cheap lifesaver thought. * <p> * If possible, method automatically detects current {@link VDropHandler} * and fires {@link VDropHandler#dragEnter(VDragEvent)} event on it. * <p> * May also be used to control the drag and drop operation. If this option * is used, {@link VDropHandler} is searched on mouse events and appropriate * methods on it called automatically. * * @param transferable * @param nativeEvent * @param handleDragEvents * if true, {@link VaaclipseDragAndDropManager} handles the drag and drop * operation GWT event preview. * @return */ public VDragEvent startDrag(VTransferable transferable, final NativeEvent startEvent, final boolean handleDragEvents) { VConsole.log("!!! start !!!"); interruptDrag(); isStarted = false; currentDrag = new VDragEvent(transferable, startEvent); currentDrag.setCurrentGwtEvent(startEvent); final Command startDrag = new Command() { @Override public void execute() { isStarted = true; addActiveDragSourceStyleName(); VDropHandler dh = null; if (startEvent != null) { dh = findDragTarget(Element.as(currentDrag.getCurrentGwtEvent().getEventTarget())); } if (dh != null) { // drag has started on a DropHandler, kind of drag over // happens currentDropHandler = dh; dh.dragEnter(currentDrag); } if (handleDragEvents) { handlerRegistration = Event.addNativePreviewHandler(defaultDragAndDropEventHandler); if (dragElement != null && dragElement.getParentElement() == null) { // deferred attaching drag image is on going, we can // hurry with it now lazyAttachDragElement.cancel(); lazyAttachDragElement.run(); } } // just capture something to prevent text selection in IE Event.setCapture(RootPanel.getBodyElement()); } private void addActiveDragSourceStyleName() { ComponentConnector dragSource = currentDrag.getTransferable().getDragSource(); dragSource.getWidget().addStyleName(ACTIVE_DRAG_SOURCE_STYLENAME); } }; final int eventType = Event.as(startEvent).getTypeInt(); if (handleDragEvents && (eventType == Event.ONMOUSEDOWN || eventType == Event.ONTOUCHSTART)) { // only really start drag event on mousemove deferredStartRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { int typeInt = event.getTypeInt(); switch (typeInt) { case Event.ONMOUSEOVER: if (dragElement == null) { break; } EventTarget currentEventTarget = event.getNativeEvent().getCurrentEventTarget(); if (Node.is(currentEventTarget) && !dragElement.isOrHasChild(Node.as(currentEventTarget))) { // drag image appeared below, ignore break; } case Event.ONKEYDOWN: case Event.ONKEYPRESS: case Event.ONKEYUP: case Event.ONBLUR: case Event.ONFOCUS: // don't cancel possible drag start break; case Event.ONMOUSEOUT: if (dragElement == null) { break; } EventTarget relatedEventTarget = event.getNativeEvent().getRelatedEventTarget(); if (Node.is(relatedEventTarget) && !dragElement.isOrHasChild(Node.as(relatedEventTarget))) { // drag image appeared below, ignore break; } case Event.ONMOUSEMOVE: case Event.ONTOUCHMOVE: if (deferredStartRegistration != null) { deferredStartRegistration.removeHandler(); deferredStartRegistration = null; } currentDrag.setCurrentGwtEvent(event.getNativeEvent()); startDrag.execute(); break; default: // on any other events, clean up the // deferred drag start if (deferredStartRegistration != null) { deferredStartRegistration.removeHandler(); deferredStartRegistration = null; } currentDrag = null; clearDragElement(); break; } } }); } else { startDrag.execute(); } return currentDrag; }
From source file:com.vaadin.client.ui.dd.VDragAndDropManager.java
License:Apache License
/** * This method is used to start Vaadin client side drag and drop operation. * Operation may be started by virtually any Widget. * <p>//from ww w .j a va2 s.c o m * Cancels possible existing drag. TODO figure out if this is always a bug * if one is active. Maybe a good and cheap lifesaver thought. * <p> * If possible, method automatically detects current {@link VDropHandler} * and fires {@link VDropHandler#dragEnter(VDragEvent)} event on it. * <p> * May also be used to control the drag and drop operation. If this option * is used, {@link VDropHandler} is searched on mouse events and appropriate * methods on it called automatically. * * @param transferable * @param nativeEvent * @param handleDragEvents * if true, {@link VDragAndDropManager} handles the drag and drop * operation GWT event preview. * @return */ public VDragEvent startDrag(VTransferable transferable, final NativeEvent startEvent, final boolean handleDragEvents) { interruptDrag(); isStarted = false; currentDrag = new VDragEvent(transferable, startEvent); currentDrag.setCurrentGwtEvent(startEvent); final Command startDrag = new Command() { @Override public void execute() { isStarted = true; addActiveDragSourceStyleName(); VDropHandler dh = null; if (startEvent != null) { dh = findDragTarget(Element.as(currentDrag.getCurrentGwtEvent().getEventTarget())); } if (dh != null) { // drag has started on a DropHandler, kind of drag over // happens currentDropHandler = dh; dh.dragEnter(currentDrag); } if (handleDragEvents) { handlerRegistration = Event.addNativePreviewHandler(defaultDragAndDropEventHandler); if (dragElement != null && dragElement.getParentElement() == null) { attachDragElement(); } } // just capture something to prevent text selection in IE Event.setCapture(RootPanel.getBodyElement()); } private void addActiveDragSourceStyleName() { ComponentConnector dragSource = currentDrag.getTransferable().getDragSource(); dragSource.getWidget().addStyleName(ACTIVE_DRAG_SOURCE_STYLENAME); } }; final int eventType = Event.as(startEvent).getTypeInt(); if (handleDragEvents && (eventType == Event.ONMOUSEDOWN || eventType == Event.ONTOUCHSTART)) { // only really start drag event on mousemove deferredStartRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() { private int startX = WidgetUtil.getTouchOrMouseClientX(currentDrag.getCurrentGwtEvent()); private int startY = WidgetUtil.getTouchOrMouseClientY(currentDrag.getCurrentGwtEvent()); @Override public void onPreviewNativeEvent(NativePreviewEvent event) { int typeInt = event.getTypeInt(); if (typeInt == -1 && event.getNativeEvent().getType().toLowerCase().contains("pointer")) { /* * Ignore PointerEvents since IE10 and IE11 send * also MouseEvents for backwards compatibility. */ return; } switch (typeInt) { case Event.ONMOUSEOVER: if (dragElement == null) { break; } EventTarget currentEventTarget = event.getNativeEvent().getCurrentEventTarget(); if (Node.is(currentEventTarget) && !dragElement.isOrHasChild(Node.as(currentEventTarget))) { // drag image appeared below, ignore break; } case Event.ONKEYDOWN: case Event.ONKEYPRESS: case Event.ONKEYUP: case Event.ONBLUR: case Event.ONFOCUS: // don't cancel possible drag start break; case Event.ONMOUSEOUT: if (dragElement == null) { break; } EventTarget relatedEventTarget = event.getNativeEvent().getRelatedEventTarget(); if (Node.is(relatedEventTarget) && !dragElement.isOrHasChild(Node.as(relatedEventTarget))) { // drag image appeared below, ignore break; } case Event.ONMOUSEMOVE: case Event.ONTOUCHMOVE: int currentX = WidgetUtil.getTouchOrMouseClientX(event.getNativeEvent()); int currentY = WidgetUtil.getTouchOrMouseClientY(event.getNativeEvent()); if (Math.abs(startX - currentX) > MINIMUM_DISTANCE_TO_START_DRAG || Math.abs(startY - currentY) > MINIMUM_DISTANCE_TO_START_DRAG) { ensureDeferredRegistrationCleanup(); currentDrag.setCurrentGwtEvent(event.getNativeEvent()); startDrag.execute(); } break; default: ensureDeferredRegistrationCleanup(); currentDrag = null; clearDragElement(); break; } } }); } else { startDrag.execute(); } return currentDrag; }
From source file:com.vaadin.terminal.gwt.client.ui.dd.VDragAndDropManager.java
License:Open Source License
/** * This method is used to start Vaadin client side drag and drop operation. * Operation may be started by virtually any Widget. * <p>/*from www. j a va 2 s . c om*/ * Cancels possible existing drag. TODO figure out if this is always a bug * if one is active. Maybe a good and cheap lifesaver thought. * <p> * If possible, method automatically detects current {@link VDropHandler} * and fires {@link VDropHandler#dragEnter(VDragEvent)} event on it. * <p> * May also be used to control the drag and drop operation. If this option * is used, {@link VDropHandler} is searched on mouse events and appropriate * methods on it called automatically. * * @param transferable * @param nativeEvent * @param handleDragEvents * if true, {@link VDragAndDropManager} handles the drag and drop * operation GWT event preview. * @return */ public VDragEvent startDrag(VTransferable transferable, final NativeEvent startEvent, final boolean handleDragEvents) { interruptDrag(); isStarted = false; currentDrag = new VDragEvent(transferable, startEvent); currentDrag.setCurrentGwtEvent(startEvent); final Command startDrag = new Command() { public void execute() { isStarted = true; addActiveDragSourceStyleName(); VDropHandler dh = null; if (startEvent != null) { dh = findDragTarget(Element.as(currentDrag.getCurrentGwtEvent().getEventTarget())); } if (dh != null) { // drag has started on a DropHandler, kind of drag over // happens currentDropHandler = dh; dh.dragEnter(currentDrag); } if (handleDragEvents) { handlerRegistration = Event.addNativePreviewHandler(defaultDragAndDropEventHandler); if (dragElement != null && dragElement.getParentElement() == null) { // deferred attaching drag image is on going, we can // hurry with it now lazyAttachDragElement.cancel(); lazyAttachDragElement.run(); } } // just capture something to prevent text selection in IE Event.setCapture(RootPanel.getBodyElement()); } private void addActiveDragSourceStyleName() { Paintable dragSource = currentDrag.getTransferable().getDragSource(); ((Widget) dragSource).addStyleName(ACTIVE_DRAG_SOURCE_STYLENAME); } }; final int eventType = Event.as(startEvent).getTypeInt(); if (handleDragEvents && (eventType == Event.ONMOUSEDOWN || eventType == Event.ONTOUCHSTART)) { // only really start drag event on mousemove deferredStartRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() { public void onPreviewNativeEvent(NativePreviewEvent event) { int typeInt = event.getTypeInt(); switch (typeInt) { case Event.ONMOUSEOVER: if (dragElement == null) { break; } EventTarget currentEventTarget = event.getNativeEvent().getCurrentEventTarget(); if (Node.is(currentEventTarget) && !dragElement.isOrHasChild(Node.as(currentEventTarget))) { // drag image appeared below, ignore break; } case Event.ONKEYDOWN: case Event.ONKEYPRESS: case Event.ONKEYUP: case Event.ONBLUR: case Event.ONFOCUS: // don't cancel possible drag start break; case Event.ONMOUSEOUT: if (dragElement == null) { break; } EventTarget relatedEventTarget = event.getNativeEvent().getRelatedEventTarget(); if (Node.is(relatedEventTarget) && !dragElement.isOrHasChild(Node.as(relatedEventTarget))) { // drag image appeared below, ignore break; } case Event.ONMOUSEMOVE: case Event.ONTOUCHMOVE: if (deferredStartRegistration != null) { deferredStartRegistration.removeHandler(); deferredStartRegistration = null; } currentDrag.setCurrentGwtEvent(event.getNativeEvent()); startDrag.execute(); break; default: // on any other events, clean up the // deferred drag start if (deferredStartRegistration != null) { deferredStartRegistration.removeHandler(); deferredStartRegistration = null; } currentDrag = null; clearDragElement(); break; } } }); } else { startDrag.execute(); } return currentDrag; }