|
Eclipse Platform Release 3.3 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A pipelined content provider allows an extension to reshape the contributions of an upstream content extension.
An "upstream" extension is either:
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.
Clients may (but are not required to) implement this interface if there is no
cause to do so. ITreeContentProvider
is respected by the Common
Navigator.
INavigatorPipelineService
,
INavigatorContentService.getPipelineService()
Method Summary | |
---|---|
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. |
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. |
Object |
getPipelinedParent(Object anObject,
Object aSuggestedParent)
Intercept requests for a parent of the given object. |
PipelinedShapeModification |
interceptAdd(PipelinedShapeModification anAddModification)
Intercept attempts to add elements directly to the viewer. |
boolean |
interceptRefresh(PipelinedViewerUpdate aRefreshSynchronization)
Intercept calls to viewer refresh() methods.
|
PipelinedShapeModification |
interceptRemove(PipelinedShapeModification aRemoveModification)
Intercept attempts to remove elements directly from the viewer. |
boolean |
interceptUpdate(PipelinedViewerUpdate anUpdateSynchronization)
Intercept calls to viewer update() methods.
|
Methods inherited from interface org.eclipse.ui.navigator.ICommonContentProvider |
---|
init |
Methods inherited from interface org.eclipse.jface.viewers.ITreeContentProvider |
---|
getChildren, getParent, hasChildren |
Methods inherited from interface org.eclipse.jface.viewers.IStructuredContentProvider |
---|
getElements |
Methods inherited from interface org.eclipse.jface.viewers.IContentProvider |
---|
dispose, inputChanged |
Methods inherited from interface org.eclipse.ui.navigator.IMementoAware |
---|
restoreState, saveState |
Method Detail |
public void getPipelinedChildren(Object aParent, Set theCurrentChildren)
aParent
- A parent from the viewertheCurrentChildren
- The set of children contributed thus far from upstream content
providers.public void getPipelinedElements(Object anInput, Set theCurrentElements)
anInput
- An input from the viewertheCurrentElements
- The set of children contributed thus far from upstream content
providers.public Object getPipelinedParent(Object anObject, Object aSuggestedParent)
anObject
- The object being queried for a parent.aSuggestedParent
- The parent already suggested from upstream extensions.
public PipelinedShapeModification interceptAdd(PipelinedShapeModification anAddModification)
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.
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.
public PipelinedShapeModification interceptRemove(PipelinedShapeModification aRemoveModification)
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.
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.
public boolean interceptRefresh(PipelinedViewerUpdate aRefreshSynchronization)
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.
aRefreshSynchronization
- The (current) refresh update to execute against the viewer.
public boolean interceptUpdate(PipelinedViewerUpdate anUpdateSynchronization)
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.
anUpdateSynchronization
- The (current) update to execute against the viewer.
|
Eclipse Platform Release 3.3 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2007. All rights reserved.