Package org.eclipse.nebula.jface.gridviewer

## Class GridTreeViewer

- java.lang.Object
- - 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 `ITreeContentProvider` interface.

The current implementation does not support lazy content providers.

### Constructor Summary

Constructors
`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

All Methods Instance Methods Concrete Methods
`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, java.lang.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​(java.lang.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​(java.util.List items)`
`protected void` `showItem​(Item item)`

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

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

### Constructor Detail

#### 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 Detail

#### 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​(java.util.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,
                                java.lang.Object element)

#### remove

    public void remove​(java.lang.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