Bug 32254 [Viewers] AbstractTreeViewer uses HashSet to remember expansion state
I20030216 The custom hash table should be used instead. Otherwise expansion state may be lost due to a different equals implementation of the element and the IElementComparer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
*
 * @param tree the tree control
 */
public TreeViewer(Tree tree) {
	super();
	this.tree = tree;
	hookControl(tree);
}
/* (non-Javadoc)
 * Method declared in AbstractTreeViewer.
 */
protected void addTreeListener(Control c, TreeListener listener) {
	((Tree)c).addTreeListener(listener);
}
/* (non-Javadoc)
 * Method declared in AbstractTreeViewer.
 */
protected void doUpdateItem(final Item item, Object element) {
	
	IBaseLabelProvider baseProvider = getLabelProvider();
	if (baseProvider instanceof IViewerLabelProvider) {
		IViewerLabelProvider provider = (IViewerLabelProvider)baseProvider;
		
		ViewerLabel updateLabel = new ViewerLabel(item.getText(), item.getImage());
		provider.updateLabel(updateLabel, element);
		
		if(updateLabel.hasNewImage())
			item.setImage(updateLabel.getImage());
		if(updateLabel.hasNewText())
			item.setText(updateLabel.getText());