View Javadoc
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  }