Package org.eclipse.swt.custom

## Class TreeCursor

- java.lang.Object
- - org.eclipse.swt.widgets.Widget
  - - org.eclipse.swt.widgets.Control
    - - org.eclipse.swt.widgets.Scrollable
      - - org.eclipse.swt.widgets.Composite
        - - org.eclipse.swt.widgets.Canvas
          - - org.eclipse.swt.custom.TreeCursor

All Implemented Interfaces:
  `Drawable`

    public class TreeCursor
    extends Canvas

A TreeCursor provides a way for the user to navigate around a Tree with columns using the keyboard. It also provides a mechanism for selecting an individual cell in a tree.

For a detailed example of using a TreeCursor to navigate to a cell and then edit it see http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet360.java .

Styles:
  BORDER
Events:
  Selection, DefaultSelection

Since:
  3.8

### Field Summary

### Fields inherited from class org.eclipse.swt.widgets.Control

`handle`

### Constructor Summary

Constructors
`TreeCursor​(Tree parent, int style)` Constructs a new instance of this class given its parent tree and a style value describing its behavior and appearance.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addSelectionListener​(SelectionListener listener)` Adds the listener to the collection of listeners who will be notified when the receiver's selection changes, by sending it one of the messages defined in the `SelectionListener` interface.
`Color` `getBackground()` Returns the background color that the receiver will use to draw.
`int` `getColumn()` Returns the index of the column over which the TreeCursor is positioned.
`Color` `getForeground()` Returns the foreground color that the receiver will use to draw.
`TreeItem` `getRow()` Returns the row over which the TreeCursor is positioned.
`void` `removeSelectionListener​(SelectionListener listener)` Removes the listener from the collection of listeners who will be notified when the receiver's selection changes.
`void` `setBackground​(Color color)` Sets the receiver's background color to the color specified by the argument, or to the default system color for the control if the argument is null.
`void` `setForeground​(Color color)` Sets the receiver's foreground color to the color specified by the argument, or to the default system color for the control if the argument is null.
`void` `setSelection​(int row, int column)` Positions the TreeCursor over the root-level cell at the given row and column in the parent tree.
`void` `setSelection​(TreeItem row, int column)` Positions the TreeCursor over the cell at the given row and column in the parent tree.
`void` `setVisible​(boolean visible)` Marks the receiver as visible if the argument is `true`, and marks it invisible otherwise.

### Methods inherited from class org.eclipse.swt.widgets.Canvas

`drawBackground, getCaret, getIME, scroll, setCaret, setFont, setIME`

### Methods inherited from class org.eclipse.swt.widgets.Composite

`changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList`

### Methods inherited from class org.eclipse.swt.widgets.Scrollable

`computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar`

### Methods inherited from class org.eclipse.swt.widgets.Control

`addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update`

### Methods inherited from class org.eclipse.swt.widgets.Widget

`addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.eclipse.swt.graphics.Drawable

`isAutoScalable`

### Constructor Detail

#### TreeCursor

    public TreeCursor​(Tree parent,
                      int style)

Constructs a new instance of this class given its parent tree and a style value describing its behavior and appearance.

The style value is either one of the style constants defined in class `SWT` which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the `int` "|" operator) two or more of those `SWT` style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.

Parameters:
  `parent` - a Tree control which will be the parent of the new instance (cannot be null)
  `style` - the style of control to construct
Throws:
  `IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the parent is null
  `SWTException` -
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
  - ERROR_INVALID_SUBCLASS - if this class is not an allowed subclass
See Also:
  `SWT.BORDER`, `Widget.checkSubclass()`, `Widget.getStyle()`

### Method Detail

#### addSelectionListener

    public void addSelectionListener​(SelectionListener listener)

Adds the listener to the collection of listeners who will be notified when the receiver's selection changes, by sending it one of the messages defined in the `SelectionListener` interface.

When `widgetSelected` is called, the item field of the event object is valid. If the receiver has `SWT.CHECK` style set and the check selection changes, the event object detail field contains the value `SWT.CHECK`. `widgetDefaultSelected` is typically called when an item is double-clicked.

Parameters:
  `listener` - the listener which should be notified
Throws:
  `IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the listener is null
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
See Also:
  `SelectionListener`, `SelectionEvent`, `removeSelectionListener(SelectionListener)`

#### getBackground

    public Color getBackground()

Returns the background color that the receiver will use to draw.

Overrides:
  `getBackground` in class `Control`
Returns:
  the receiver's background color

#### getColumn

    public int getColumn()

Returns the index of the column over which the TreeCursor is positioned.

Returns:
  the column index for the current position
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### getForeground

    public Color getForeground()

Returns the foreground color that the receiver will use to draw.

Overrides:
  `getForeground` in class `Control`
Returns:
  the receiver's foreground color

#### getRow

    public TreeItem getRow()

Returns the row over which the TreeCursor is positioned.

Returns:
  the item for the current position, or `null` if none
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### removeSelectionListener

    public void removeSelectionListener​(SelectionListener listener)

Removes the listener from the collection of listeners who will be notified when the receiver's selection changes.

Parameters:
  `listener` - the listener which should no longer be notified
Throws:
  `IllegalArgumentException` -
  - ERROR_NULL_ARGUMENT - if the listener is null
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver
See Also:
  `SelectionListener`, `addSelectionListener(SelectionListener)`

#### setBackground

    public void setBackground​(Color color)

Sets the receiver's background color to the color specified by the argument, or to the default system color for the control if the argument is null.

Note: This operation is a hint and may be overridden by the platform. For example, on Windows the background of a Button cannot be changed.

Overrides:
  `setBackground` in class `Control`
Parameters:
  `color` - the new color (or null)
Throws:
  `IllegalArgumentException` -
  - ERROR_INVALID_ARGUMENT - if the argument has been disposed
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### setForeground

    public void setForeground​(Color color)

Sets the receiver's foreground color to the color specified by the argument, or to the default system color for the control if the argument is null.

Note: This operation is a hint and may be overridden by the platform.

Overrides:
  `setForeground` in class `Control`
Parameters:
  `color` - the new color (or null)
Throws:
  `IllegalArgumentException` -
  - ERROR_INVALID_ARGUMENT - if the argument has been disposed
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### setSelection

    public void setSelection​(int row,
                             int column)

Positions the TreeCursor over the root-level cell at the given row and column in the parent tree.

Parameters:
  `row` - the index of the root-level row for the cell to select
  `column` - the index of column for the cell to select
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### setSelection

    public void setSelection​(TreeItem row,
                             int column)

Positions the TreeCursor over the cell at the given row and column in the parent tree.

Parameters:
  `row` - the TreeItem of the row for the cell to select
  `column` - the index of column for the cell to select
Throws:
  `SWTException` -
  - ERROR_WIDGET_DISPOSED - if the receiver has been disposed
  - ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

#### setVisible

    public void setVisible​(boolean visible)

Description copied from class: `Control`
Marks the receiver as visible if the argument is `true`, and marks it invisible otherwise.

If one of the receiver's ancestors is not visible or some other condition makes the receiver not visible, marking it visible may not actually cause it to be displayed.

Overrides:
  `setVisible` in class `Control`
Parameters:
  `visible` - the new visibility state