]> git.argeo.org Git - lgpl/argeo-commons.git/blob - rcp/org.argeo.swt.specific.rcp/src/org/argeo/eclipse/ui/specific/FileDropAdapter.java
Asynchronous UUID factory.
[lgpl/argeo-commons.git] / rcp / org.argeo.swt.specific.rcp / src / org / argeo / eclipse / ui / specific / FileDropAdapter.java
1 package org.argeo.eclipse.ui.specific;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.Arrays;
6
7 import org.eclipse.swt.dnd.DND;
8 import org.eclipse.swt.dnd.DropTarget;
9 import org.eclipse.swt.dnd.DropTargetAdapter;
10 import org.eclipse.swt.dnd.DropTargetEvent;
11 import org.eclipse.swt.dnd.FileTransfer;
12 import org.eclipse.swt.dnd.Transfer;
13 import org.eclipse.swt.widgets.Control;
14
15 public class FileDropAdapter {
16
17 public void prepareDropTarget(Control control, DropTarget dropTarget) {
18 dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });
19 dropTarget.addDropListener(new DropTargetAdapter() {
20 @Override
21 public void dropAccept(DropTargetEvent event) {
22 if (!FileTransfer.getInstance().isSupportedType(event.currentDataType)) {
23 event.detail = DND.DROP_NONE;
24 }
25 }
26
27 @Override
28 public void drop(DropTargetEvent event) {
29 handleFileDrop(control, event);
30 }
31 });
32 }
33
34 public void handleFileDrop(Control control, DropTargetEvent event) {
35 String fileList[] = null;
36 FileTransfer ft = FileTransfer.getInstance();
37 if (ft.isSupportedType(event.currentDataType)) {
38 fileList = (String[]) event.data;
39 }
40 System.out.println(Arrays.toString(fileList));
41 }
42
43 /** Executed in UI thread */
44 protected void processUpload(InputStream in, String fileName, String contentType) throws IOException {
45
46 }
47
48 }