void (final List<? extends CommittedChangeList> changeLists) { final TreeState localState = myState != null && myFilePaths.isEmpty() ? myState : TreeState.createOn(myStructureTree, (DefaultMutableTreeNode)myStructureTree.getModel().getRoot()); for (CommittedChangeList changeList : changeLists) { for (Change change : changeList.getChanges()) { final FilePath path = ChangesUtil.getFilePath(change); if (path.getParentPath() != null) { myFilePaths.add(path.getParentPath()); } } } myStructureTree.setModel(TreeModelBuilder.buildFromFilePaths(myProject, new DirectoryChangesGroupingPolicy.Factory(), myFilePaths)); localState.applyTo(myStructureTree, myStructureTree.getModel().getRoot()); myStructureTree.revalidate(); myStructureTree.repaint(); initRenderer(); }