|
|
|
|
org.eclipse.ui.navigator
Interface IPipelinedTreeContentProvider
-
All Superinterfaces:
-
ICommonContentProvider,
IContentProvider,
IMementoAware,
IStructuredContentProvider,
ITreeContentProvider
-
public interface IPipelinedTreeContentProvider
- extends
ICommonContentProvider
A pipelined content provider allows an extension to reshape the contributions
of an upstream content extension.
An "upstream" extension is either:
- the extension overridden by this extension using the
org.eclipse.ui.navigatorContent/navigatorContent/override element, or
- another extension that overrides the same extension this extension
overrides, but with higher priority than this extension.
Overridden extensions form a tree where the nodes of the tree represent the
content extensions, children represent overridding extensions, and the
children are sorted by priority. Pipeline contributions traverse the tree,
allowing children to override the contributions of their parent, giving
precedence to the children of highest priority.
ITreeContentProvider is respected by the Common
Navigator.
-
Since:
- 3.2
-
See Also:
-
INavigatorPipelineService ,
INavigatorContentService.getPipelineService()
getPipelinedChildren
void getPipelinedChildren(
Object aParent,
Set theCurrentChildren)
- Intercept the children that would be contributed to the viewer and
determine how to change the shape of those children. The set of children
should be modified to contain the correct children to return to the
viewer.
-
-
-
Parameters:
-
aParent - A parent from the viewer -
theCurrentChildren - The set of children contributed thus far from upstream content
providers.
getPipelinedElements
void getPipelinedElements(
Object anInput,
Set theCurrentElements)
- Intercept the elements that would be contributed to the root of the
viewer and determine how to change the shape of those children. The given
set of elements should be modified to contain the correct elements to
return to the viewer.
-
-
-
Parameters:
-
anInput - An input from the viewer -
theCurrentElements - The set of children contributed thus far from upstream content
providers.
getPipelinedParent
Object getPipelinedParent(
Object anObject,
Object aSuggestedParent)
- Intercept requests for a parent of the given object.
-
-
-
Parameters:
-
anObject - The object being queried for a parent. -
aSuggestedParent - The parent already suggested from upstream extensions.
-
Returns:
- The intended parent from this pipelined content provider.
interceptAdd
PipelinedShapeModification interceptAdd(
PipelinedShapeModification anAddModification)
- Intercept attempts to add elements directly to the viewer.
For content extensions that reshape the structure of children in a
viewer, their overridden extensions may sometimes use optimized refreshes
to add elements to the tree. These attempts must be intercepted and
mapped to the correct set of model elements in the overridding extension.
Clients may add, remove, or modify elements in the given set of added
children. Clients should return a set for downstream extensions to
massage further.
Clients may change what parent the reshaped elements are added to, so
long as that parent is not the root of the viewer.
Clients should never create their own pipeline shape
modifications, but instead return the shape modification that was passed
in with appropriate changes.
Clients should not call any of the add, remove, refresh, or update
methods on the viewer from this method or any code invoked by the
implementation of this method.
-
-
-
Parameters:
-
anAddModification - The shape modification which contains the current suggested
parent and children. Clients may modify this parameter
directly and return it as the new shape modification.
-
Returns:
- The new shape modification to use. Clients should never
return null from this method.
interceptRemove
PipelinedShapeModification interceptRemove(
PipelinedShapeModification aRemoveModification)
- Intercept attempts to remove elements directly from the viewer.
For content extensions that reshape the structure of children in a
viewer, their overridden extensions may sometimes use optimized refreshes
to remove elements to the tree. These attempts must be intercepted and
mapped to the correct set of model elements in the overridding extension.
Clients may add, remove, or modify elements in the given set of removed
children. Clients should return a set for downstream extensions to
massage further.
The parent will be null for remove modifications.
Clients should never create their own pipeline shape
modifications, but instead return the shape modification that was passed
in with appropriate changes.
Clients should not call any of the add, remove, refresh, or update
methods on the viewer from this method or any code invoked by the
implementation of this method.
-
-
-
Parameters:
-
aRemoveModification - The shape modification which contains the current suggested
parent and children. Clients may modify this parameter
directly and return it as the new shape modification.
-
Returns:
- The new shape modification to use. Clients should never
return null from this method.
interceptRefresh
boolean interceptRefresh(
PipelinedViewerUpdate aRefreshSynchronization)
- Intercept calls to viewer
refresh() methods.
Clients may modify the given update to add or remove the elements to be
refreshed. Clients may return the same instance that was passed in for
the next downstream extension.
Clients should not call any of the add, remove, refresh, or update
methods on the viewer from this method or any code invoked by the
implementation of this method.
-
-
-
Parameters:
-
aRefreshSynchronization - The (current) refresh update to execute against the viewer.
-
Returns:
- True if the viewer update was modified.
interceptUpdate
boolean interceptUpdate(
PipelinedViewerUpdate anUpdateSynchronization)
- Intercept calls to viewer
update() methods.
Clients may modify the given update to add or remove the elements to be
updated. Clients may also add or remove properties for the given targets
to optimize the refresh. Clients may return the same instance that was
passed in for the next downstream extension.
Clients should not call any of the add, remove, refresh, or update
methods on the viewer from this method or any code invoked by the
implementation of this method.
-
-
-
Parameters:
-
anUpdateSynchronization - The (current) update to execute against the viewer.
-
Returns:
- True if the viewer update was modified.
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.
|
|
|