@Override public void onDragOver(DragOverEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent) && vaadinDragEvent != null) { nativeEvent.preventDefault(); nativeEvent.stopPropagation(); // event stopped, just notify global handler // Haulmont API if (globalDragOverHandler != null) { globalDragOverHandler.onDragOver(event); } vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); dropHandler.dragOver(vaadinDragEvent); } }
@Override public void onDragOver(DragOverEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent) && vaadinDragEvent != null) { nativeEvent.preventDefault(); nativeEvent.stopPropagation(); // event stopped, just notify global handler // Haulmont API if (globalDragOverHandler != null) { globalDragOverHandler.onDragOver(event); } vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); dropHandler.dragOver(vaadinDragEvent); } }
@Override public void onDragEnter(DragEnterEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent)) { VTransferable transferable = new VTransferable(); transferable.setDragSource(connector); vaadinDragEvent = VDragAndDropManager.get() .startDrag(transferable, event.getNativeEvent(), false); vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); dropHandler.dragEnter(vaadinDragEvent); nativeEvent.preventDefault(); nativeEvent.stopPropagation(); } else if (vaadinDragEvent != null && Element.is(nativeEvent.getEventTarget())) { vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(null); VDragAndDropManager.get().interruptDrag(); vaadinDragEvent = null; nativeEvent.preventDefault(); nativeEvent.stopPropagation(); } if (globalDragEnterHandler != null) { globalDragEnterHandler.onDragEnter(event); } }
@Override public void onDragEnter(DragEnterEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent)) { VTransferable transferable = new VTransferable(); transferable.setDragSource(connector); vaadinDragEvent = VDragAndDropManager.get() .startDrag(transferable, event.getNativeEvent(), false); vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); dropHandler.dragEnter(vaadinDragEvent); nativeEvent.preventDefault(); nativeEvent.stopPropagation(); } else if (vaadinDragEvent != null && Element.is(nativeEvent.getEventTarget())) { vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(null); VDragAndDropManager.get().interruptDrag(); vaadinDragEvent = null; nativeEvent.preventDefault(); nativeEvent.stopPropagation(); } if (globalDragEnterHandler != null) { globalDragEnterHandler.onDragEnter(event); } }
@Override public void onDrop(DropEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent) && vaadinDragEvent != null) { nativeEvent.preventDefault(); nativeEvent.stopPropagation(); // event stopped, just notify global handler // Haulmont API if (globalDropHandler != null) { globalDropHandler.onDrop(event); } vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); // FIXME only text currently supported String data; if (BrowserInfo.get().isIE()) { // IE does not support MIME types // http://www.developerfusion.com/article/144828/the-html5-drag-and-drop-api/ data = event.getData("text"); } else { data = event.getData("text/plain"); } vaadinDragEvent.getTransferable().setData("html5Data", data); VDragAndDropManager.get().endDrag(); vaadinDragEvent = null; } }
@Override public void onDrop(DropEvent event) { NativeEvent nativeEvent = event.getNativeEvent(); if (validate(nativeEvent) && vaadinDragEvent != null) { nativeEvent.preventDefault(); nativeEvent.stopPropagation(); // event stopped, just notify global handler // Haulmont API if (globalDropHandler != null) { globalDropHandler.onDrop(event); } vaadinDragEvent.setCurrentGwtEvent(nativeEvent); VDragAndDropManager.get().setCurrentDropHandler(dropHandler); // FIXME only text currently supported String data; if (BrowserInfo.get().isIE()) { // IE does not support MIME types // http://www.developerfusion.com/article/144828/the-html5-drag-and-drop-api/ data = event.getData("text"); } else { data = event.getData("text/plain"); } vaadinDragEvent.getTransferable().setData("html5Data", data); VDragAndDropManager.get().endDrag(); vaadinDragEvent = null; } }