@SuppressWarnings("unchecked")
	public void drop(DropTargetDropEvent e) {
		try {
			DropTargetContext context = e.getDropTargetContext();
			e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
			Transferable t = e.getTransferable();
			Object data = null;

			if (t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
				data = t.getTransferData(DataFlavor.javaFileListFlavor);

				if (data instanceof java.util.List) {
					java.util.List<Object> list = (java.util.List<Object>) data;
					for (int i = 0; i < list.size(); i++) {
						Object dataLine = list.get(i);
						if (dataLine instanceof File) {
							fFileDropAcceptor.accept((File) dataLine);
							break;
						}
					}
				}
				
			} else {
				data = t.getTransferData(DataFlavor.stringFlavor);
				if (data instanceof String) {
					fFileDropAcceptor.accept(
						new File(new URI(new URL((String) data).toString())));
				}
			}

			context.dropComplete(true);
		} catch (Exception ex) {
			new UncaughtExceptionHandler().handle(ex);
		}
	}