void (@NotNull final CollapsedGraph collapsedGraph, Set<Integer> nodesToShow) { FragmentGenerator generator = new FragmentGenerator(LinearGraphUtils.asLiteLinearGraph(collapsedGraph.getDelegatedGraph()), nodeIndex -> collapsedGraph.isNodeVisible(nodeIndex)); CollapsedGraph.Modification modification = collapsedGraph.startModification(); for (Integer nodeToShow : nodesToShow) { if (modification.isNodeShown(nodeToShow)) continue; FragmentGenerator.GreenFragment fragment = generator.getGreenFragmentForCollapse(nodeToShow, Integer.MAX_VALUE); if (fragment.getUpRedNode() == null || fragment.getDownRedNode() == null || fragment.getUpRedNode().equals(fragment.getDownRedNode())) { continue; } for (Integer n : fragment.getMiddleGreenNodes()) { modification.showNode(n); } modification.removeEdge(GraphEdge.createNormalEdge(fragment.getUpRedNode(), fragment.getDownRedNode(), GraphEdgeType.DOTTED)); } modification.apply(); }