void (DnDEvent event) { Point point = event.getPoint(); if (point == null) return; TreePath target = myTree.getClosestPathForLocation(point.x, point.y); if (target == null) return; Rectangle bounds = myTree.getPathBounds(target); if (bounds == null || bounds.y > point.y || point.y >= bounds.y + bounds.height) return; DropHandler handler = getDropHandler(event); if (handler == null) return; final Object attached = event.getAttachedObject(); TreePath[] sources = getSourcePaths(event.getAttachedObject()); if (sources == null) { if (FileCopyPasteUtil.isFileListFlavorAvailable(event)) { List<File> fileList = FileCopyPasteUtil.getFileListFromAttachedObject(attached); if (!fileList.isEmpty()) { handler.doDropFiles(fileList, target); } } } else { doValidDrop(sources, target, handler); } }