X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.eclipse.ui.rap%2Fsrc%2Forg%2Fargeo%2Feclipse%2Fui%2Fspecific%2FFileDropAdapter.java;h=f9ca816829f191cc00571a21955b499280a57473;hb=b837ab75edc9c3ce9bf0ce63ea44b0f41d6e1049;hp=87d0e00c9036e9cddbdd4c4a8c1e6940e42d20db;hpb=08c2efb392a969f02008073f55d310c95bddade9;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java b/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java index 87d0e00c9..f9ca81682 100644 --- a/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java +++ b/org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java @@ -17,6 +17,7 @@ import org.eclipse.swt.dnd.DropTargetEvent; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.widgets.Control; +/** Configures a {@link Control} to receive files drop from the client OS. */ public class FileDropAdapter { public void prepareDropTarget(Control control, DropTarget dropTarget) { @@ -46,8 +47,13 @@ public class FileDropAdapter { @Override public void receive(InputStream stream, FileDetails details) throws IOException { - control.getDisplay() - .syncExec(() -> processUpload(stream, details.getFileName(), details.getContentType())); + control.getDisplay().syncExec(() -> { + try { + processUpload(stream, details.getFileName(), details.getContentType()); + } catch (IOException e) { + throw new IllegalStateException("Cannot process upload of " + details.getFileName(), e); + } + }); } }; FileUploadHandler handler = new FileUploadHandler(receiver); @@ -60,7 +66,7 @@ public class FileDropAdapter { } /** Executed in UI thread */ - protected void processUpload(InputStream in, String fileName, String contentType) { + protected void processUpload(InputStream in, String fileName, String contentType) throws IOException { }