org.eclipse.jface.viewers.package.html Maven / Gradle / Ivy
Package-level Javadoc
Provides a framework for viewers, which are model-based
content adapters for SWT widgets.
Package Specification
A viewer is a model-based adapter on an SWT widget. Each viewer has
four parts:
-
an input - the object that serves as the viewer's model
-
a widget - the SWT control through which the viewer's model is displayed
-
a content provider - mediates between the model and viewer
-
a label provider - maps model objects to displayable labels containing
text and/or an image
This package contains the viewer framework. The viewer framework is an
independent JFace module. Using it requires a knowledge of SWT, but does
not require familiarity with any of the other JFace modules. The framework
consists of abstract base classes for viewers (Viewer
, StructuredViewer
,
AbstractTreeViewer
) together with concrete viewer classes (ListViewer
,
TreeViewer
,
TableViewer
,
TableTreeViewer
, CheckboxTreeViewer
,
and CheckboxTableViewer
),
and various lesser support classes. The concrete structured viewer classes
are ready-to-use and have built-in support for drag-and-drop, filtering
(IViewerFilter
and ViewerFilter
), and sorting (IViewerSorter
and ViewerSorter
); these classes may also be subclassed further
if required.
In general terms, creating a viewer involves the following steps:
-
instantiating a viewer on some pre-existing SWT widget,
-
setting the viewer's content provider (an object implementing
IContentProvider
),
-
setting the viewer's label provider (an object implementing
ILabelProvider
),
-
and, finally, setting the viewer's input.
Once a viewer's input is set, the viewer becomes active. As the model changes,
it is the content provider's responsibility to respond to changes to the
model by telling the viewer what to change (done by calling add and remove
methods on the viewer). An existing viewer may be retargeted by giving
it a different object as input; the viewer is responsible for informing
the content provider of these kinds of wholesale changes (IContentProvider.inputChanged
).
Also, each viewer registers with its label provider for notification of
changes that would affect what the viewer displays (see ILabelProviderListener.stateChanged
).
Note: None of the classes in this package maintain global state.