Example usage for com.google.gwt.dom.client NativeEvent getDataTransfer

List of usage examples for com.google.gwt.dom.client NativeEvent getDataTransfer

Introduction

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

Prototype

public final native DataTransfer getDataTransfer() ;

Source Link

Document

Get the DataTransfer associated with the current drag event.

Usage

From source file:com.vaadin.client.extensions.DragSourceExtensionConnector.java

License:Apache License

/**
 * Event handler for the {@code dragstart} event. Called when {@code
 * dragstart} event occurs.// w ww . j  a v  a 2s.  c  om
 *
 * @param event
 *         browser event to be handled
 */
protected void onDragStart(Event event) {
    // Convert elemental event to have access to dataTransfer
    NativeEvent nativeEvent = (NativeEvent) event;

    // Set effectAllowed parameter
    if (getState().effectAllowed != null) {
        setEffectAllowed(nativeEvent.getDataTransfer(), getState().effectAllowed.getValue());
    }

    // Set data parameter
    List<String> types = getState().types;
    Map<String, String> data = getState().data;
    for (String format : types) {
        nativeEvent.getDataTransfer().setData(format, data.get(format));
    }

    // Store the extension's connector ID in DataTransfer.data
    nativeEvent.getDataTransfer().setData(DATA_TYPE_DRAG_SOURCE_ID, getConnectorId());

    // Initiate firing server side dragstart event when there is a
    // DragStartListener attached on the server side
    if (hasEventListener(DragSourceState.EVENT_DRAGSTART)) {
        getRpcProxy(DragSourceRpc.class).dragStart();
    }
}

From source file:com.vaadin.client.extensions.DropTargetExtensionConnector.java

License:Apache License

/**
 * Event handler for the {@code dragover} event.
 *
 * @param event/*from w ww. j  a  va 2s.  com*/
 *         browser event to be handled
 */
protected void onDragOver(Event event) {
    NativeEvent nativeEvent = (NativeEvent) event;
    if (isDragOverAllowed(nativeEvent)) {
        // Set dropEffect parameter
        if (getState().dropEffect != null) {
            nativeEvent.getDataTransfer()
                    .setDropEffect(DataTransfer.DropEffect.valueOf(getState().dropEffect.name()));
        }

        // Prevent default to allow drop
        nativeEvent.preventDefault();
        nativeEvent.stopPropagation();
    } else {
        // Remove drop effect
        nativeEvent.getDataTransfer().setDropEffect(DataTransfer.DropEffect.NONE);

        // Remove drop target indicator
        removeTargetIndicator(getDropTargetElement());
    }
}

From source file:com.vaadin.client.extensions.DropTargetExtensionConnector.java

License:Apache License

/**
 * Event handler for the {@code drop} event.
 *
 * @param event//from ww w  .ja  v  a2s.  c  o m
 *         browser event to be handled
 */
protected void onDrop(Event event) {
    NativeEvent nativeEvent = (NativeEvent) event;
    if (dropAllowed(nativeEvent)) {
        nativeEvent.preventDefault();
        nativeEvent.stopPropagation();

        // Initiate firing server side drop event
        JsArrayString typesJsArray = getTypes(nativeEvent.getDataTransfer());
        List<String> types = new ArrayList<>();
        Map<String, String> data = new HashMap<>();
        for (int i = 0; i < typesJsArray.length(); i++) {
            types.add(typesJsArray.get(i));
            data.put(typesJsArray.get(i), nativeEvent.getDataTransfer().getData(typesJsArray.get(i)));
        }

        getRpcProxy(DropTargetRpc.class).drop(types, data, getState().dropEffect,
                data.get(DragSourceExtensionConnector.DATA_TYPE_DRAG_SOURCE_ID));
    }

    removeTargetIndicator(getDropTargetElement());
}