[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)); - } - } }