[219823] Large content change to a DTD hangs the UI
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
index d399acb..fdd1531 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
@@ -222,20 +222,14 @@
//update the tree
refreshTree(event);
- Iterator iter = event.getNodes().iterator();
- List newSelection = new ArrayList();
- while (iter.hasNext()) {
- DTDNode node = (DTDNode) iter.next();
+ final List nodes = event.getNodes();
+ if (!nodes.isEmpty()) {
+ final DTDNode node = (DTDNode) nodes.get(0);
if (oldSelectedNode == null || node.getStructuredDTDDocumentRegion() != oldSelectedNode.getStructuredDTDDocumentRegion() || node.getStartOffset() != oldSelectedNode.getStartOffset() || node.getEndOffset() != oldSelectedNode.getEndOffset()) {
- // add to selection
- newSelection.add(node);
expandToNode(node);
+ viewer.setSelection(new StructuredSelection(node));
}
}
- if (newSelection.size() > 0) {
- viewer.setSelection(new StructuredSelection(newSelection));
- }
-
}
}