Package org.eclipse.ui.model

# Class BaseWorkbenchContentProvider

java.lang.Object
org.eclipse.ui.model.BaseWorkbenchContentProvider

All Implemented Interfaces:
  `IContentProvider`, `IStructuredContentProvider`, `ITreeContentProvider`

Direct Known Subclasses:
  `WorkbenchContentProvider`

public class BaseWorkbenchContentProvider extends Object implements ITreeContentProvider
Tree content provider for objects that can be adapted to the interface `IWorkbenchAdapter`.

This class may be instantiated, or subclassed.

Since:
  3.0
See Also:
  - `IWorkbenchAdapter`

## Constructor Summary

Constructors
Constructor
Description
`BaseWorkbenchContentProvider()`
Creates a new workbench content provider.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Disposes of this content provider.
`protected IWorkbenchAdapter`
`getAdapter(Object element)`
Returns the implementation of IWorkbenchAdapter for the given object.
`Object[]`
`getChildren(Object element)`
Returns the child elements of the given parent element.
`Object[]`
`getElements(Object element)`
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.
`void`
`inputChanged(Viewer viewer, Object oldInput, Object newInput)`
Notifies this content provider that the given viewer's input has been switched to a different element.

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

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

## Constructor Details

### BaseWorkbenchContentProvider

public BaseWorkbenchContentProvider()
Creates a new workbench content provider.

## Method Details

### dispose

public void dispose()
Description copied from interface: `IContentProvider`
Disposes of this content provider. This is called by the viewer when it is disposed.

The viewer should not be updated during this call, as it is in the process of being disposed.

The default implementation does nothing.

Specified by:
  `dispose` in interface `IContentProvider`

### getAdapter

protected IWorkbenchAdapter getAdapter(Object element)
Returns the implementation of IWorkbenchAdapter for the given object. Returns null if the adapter is not defined or the object is not adaptable.

Parameters:
  `element` - the element
Returns:
  the corresponding workbench adapter object

### getChildren

public Object[] getChildren(Object element)
Description copied from interface: `ITreeContentProvider`
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.

Specified by:
  `getChildren` in interface `ITreeContentProvider`
Parameters:
  `element` - the parent element
Returns:
  an array of child elements

### getElements

public Object[] getElements(Object element)
Description copied from interface: `ITreeContentProvider`
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`
Specified by:
  `getElements` in interface `ITreeContentProvider`
Parameters:
  `element` - the input element
Returns:
  the array of elements to display in the viewer

### getParent

public Object getParent(Object element)
Description copied from interface: `ITreeContentProvider`
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.

Specified by:
  `getParent` in interface `ITreeContentProvider`
Parameters:
  `element` - the element
Returns:
  the parent element, or `null` if it has none or if the parent cannot be computed

### hasChildren

public boolean hasChildren(Object element)
Description copied from interface: `ITreeContentProvider`
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`.

Specified by:
  `hasChildren` in interface `ITreeContentProvider`
Parameters:
  `element` - the element
Returns:
  `true` if the given element has children, and `false` if it has no children

### inputChanged

public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
Description copied from interface: `IContentProvider`
Notifies this content provider that the given viewer's input has been switched to a different element.

A typical use for this method is registering the content provider as a listener to changes on the new input (using model-specific means), and deregistering the viewer from the old input. In response to these change notifications, the content provider should update the viewer (see the add, remove, update and refresh methods on the viewers).

The viewer should not be updated during this call, as it might be in the process of being disposed.

The default implementation does nothing.

Specified by:
  `inputChanged` in interface `IContentProvider`
Parameters:
  `viewer` - the viewer
  `oldInput` - the old input element, or `null` if the viewer did not previously have an input
  `newInput` - the new input element, or `null` if the viewer does not have an input