Bug 57425 TreeViewer doesn't implement IFontProvider
TableViewer implements IFontProvider to support the new SWT feature to set the font for items. TreeViewer doesn't provide a corresponding implementation. Patch: Index: TreeViewer.java =================================================================== RCS file: /home/eclipse/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer. java,v retrieving revision 1.13 diff -u -r1.13 TreeViewer.java --- TreeViewer.java 16 Mar 2004 20:20:40 -0000 1.13 +++ TreeViewer.java 5 Apr 2004 07:30:51 -0000 @@ -119,7 +119,13 @@ TreeItem treeItem = (TreeItem) item; treeItem.setForeground(cp.getForeground(element)); treeItem.setBackground(cp.getBackground(element)); - } + } + if (baseProvider instanceof IFontProvider) { + IFontProvider fprov = (IFontProvider) baseProvider; + TreeItem treeItem = (TreeItem) item; + treeItem.setFont(fprov.getFont(element)); + } + } /* (non-Javadoc)
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
* of <code>ILabelProvider</code>.
 */
public void setLabelProvider(IBaseLabelProvider labelProvider) {
	Assert.isTrue(labelProvider instanceof ILabelProvider);
	super.setLabelProvider(labelProvider);
}
/* (non-Javadoc)
 * Method declared in AbstractTreeViewer.
 */
protected void setSelection(List items) {
	
	Item[] current = getSelection(getTree());
	
	
	if(haveSameData(items,current))
		return;
	 
	
	Tree cachedTree = getTree();
	TreeItem topItem = cachedTree.getTopItem();
	
	TreeItem[] newItems = new TreeItem[items.size()];
	items.toArray(newItems);
	getTree().setSelection(newItems);
		
	
	if(topItem != null)
		cachedTree.setTopItem(topItem);		
}
private boolean haveSameData(List items, Item[] current){