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
}
		}
		return rv;
	}
	private ViewerCell searchPreviousCell(ViewerRow row, ColumnViewer viewer,
			int columnIndex, int startIndex) {
		ViewerCell rv = null;
		if (columnIndex - 1 >= 0) {
			ViewerColumn column = viewer.getViewerColumn(columnIndex - 1);
			if (column != null
					&& column.getEditingSupport().canEdit(
							row.getItem().getData())) {
				rv = row.getCell(columnIndex - 1);
			} else {
				rv = searchPreviousCell(row, viewer, columnIndex - 1,
						startIndex);
			}
		} else {
			if ((getTabingStyle() & TABING_CYCLE_IN_ROW) == TABING_CYCLE_IN_ROW) {
				
				if (columnIndex - 1 != startIndex) {
					
					
					
					rv = searchPreviousCell(row, viewer, row.getColumnCount(),
							startIndex);
				}
			} else if ((getTabingStyle() & TABING_MOVE_TO_ROW_NEIGHBOR) == TABING_MOVE_TO_ROW_NEIGHBOR) {
				ViewerRow rowAbove = getRowAbove(row, viewer);
				if (rowAbove != null) {