Class ObservableSetTreeContentProvider<E>
- Type Parameters:
E- type of the values that are provided by this object
- All Implemented Interfaces:
IContentProvider,IStructuredContentProvider,ITreeContentProvider
ITreeContentProvider for use with an AbstractTreeViewer,
which uses the provided set factory to obtain the
elements of a tree. Objects of this class listen for changes to each
IObservableSet created by the factory, and will insert and remove
viewer elements to reflect the observed changes.- Since:
- 1.2
- Restriction:
- This class is not intended to be subclassed by clients.
-
Constructor Summary
ConstructorsConstructorDescriptionObservableSetTreeContentProvider(IObservableFactory<? super E, ? extends IObservableSet<E>> setFactory, TreeStructureAdvisor<E> structureAdvisor) Constructs an ObservableListTreeContentProvider using the given list factory. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()Disposes of this content provider.Object[]getChildren(Object parentElement) Returns the child elements of the given parent element.Object[]getElements(Object inputElement) Returns the elements to display in the viewer when its input is set to the given element.Returns the set of elements known to this content provider.Returns the parent for the given element, ornullindicating that the parent can't be computed.Returns the set of known elements which have been realized in the viewer.booleanhasChildren(Object element) Returns whether the given element has children.voidinputChanged(Viewer viewer, Object oldInput, Object newInput) Notifies this content provider that the given viewer's input has been switched to a different element.
-
Constructor Details
-
ObservableSetTreeContentProvider
public ObservableSetTreeContentProvider(IObservableFactory<? super E, ? extends IObservableSet<E>> setFactory, TreeStructureAdvisor<E> structureAdvisor) Constructs an ObservableListTreeContentProvider using the given list factory. Must be called from the display thread.- Parameters:
setFactory- observable factory that produces an IObservableSet of children for a given parent element. Observable sets created by this factory must be on the realm of the current display.structureAdvisor- an advisor that will be consulted from the implementations of thegetParent(Object)andhasChildren(Object)methods, ornullif no advisor is available. It is recommended that clients pass a non-null advisor if they can provide additional structural information about the tree.
-
-
Method Details
-
inputChanged
Description copied from interface:IContentProviderNotifies 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:
inputChangedin interfaceIContentProvider- Parameters:
viewer- the vieweroldInput- the old input element, ornullif the viewer did not previously have an inputnewInput- the new input element, ornullif the viewer does not have an input
-
getElements
Description copied from interface:ITreeContentProviderReturns 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 inAbstractTreeViewer(see bug 9262).- Specified by:
getElementsin interfaceIStructuredContentProvider- Specified by:
getElementsin interfaceITreeContentProvider- Parameters:
inputElement- the input element- Returns:
- the array of elements to display in the viewer
-
hasChildren
Description copied from interface:ITreeContentProviderReturns 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:
hasChildrenin interfaceITreeContentProvider- Parameters:
element- the element- Returns:
trueif the given element has children, andfalseif it has no children
-
getChildren
Description copied from interface:ITreeContentProviderReturns the child elements of the given parent element.The difference between this method and
The result is not modified by the viewer.IStructuredContentProvider.getElementsis thatgetElementsis called to obtain the tree viewer's root elements, whereasgetChildrenis used to obtain the children of a given parent element in the tree (including a root).- Specified by:
getChildrenin interfaceITreeContentProvider- Parameters:
parentElement- the parent element- Returns:
- an array of child elements
-
getParent
Description copied from interface:ITreeContentProviderReturns the parent for the given element, ornullindicating 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:
getParentin interfaceITreeContentProvider- Parameters:
element- the element- Returns:
- the parent element, or
nullif it has none or if the parent cannot be computed
-
dispose
public void dispose()Disposes of this content provider. This is called by the viewer when a content provider is replaced, or when the viewer itself is disposed.The viewer should not be updated during this call, as it is in the process of being disposed.
Note: Data binding content providers become unusable on disposal.
- Specified by:
disposein interfaceIContentProvider
-
getKnownElements
Returns the set of elements known to this content provider. Label providers may track this set if they need to be notified about additions before the viewer sees the added element, and notified about removals after the element was removed from the viewer. This is intended for use by label providers, as it will always return the items that need labels.- Returns:
- readableSet of items that will need labels
-
getRealizedElements
Returns the set of known elements which have been realized in the viewer. Clients may track this set in order to perform custom actions on elements while they are known to be present in the viewer.- Returns:
- the set of known elements which have been realized in the viewer.
- Since:
- 1.3
-