Bug 167325 [Viewers]ViewerCell and ViewerRow should provide API to find neighbors
This is a very important feature if we want provide keyboard features in tables and trees and the current EditingSupport has TODO items to make this work in a clear way. I'd propose the following new API functions for ViewerCell: - ViewerCell#getCellLeft() - ViewerCell#getCellRight() - ViewerCell#getCellTop() - ViewerCell#getCellBottom() - ViewerRow#getRowTop() - ViewerRow#getRowBottom() What I'm not 100% sure is if we should provide functions to navigate Tree-Structures: - ViewerCell#getCellTop(boolean samelevel) - ViewerCell#getCellBottom(boolean samelevel) - ViewerRow#getRowTop(boolean samelevel) - ViewerRow#getRowBottom(boolean samelevel)
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.java
* </ul>
	 * 
	 * <p>
	 * Subclasses may overwrite to implement their custom logic to edit the next
	 * cell
	 * </p>
	 * 
	 * @param columnIndex
	 *            the index of the current column
	 * @param row
	 *            the current row
	 * @param event
	 *            the travers event
	 */
	protected void processTraversEvent(int columnIndex,
			ViewerRow row, TraverseEvent event) {
		
		ViewerCell cell2edit = null;
		if (event.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
			event.doit = false;
			if ((event.stateMask & SWT.CTRL) == SWT.CTRL
					&& (getTabingStyle() & TABING_VERTICAL) == TABING_VERTICAL) {
				cell2edit = searchCellAboveBelow(row, viewer, columnIndex, true);
			} else if ((getTabingStyle() & TABING_HORIZONTAL) == TABING_HORIZONTAL) {
				cell2edit = searchPreviousCell(row, viewer, columnIndex,
						columnIndex);
			}
		} else if (event.detail == SWT.TRAVERSE_TAB_NEXT) {
			event.doit = false;
			if ((event.stateMask & SWT.CTRL) == SWT.CTRL