protected TreeDragState checkDragAcceptability(DropTargetDragEvent event) {
		mAlternateDragDestination = null;
		try {
			if (event.isDataFlavorSupported(TreeColumn.DATA_FLAVOR)) {
				TreeColumn column = (TreeColumn) event.getTransferable().getTransferData(TreeColumn.DATA_FLAVOR);
				if (column != null && isColumnDragAcceptable(event, column)) {
					return new TreeColumnDragState(this, column);
				}
			}
			if (event.isDataFlavorSupported(TreeRowSelection.DATA_FLAVOR)) {
				TreeRowSelection rowSelection = (TreeRowSelection) event.getTransferable().getTransferData(TreeRowSelection.DATA_FLAVOR);
				if (rowSelection != null) {
					ArrayList<TreeRow> rows = rowSelection.getRows();
					if (rows.size() != 0 && isRowDragAcceptable(event, rows)) {
						return new TreeRowDragState(this, rowSelection);
					}
				}
			}
			if (event.isDataFlavorSupported(DockableTransferable.DATA_FLAVOR)) {
				mAlternateDragDestination = UIUtilities.getAncestorOfType(this, Dock.class);
			}
		} catch (Exception exception) {
			Log.error(exception);
		}
		return null;
	}