boolean (DnDEvent event) { event.setDropPossible(false, ""); Point point = event.getPoint(); if (point == null) return false; TreePath target = myTree.getClosestPathForLocation(point.x, point.y); if (target == null) return false; Rectangle bounds = myTree.getPathBounds(target); if (bounds == null || bounds.y > point.y || point.y >= bounds.y + bounds.height) return false; DropHandler handler = getDropHandler(event); if (handler == null) return false; TreePath[] sources = getSourcePaths(event.getAttachedObject()); if (sources != null) { if (ArrayUtilRt.find(sources, target) != -1) return false;//TODO???? nodes } else if (!FileCopyPasteUtil.isFileListFlavorAvailable(event)) { return false; } event.setHighlighting(new RelativeRectangle(myTree, bounds), DnDEvent.DropTargetHighlightingType.RECTANGLE); event.setDropPossible(true); return false; }