void (@NotNull Collection<?> changes) { HashSet<Object> changesSet = new HashSet<>(changes); final List<TreePath> treeSelection = new ArrayList<>(changes.size()); TreeUtil.treeNodeTraverser(getRoot()).forEach(node -> { DefaultMutableTreeNode mutableNode = (DefaultMutableTreeNode)node; if (changesSet.contains(mutableNode.getUserObject())) { treeSelection.add(new TreePath(mutableNode.getPath())); } }); setSelectionPaths(toTreePathArray(treeSelection)); if (treeSelection.size() == 1) scrollPathToVisible(treeSelection.get(0)); }