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