Bug 315281 update copyrights for 3.6
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerFocusCellManager.java
ViewerRow aViewerRow = getViewer().getViewerRowFromItem(tree.getTopItem());
			if (tree.getColumnCount() == 0) {
				return aViewerRow.getCell(0);
			}
			Rectangle clientArea = tree.getClientArea();
			for (int i = 0; i < tree.getColumnCount(); i++) {
				if (aViewerRow.getWidth(i) > 0 && columnInVisibleArea(clientArea,aViewerRow,i))
					return aViewerRow.getCell(i);
			}
		}
		return null;
	}
	private boolean columnInVisibleArea(Rectangle clientArea, ViewerRow row, int colIndex) {
		return row.getBounds(colIndex).x >= clientArea.x;
	}
	public ViewerCell getFocusCell() {
		ViewerCell cell = super.getFocusCell();
		Tree t = (Tree) getViewer().getControl();
		
		if (cell != null) {
			if (t.getSelection().length == 1
					&& t.getSelection()[0] != cell.getItem()) {
				setFocusCell(getViewer().getViewerRowFromItem(
						t.getSelection()[0]).getCell(cell.getColumnIndex()));
			}
		}
		return super.getFocusCell();
	}
}