Package org.eclipse.jface.viewers

# Interface ITreeContentProvider

All Superinterfaces:
  `IContentProvider`, `IStructuredContentProvider`

All Known Subinterfaces:
  `ICommonContentProvider`, `IPipelinedTreeContentProvider`, `IPipelinedTreeContentProvider2`

All Known Implementing Classes:
  `AbstractSynchronizationContentProvider`, `BaseWorkbenchContentProvider`, `ObservableListTreeContentProvider`, `ObservableSetTreeContentProvider`, `PreferenceContentProvider`, `RefactoringHistoryContentProvider`, `SynchronizationContentProvider`, `TreeNodeContentProvider`, `WorkbenchContentProvider`

public interface ITreeContentProvider extends IStructuredContentProvider
An interface to content providers for tree-structure-oriented viewers.

See Also:
  - `AbstractTreeViewer`

## Method Summary

Modifier and Type
Method
Description
`Object[]`
`getChildren(Object parentElement)`
Returns the child elements of the given parent element.
`Object[]`
`getElements(Object inputElement)`
Returns the elements to display in the viewer when its input is set to the given element.
`Object`
`getParent(Object element)`
Returns the parent for the given element, or `null` indicating that the parent can't be computed.
`boolean`
`hasChildren(Object element)`
Returns whether the given element has children.

### Methods inherited from interface org.eclipse.jface.viewers.IContentProvider

`dispose, inputChanged`

## Method Details

### getElements

Object[] getElements(Object inputElement)
Returns the elements to display in the viewer when its input is set to the given element. These elements can be presented as rows in a table, items in a list, etc. The result is not modified by the viewer.

NOTE: The returned array must not contain the given `inputElement`, since this leads to recursion issues in `AbstractTreeViewer` (see bug 9262).

Specified by:
  `getElements` in interface `IStructuredContentProvider`
Parameters:
  `inputElement` - the input element
Returns:
  the array of elements to display in the viewer

### getChildren

Object[] getChildren(Object parentElement)
Returns the child elements of the given parent element.

The difference between this method and `IStructuredContentProvider.getElements` is that `getElements` is called to obtain the tree viewer's root elements, whereas `getChildren` is used to obtain the children of a given parent element in the tree (including a root).

The result is not modified by the viewer.

Parameters:
  `parentElement` - the parent element
Returns:
  an array of child elements

### getParent

Object getParent(Object element)
Returns the parent for the given element, or `null` indicating that the parent can't be computed. In this case the tree-structured viewer can't expand a given node correctly if requested.

Parameters:
  `element` - the element
Returns:
  the parent element, or `null` if it has none or if the parent cannot be computed

### hasChildren

boolean hasChildren(Object element)
Returns whether the given element has children.

Intended as an optimization for when the viewer does not need the actual children. Clients may be able to implement this more efficiently than `getChildren`.

Parameters:
  `element` - the element
Returns:
  `true` if the given element has children, and `false` if it has no children