Example usage for com.google.gwt.dom.client Node is

List of usage examples for com.google.gwt.dom.client Node is

Introduction

In this page you can find the example usage for com.google.gwt.dom.client Node is.

Prototype

public static boolean is(JavascriptObjectEquivalent o) 

Source Link

Usage

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.j  a  v  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

public Node renderXML(JavaScriptObject inSourceDoc, DocumentInfo styleDoc,
        com.google.gwt.dom.client.Node target) {
    try {//from  w w  w. j a v  a2  s  .  co  m
        if (styleDoc == null) {
            throw new Exception("Stylesheet for transform is null");
        }
        docFetchRequired = inSourceDoc != null;
        CompilerInfo info = config.getDefaultXsltCompilerInfo();
        info.setErrorListener(new StandardErrorListener());

        String asyncSourceURI = null;

        // for now - don't use aync when using the JavaScript API calls that return a result
        if (docFetchRequired
                && (localController.getApiCommand() == APIcommand.UPDATE_HTML || (successCallback != null))) {
            asyncSourceURI = SaxonceApi.getAsyncUri(inSourceDoc);
            if (asyncSourceURI != null && asyncSourceURI.toLowerCase().startsWith("file:")) {
                asyncSourceURI = null; // force synchronous fetch if using file-system protocol
            }
        }

        // ----------- Start async code -------------
        fetchedSourceDoc = null;
        transformInvoked = false;

        if (asyncSourceURI != null) {
            final String URI = asyncSourceURI;
            final Node transformTarget = target;

            logger.log(Level.FINE, "Aynchronous GET for: " + asyncSourceURI);
            final HTTPHandler hr = new HTTPHandler();

            hr.doGet(asyncSourceURI, new RequestCallback() {

                public void onError(Request request, Throwable exception) {
                    //hr.setErrorMessage(exception.getMessage());
                    String msg = "HTTP Error " + exception.getMessage() + " for URI " + URI;
                    handleException(new RuntimeException(msg), "onError");
                }

                public void onResponseReceived(Request request, Response response) {
                    int statusCode = response.getStatusCode();
                    if (statusCode == 200) {
                        Logger.getLogger("ResponseReceived").fine("GET Ok for: " + URI);
                        Node responseNode;
                        try {
                            responseNode = (Node) XMLDOM.parseXML(response.getText());
                        } catch (Exception e) {
                            handleException(new RuntimeException(e.getMessage()), "onResponseReceived");
                            return;
                        }
                        DocumentInfo responseDoc = config.wrapXMLDocument(responseNode, URI);
                        // now document is here, we can transform it
                        Node result = invokeTransform(responseDoc, transformTarget);
                        hr.setResultNode(result); // TODO: This isn't used yet
                        // handle OK response from the server 
                    } else if (statusCode < 400) {
                        // transient
                    } else {
                        String msg = "HTTP Error " + statusCode + " " + response.getStatusText() + " for URI "
                                + URI;
                        handleException(new RuntimeException(msg), "onResponseReceived");
                        //hr.setErrorMessage(statusCode + " " + response.getStatusText());
                    }
                } // ends inner method
            }// ends inner class
            ); // ends doGet method call
        }
        // -------------- End async code

        /// we can compile - even while sourcedoc is being fetched asynchronously

        if (stylesheet == null) {
            if (LogConfiguration.loggingIsEnabled()) {
                LogController.InitializeTraceListener();
            }
            logger.log(Level.FINE, "Compiling Stylesheet...");
            PreparedStylesheet sheet = new PreparedStylesheet(config, info);
            sheet.prepare(styleDoc);
            stylesheet = sheet;
            logger.log(Level.FINE, "Stylesheet compiled OK");
        }

        // for async operation - this is called within the callback - so don't call here            
        if (asyncSourceURI == null && inSourceDoc != null) {
            int nodeType = (Node.is(inSourceDoc)) ? ((Node) inSourceDoc).getNodeType() : 0;

            if (nodeType > 0 && nodeType != Node.DOCUMENT_NODE) {
                // add a document node wrapper
                Node sourceNode = (Node) inSourceDoc;
                Document sourceDoc = sourceNode.getOwnerDocument();
                HTMLDocumentWrapper htmlDoc = new HTMLDocumentWrapper(sourceDoc, sourceDoc.getURL(), config,
                        DocType.UNKNOWN);
                fetchedSourceDoc = htmlDoc.wrap(sourceNode);
            } else {
                fetchedSourceDoc = SaxonceApi.getDocSynchronously(inSourceDoc, config);
            }
        }
        // this method only runs if transformInvoked == false - need to get sourceDoc reference if not invoked

        return invokeTransform(fetchedSourceDoc, target);

        //method ends - allowing onResponceReceived handler to call invokeTransform for async operation
    } catch (Exception e) {
        handleException(e, "renderXML");
        return null;
    }
}

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;/*  w  w  w .j av  a2 s  . co  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.lorepo.icplayer.client.module.choice.MyPopupPanel.java

License:Apache License

/**
 * Does the event target this popup?/*  ww  w . j a  v a  2 s.  c  om*/
 *
 * @param event the native event
 * @return true if the event targets the popup
 */
private boolean eventTargetsPopup(NativeEvent event) {
    EventTarget target = event.getEventTarget();
    if (Node.is(target)) {
        return getElement().isOrHasChild(Element.as(target));
    }
    return false;
}

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  w w  .  j a  v a  2s.  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 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   w  w  w  .  j  av a  2 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>//w w  w. java 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;
}