### Eclipse Workspace Patch 1.0 #P org.eclipse.jface Index: src/org/eclipse/jface/viewers/TreeViewer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java,v retrieving revision 1.91 diff -u -r1.91 TreeViewer.java --- src/org/eclipse/jface/viewers/TreeViewer.java 6 Nov 2007 18:43:20 -0000 1.91 +++ src/org/eclipse/jface/viewers/TreeViewer.java 9 Nov 2007 20:37:53 -0000 @@ -1116,4 +1116,16 @@ super.editElement(element, column); } } + + /* (non-Javadoc) + * @see org.eclipse.jface.viewers.AbstractTreeViewer#getChildren(org.eclipse.swt.widgets.Widget, java.lang.Object[]) + */ +// public Item[] getChildren(Widget widget, Object[] elementChildren) { +// Item[] items = super.getChildren(widget,elementChildren); +// if(elementChildren.length == 0 || items.length / elementChildren.length > 5){//Will there be a lot of disposal? +// getTree().removeAll(); +// items = getChildren(widget); +// } +// return items; +// } } Index: src/org/eclipse/jface/viewers/AbstractTreeViewer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java,v retrieving revision 1.128 diff -u -r1.128 AbstractTreeViewer.java --- src/org/eclipse/jface/viewers/AbstractTreeViewer.java 6 Nov 2007 22:13:24 -0000 1.128 +++ src/org/eclipse/jface/viewers/AbstractTreeViewer.java 9 Nov 2007 20:37:53 -0000 @@ -2537,8 +2537,8 @@ oldCnt = getItemCount(tree); } - Item[] items = getChildren(widget); - + Item[] items = getChildren(widget,elementChildren); + // save the expanded elements CustomHashtable expanded = newHashtable(CustomHashtable.DEFAULT_CAPACITY); // assume // num @@ -2685,6 +2685,18 @@ } /** + * Return the items to be refreshed as part of an update. elementChildren are the + * new elements. + * @param widget + * @param elementChildren + * @since 3.4 + * @return Item[] + */ + public Item[] getChildren(Widget widget, Object[] elementChildren) { + return getChildren(widget); + } + + /** * Updates the "+"/"-" icon of the tree node from the given element. It * calls isExpandable to determine whether an element is * expandable.