PropagateTree (@NotNull Disposable parent, @NotNull List<TaintNode> roots) { TaintNode rootWrapper = new TaintNode(null, null, null, null, true) { @Override public List<TaintNode> calcChildren() { return roots; } }; BaseTreeModel<TaintNode> propagateTreeModel = new PropagateTreeModel(rootWrapper); AsyncTreeModel treeModel = new AsyncTreeModel(propagateTreeModel, parent); PropagateTree tree = new PropagateTree(treeModel); tree.setRootVisible(false); tree.setShowsRootHandles(true); TreeUtil.installActions(tree); EditSourceOnDoubleClickHandler.install(tree); return tree; }