List of usage examples for com.google.gwt.dom.client Node is
public static boolean is(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.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; }