Package org.eclipse.jface.viewers

# Interface IContentProvider

All Known Subinterfaces:
  `ICommonContentProvider`, `IIndexableLazyContentProvider`, `ILazyContentProvider`, `ILazyTreeContentProvider`, `ILazyTreePathContentProvider`, `IMergeViewerContentProvider`, `IOverridableTabListContentProvider`, `IPipelinedTreeContentProvider`, `IPipelinedTreeContentProvider2`, `IStructuredContentProvider`, `ITreeContentProvider`, `ITreePathContentProvider`

All Known Implementing Classes:
  `AbstractSynchronizationContentProvider`, `ArrayContentProvider`, `BaseWorkbenchContentProvider`, `DeferredContentProvider`, `EnvironmentTab.EnvironmentVariableContentProvider`, `FileEditorMappingContentProvider`, `ListContentProvider`, `MergeViewerContentProvider`, `MirroredMergeViewerContentProvider`, `ObservableListContentProvider`, `ObservableListTreeContentProvider`, `ObservableSetContentProvider`, `ObservableSetTreeContentProvider`, `PreferenceContentProvider`, `RefactoringHistoryContentProvider`, `SynchronizationContentProvider`, `TreeNodeContentProvider`, `WorkbenchContentProvider`

public interface IContentProvider
A content provider mediates between the viewer's model and the viewer itself.

See Also:
  - `ContentViewer.setContentProvider(IContentProvider)`

## Method Summary

Modifier and Type
Method
Description
`default void`
`dispose()`
Disposes of this content provider.
`default 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.

## Method Details

### dispose

default void dispose()
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.

### inputChanged

default 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.

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.

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