# Class GridTreeViewer

AbstractTreeViewer
org.eclipse.nebula.jface.gridviewer.GridTreeViewer

public class GridTreeViewer extends AbstractTreeViewer
A concrete viewer based on an Grid control.

This class is not intended to be subclassed outside the viewer framework. It is designed to be instantiated with a pre-existing Grid control and configured with a domain-specific content provider, label provider, element filter (optional), and element sorter (optional).

Content providers for grid tree viewers must implement the

invalid reference

    ITreeContentProvider

interface.

The current implementation does not support lazy content providers.

## Constructor Summary

Constructors
Constructor
Description
`GridTreeViewer(Grid grid)`
Creates a grid tree viewer on the given grid control.
`GridTreeViewer(Composite parent)`
Creates a grid tree viewer on a newly-created grid control under the given parent.
`GridTreeViewer(Composite parent, int style)`
Creates a grid tree viewer on a newly-created grid control under the given parent.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addTreeListener(Control control, TreeListener listener)`
`protected ColumnViewerEditor`
`createViewerEditor()`
`protected int`
`doGetColumnCount()`
Returns the number of columns of this viewer.
`protected void`
`doUpdateItem(Item item, Object element)`
`boolean`
`getAutoPreferredHeight()`
`protected Item[]`
`getChildren(Widget o)`
`protected Widget`
`getColumnViewerOwner(int columnIndex)`
`Control`
`getControl()`
`protected boolean`
`getExpanded(Item item)`
`Grid`
`getGrid()`
Returns the underlying `Grid` Control.
`protected Item`
`getItemAt(Point point)`
`protected int`
`getItemCount(Control control)`
`protected int`
`getItemCount(Item item)`
`protected Item[]`
`getItems(Item item)`
`protected Item`
`getParentItem(Item item)`
`protected Item[]`
`getSelection(Control control)`
`protected ViewerRow`
`getViewerRowFromItem(Widget item)`
`protected Item`
`newItem(Widget parent, int style, int index)`
`void`
`remove(Object parentOrTreePath, int index)`
Removes the element at the specified index of the parent.
`protected void`
`removeAll(Control control)`
`void`
`setAutoPreferredHeight(boolean autoPreferredHeight)`
When set to true, this grid viewer will ensure that each of the grid's items is always automatically sized to its preferred height.
`protected void`
`setExpanded(Item item, boolean expand)`
`void`
`setRowHeaderLabelProvider(CellLabelProvider rowHeaderLabelProvider)`
Label provider used by calculate the row header text
`protected void`
`setSelection(List items)`
`protected void`
`showItem(Item item)`

## Constructor Details

### GridTreeViewer

public GridTreeViewer(Composite parent)
Creates a grid tree viewer on a newly-created grid control under the given parent. The grid control is created using the SWT style bits `MULTI, H_SCROLL, V_SCROLL,` and `BORDER`. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
  `parent` - the parent control

### GridTreeViewer

public GridTreeViewer(Composite parent, int style)
Creates a grid tree viewer on a newly-created grid control under the given parent. The grid control is created using the given SWT style bits. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
  `parent` - the parent control
  `style` - the SWT style bits used to create the grid.

### GridTreeViewer

public GridTreeViewer(Grid grid)
Creates a grid tree viewer on the given grid control. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
  `grid` - the grid control

## Method Details

### getGrid

public Grid getGrid()
Returns the underlying `Grid` Control.

Returns:
  grid control.

### getItemAt

protected Item getItemAt(Point point)

### createViewerEditor

protected ColumnViewerEditor createViewerEditor()

### addTreeListener

protected void addTreeListener(Control control, TreeListener listener)

### getChildren

protected Item[] getChildren(Widget o)

### getExpanded

protected boolean getExpanded(Item item)

### getItemCount

protected int getItemCount(Control control)

### getItemCount

protected int getItemCount(Item item)

### getItems

protected Item[] getItems(Item item)

### getParentItem

protected Item getParentItem(Item item)

### getSelection

protected Item[] getSelection(Control control)

### newItem

protected Item newItem(Widget parent, int style, int index)

### removeAll

protected void removeAll(Control control)

### setExpanded

protected void setExpanded(Item item, boolean expand)

### setSelection

protected void setSelection(List items)

### showItem

protected void showItem(Item item)

### getControl

public Control getControl()

### getViewerRowFromItem

protected ViewerRow getViewerRowFromItem(Widget item)

### getColumnViewerOwner

protected Widget getColumnViewerOwner(int columnIndex)

### doGetColumnCount

protected int doGetColumnCount()
Returns the number of columns of this viewer.

Returns:
  the number of columns

### setAutoPreferredHeight

public void setAutoPreferredHeight(boolean autoPreferredHeight)
When set to true, this grid viewer will ensure that each of the grid's items is always automatically sized to its preferred height. The default is false.

Since this mechanism usually leads to a grid with rows of different heights and thus to a grid with decreased performance, it should only be applied if that is intended. To set the height of all items to a specific value, use `Grid.setItemHeight(int)` instead.

When a column with activated word wrapping is resized by dragging the column resizer, the items are only auto-resized properly if you use `GridViewerColumn` to create the columns.

When this method is called, existing rows are not resized to their preferred height. Therefore it is suggested that this method be called before rows are populated (i.e. before setInput).

### getAutoPreferredHeight

public boolean getAutoPreferredHeight()

Returns:
  true if this grid viewer sizes its rows to their preferred height
See Also:
  - `setAutoPreferredHeight(boolean)`

### doUpdateItem

protected void doUpdateItem(Item item, Object element)

### remove

public void remove(Object parentOrTreePath, int index)
Removes the element at the specified index of the parent. The selection is updated if required.

Parameters:
  `parentOrTreePath` - the parent element, the input element, or a tree path to the parent element
  `index` - child index
Since:
  3.3

### setRowHeaderLabelProvider

public void setRowHeaderLabelProvider(CellLabelProvider rowHeaderLabelProvider)
Label provider used by calculate the row header text

Parameters:
  `rowHeaderLabelProvider` - the provider