|
|
|
|
org.eclipse.jface.databinding.viewers
Class ObservableListTreeContentProvider
java.lang.Object
org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider
-
All Implemented Interfaces:
-
IContentProvider,
IStructuredContentProvider,
ITreeContentProvider
-
public class ObservableListTreeContentProvider
- extends
Object
- implements
ITreeContentProvider
An
ITreeContentProvider for use with an
AbstractTreeViewer ,
which uses the provided
list factory to obtain the
elements of a tree. Object of this class listen for changes to each
IObservableList 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.
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
ObservableListTreeContentProvider
public ObservableListTreeContentProvider(
IObservableFactory listFactory,
TreeStructureAdvisor structureAdvisor)
- Constructs an ObservableListTreeContentProvider using the given list
factory.
-
Parameters:
-
listFactory - observable factory that produces an IObservableList of
children for a given parent element. Observable lists created
by this factory must be on the realm of the current display. -
structureAdvisor - an advisor that will be consulted from the implementations of
the
getParent(Object) and
hasChildren(Object) methods, or null if
no advisor is available. It is recommended that clients pass a
non-null advisor if they can provide additional structural
information about the tree.
inputChanged
public void inputChanged(
Viewer viewer,
Object oldInput,
Object newInput)
-
Description copied from interface:
IContentProvider
- 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.
-
-
Specified by:
-
inputChanged
in interface
IContentProvider
-
-
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
getElements
public
Object[] getElements(
Object inputElement)
-
Description copied from interface:
IStructuredContentProvider
- Returns 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: For instances where the viewer is displaying a tree
containing a single 'root' element it is still necessary that the
'input' does not return itself from this method. This leads
to recursion issues (see bug 9262).
-
-
Specified by:
-
getElements
in interface
IStructuredContentProvider
-
-
Parameters:
-
inputElement - the input element
-
Returns:
- the array of elements to display in the viewer
hasChildren
public boolean hasChildren(
Object element)
-
Description copied from interface:
ITreeContentProvider
- Returns 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:
-
hasChildren
in interface
ITreeContentProvider
-
-
Parameters:
-
element - the element
-
Returns:
-
true if the given element has children,
and false if it has no children
getChildren
public
Object[] getChildren(
Object parentElement)
-
Description copied from interface:
ITreeContentProvider
- Returns the child elements of the given parent element.
The difference between this method and IStructuredContentProvider.getElements
is that getElements is called to obtain the
tree viewer's root elements, whereas getChildren is used
to obtain the children of a given parent element in the tree (including a root).
The result is not modified by the viewer.
-
-
Specified by:
-
getChildren
in interface
ITreeContentProvider
-
-
Parameters:
-
parentElement - the parent element
-
Returns:
- an array of child elements
getParent
public
Object getParent(
Object element)
-
Description copied from interface:
ITreeContentProvider
- Returns the parent for the given element, or
null
indicating 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:
-
getParent
in interface
ITreeContentProvider
-
-
Parameters:
-
element - the element
-
Returns:
- the parent element, or
null if it
has none or if the parent cannot be computed
dispose
public void dispose()
-
Description copied from interface:
IContentProvider
- 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.
-
-
Specified by:
-
dispose
in interface
IContentProvider
-
getKnownElements
public
IObservableSet 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
public
IObservableSet 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
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.
|
|
|