X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=rcp%2Forg.argeo.eclipse.ui.rcp%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fspecific%2FFileDropAdapter.java;fp=rcp%2Forg.argeo.eclipse.ui.rcp%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fspecific%2FFileDropAdapter.java;h=5b16d99be44803a70b28424fa3f3172b43e6e7ad;hb=1f6239ba1cd56d0acf846fb830462f2546f64baa;hp=0000000000000000000000000000000000000000;hpb=5e273aace32e9b891e05b6590cc6af2751f2c9fd;p=lgpl%2Fargeo-commons.git diff --git a/rcp/org.argeo.eclipse.ui.rcp/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java b/rcp/org.argeo.eclipse.ui.rcp/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java new file mode 100644 index 000000000..5b16d99be --- /dev/null +++ b/rcp/org.argeo.eclipse.ui.rcp/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java @@ -0,0 +1,47 @@ +package org.argeo.eclipse.ui.specific; + +import java.io.InputStream; +import java.util.Arrays; + +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.DropTarget; +import org.eclipse.swt.dnd.DropTargetAdapter; +import org.eclipse.swt.dnd.DropTargetEvent; +import org.eclipse.swt.dnd.FileTransfer; +import org.eclipse.swt.dnd.Transfer; +import org.eclipse.swt.widgets.Control; + +public class FileDropAdapter { + + public void prepareDropTarget(Control control, DropTarget dropTarget) { + dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() }); + dropTarget.addDropListener(new DropTargetAdapter() { + @Override + public void dropAccept(DropTargetEvent event) { + if (!FileTransfer.getInstance().isSupportedType(event.currentDataType)) { + event.detail = DND.DROP_NONE; + } + } + + @Override + public void drop(DropTargetEvent event) { + handleFileDrop(control, event); + } + }); + } + + public void handleFileDrop(Control control, DropTargetEvent event) { + String fileList[] = null; + FileTransfer ft = FileTransfer.getInstance(); + if (ft.isSupportedType(event.currentDataType)) { + fileList = (String[]) event.data; + } + System.out.println(Arrays.toString(fileList)); + } + + /** Executed in UI thread */ + protected void processUpload(InputStream in, String fileName, String contentType) { + + } + +}