X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.cms.jcr.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Ffs%2FFileDrop.java;fp=org.argeo.cms.jcr.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Ffs%2FFileDrop.java;h=e875b5a3d1e23b1b9ee4b9de552bbcc5760257fc;hb=bce03099b0d2f1758e7a3d74fba339d0200924d5;hp=0000000000000000000000000000000000000000;hpb=0ea2992e5f3803cd98b5981f27274faa922bc199;p=gpl%2Fargeo-jcr.git diff --git a/org.argeo.cms.jcr.ui/src/org/argeo/cms/ui/fs/FileDrop.java b/org.argeo.cms.jcr.ui/src/org/argeo/cms/ui/fs/FileDrop.java new file mode 100644 index 0000000..e875b5a --- /dev/null +++ b/org.argeo.cms.jcr.ui/src/org/argeo/cms/ui/fs/FileDrop.java @@ -0,0 +1,37 @@ +package org.argeo.cms.ui.fs; + +import java.io.IOException; +import java.io.InputStream; + +import org.argeo.api.cms.CmsLog; +import org.argeo.eclipse.ui.specific.FileDropAdapter; +import org.eclipse.swt.dnd.DND; +import org.eclipse.swt.dnd.DropTarget; +import org.eclipse.swt.dnd.DropTargetEvent; +import org.eclipse.swt.widgets.Control; + +/** Allows a control to receive file drops. */ +public class FileDrop { + private final static CmsLog log = CmsLog.getLog(FileDrop.class); + + public void createDropTarget(Control control) { + FileDropAdapter fileDropAdapter = new FileDropAdapter() { + @Override + protected void processUpload(InputStream in, String fileName, String contentType) throws IOException { + if (log.isDebugEnabled()) + log.debug("Process upload of " + fileName + " (" + contentType + ")"); + processFileUpload(in, fileName, contentType); + } + }; + DropTarget dropTarget = new DropTarget(control, DND.DROP_MOVE | DND.DROP_COPY); + fileDropAdapter.prepareDropTarget(control, dropTarget); + } + + public void handleFileDrop(Control control, DropTargetEvent event) { + } + + /** Executed in UI thread */ + protected void processFileUpload(InputStream in, String fileName, String contentType) throws IOException { + + } +}