public void addAndRemoveRoots(Set<SNode> removedRoots, Set<SNode> addedRoots) { DefaultTreeModel treeModel = (DefaultTreeModel) getTree().getModel(); for (SNode root : removedRoots) { SNodeTreeNode node = findRootSNodeTreeNode(root); if (node == null) continue; MPSTreeNode parent = (MPSTreeNode) node.getParent(); treeModel.removeNodeFromParent(node); if (parent instanceof SNodeGroupTreeNode && parent.getChildCount() == 0) { myTreeNode.groupBecameEmpty((SNodeGroupTreeNode) parent); } } myTreeNode.insertRoots(addedRoots); }
public void updateNodesWithChangedPackages(Set<SNode> nodesWithChangedPackages) { DefaultTreeModel treeModel = (DefaultTreeModel) getTree().getModel(); for (SNode node : nodesWithChangedPackages) { SNodeTreeNode treeNode = findRootSNodeTreeNode(node); if (treeNode == null) continue; MPSTreeNode parent = (MPSTreeNode) treeNode.getParent(); treeModel.removeNodeFromParent(treeNode); if (parent.getChildCount() == 0 && parent instanceof SNodeGroupTreeNode) { myTreeNode.groupBecameEmpty((SNodeGroupTreeNode) parent); } } myTreeNode.insertRoots(nodesWithChangedPackages); }