# Class CellNavigationStrategy

java.lang.Object
org.eclipse.jface.viewers.CellNavigationStrategy

public class CellNavigationStrategy extends Object
This class implementation the strategy how the table is navigated using the keyboard.

Subclasses can implement their custom navigation algorithms

Since:
  3.3

## Constructor Summary

Constructors
Constructor
Description
`CellNavigationStrategy()`

## Method Summary

Modifier and Type
Method
Description
`void`
`collapse(ColumnViewer viewer, ViewerCell cellToCollapse, Event event)`
`void`
`expand(ColumnViewer viewer, ViewerCell cellToExpand, Event event)`
`ViewerCell`
`findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event)`
`protected void`
`init()`
This method is called by the framework to initialize this navigation strategy object.
`boolean`
`isCollapseEvent(ColumnViewer viewer, ViewerCell cellToCollapse, Event event)`
`boolean`
`isExpandEvent(ColumnViewer viewer, ViewerCell cellToExpand, Event event)`
`boolean`
`isNavigationEvent(ColumnViewer viewer, Event event)`
is the given event an event which moves the selection to another cell
`boolean`
`shouldCancelEvent(ColumnViewer viewer, Event event)`
This method is consulted to decide whether an event has to be canceled or not.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CellNavigationStrategy

public CellNavigationStrategy()

## Method Details

### isNavigationEvent

public boolean isNavigationEvent(ColumnViewer viewer, Event event)
is the given event an event which moves the selection to another cell

Parameters:
  `viewer` - the viewer we are working for
  `event` - the key event
Returns:
  `true` if a new cell is searched

### isCollapseEvent

public boolean isCollapseEvent(ColumnViewer viewer, ViewerCell cellToCollapse, Event event)

Parameters:
  `viewer` - the viewer we are working for
  `cellToCollapse` - the cell to collapse
  `event` - the key event
Returns:
  `true` if this event triggers collapsing of a node

### isExpandEvent

public boolean isExpandEvent(ColumnViewer viewer, ViewerCell cellToExpand, Event event)

Parameters:
  `viewer` - the viewer we are working for
  `cellToExpand` - the cell to expand
  `event` - the key event
Returns:
  `true` if this event triggers expanding of a node

### expand

public void expand(ColumnViewer viewer, ViewerCell cellToExpand, Event event)

Parameters:
  `viewer` - the viewer working for
  `cellToExpand` - the cell the user wants to expand
  `event` - the event triggering the expansion

### collapse

public void collapse(ColumnViewer viewer, ViewerCell cellToCollapse, Event event)

Parameters:
  `viewer` - the viewer working for
  `cellToCollapse` - the cell the user wants to collapse
  `event` - the event triggering the expansion

### findSelectedCell

public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event)

Parameters:
  `viewer` - the viewer we are working for
  `currentSelectedCell` - the cell currently selected
  `event` - the key event
Returns:
  the cell which is highlighted next or `null` if the default implementation is taken. E.g. it's fairly impossible to react on PAGE_DOWN requests

### shouldCancelEvent

public boolean shouldCancelEvent(ColumnViewer viewer, Event event)
This method is consulted to decide whether an event has to be canceled or not. By default events who collapse/expand tree-nodes are canceled

Parameters:
  `viewer` - the viewer working for
  `event` - the event
Returns:
  `true` if the event has to be canceled

### init

protected void init()
This method is called by the framework to initialize this navigation strategy object. Subclasses may extend.