Bug 315332 [Viewers] [Provider] ClassCastException happened at jface when selecting tree with using picture-capture software.
Build Identifier: M20090917-0800 We are manipulating two software - one is our developing software and the other is picture-capture software. When we select tree at our developing software, then ClassCastException happend. This is the stack trace(scroll below) java.lang.ClassCastException: org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider cannot be cast to org.eclipse.jface.viewers.ColumnLabelProvider at org.eclipse.jface.viewers.SWTFocusCellManager$4.getName(SWTFocusCellManager.java:190) at org.eclipse.swt.accessibility.Accessible.get_accName(Accessible.java:932) at org.eclipse.swt.accessibility.Accessible$1.method10(Accessible.java:87) at org.eclipse.swt.internal.ole.win32.COMObject.callback10(COMObject.java:155) at org.eclipse.swt.internal.win32.OS.CallNextHookEx(Native Method) at org.eclipse.swt.ole.win32.OleFrame.getMsgProc(OleFrame.java:307) at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:2975) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3468) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) Reproducible: Always
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SWTFocusCellManager.java
}
		if (navigationStrategy.shouldCancelEvent(viewer, event)) {
			event.doit = false;
		}
	}
	private void handleSelection(Event event) {
		if ((event.detail & SWT.CHECK) == 0 && focusCell != null && focusCell.getItem() != event.item
				&& event.item != null && ! event.item.isDisposed() ) {
			ViewerRow row = viewer.getViewerRowFromItem(event.item);
			Assert
					.isNotNull(row,
							"Internal Structure invalid. Row item has no row ViewerRow assigned"); 
			ViewerCell tmp = row.getCell(focusCell.getColumnIndex());
			if (!focusCell.equals(tmp)) {
				setFocusCell(tmp);
			}
		}
	}
	/**
	 * Handles the {@link SWT#FocusIn} event.
	 * 
	 * @param event the event
	 */
	private void handleFocusIn(Event event) {
		if (focusCell == null) {
			setFocusCell(getInitialFocusCell());
		}
	}
	abstract ViewerCell getInitialFocusCell();
	private void hookListener(final ColumnViewer viewer) {