Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.ui.progress
Class DeferredTreeContentManager

    java.lang.Object
      org.eclipse.ui.progress.DeferredTreeContentManager

public class DeferredTreeContentManager
extends Object

The DeferredContentManager is a class that helps an ITreeContentProvider get its deferred input. NOTE AbstractTreeViewer#isExpandable may need to be implemented in AbstractTreeViewer subclasses with deferred content that use filtering as a call to #getChildren may be required to determine the correct state of the expanding control. AbstractTreeViewers which use this class may wish to sacrifice accuracy of the expandable state indicator for the performance benefits of defering content.

Since:
  3.0
See Also:
  `IDeferredWorkbenchAdapter`

Constructor Summary
`DeferredTreeContentManager(ITreeContentProvider provider, AbstractTreeViewer viewer)` Create a new instance of the receiver using the supplied content provider and viewer.
`DeferredTreeContentManager(ITreeContentProvider provider, AbstractTreeViewer viewer, IWorkbenchPartSite site)` Create a new instance of the receiver using the supplied content provider and viewer.

Method Summary
`protected void` | `addChildren(Object parent, Object[] children, IProgressMonitor monitor)` Create a UIJob to add the children to the parent in the tree viewer.
`void` | `cancel(Object parent)` Cancel all jobs that are fetching content for the given parent or any of its children.
`protected IElementCollector` | `createElementCollector(Object parent, org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)` Create the element collector for the receiver.
`protected IDeferredWorkbenchAdapter` | `getAdapter(Object element)` Return the IDeferredWorkbenchAdapter for element or the element if it is an instance of IDeferredWorkbenchAdapter.
`Object[]` | `getChildren(Object parent)` Returns the child elements of the given element, or in the case of a deferred element, returns a placeholder.
`boolean` | `isDeferredAdapter(Object element)` Return whether or not the element is or adapts to an IDeferredWorkbenchAdapter.
`boolean` | `mayHaveChildren(Object element)` Provides an optimized lookup for determining if an element has children.
`protected void` | `runClearPlaceholderJob(org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)` Run a job to clear the placeholder.
`protected void` | `startFetchingDeferredChildren(Object parent, IDeferredWorkbenchAdapter adapter, org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)` Starts a job and creates a collector for fetching the children of this deferred adapter.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DeferredTreeContentManager

    public DeferredTreeContentManager(ITreeContentProvider provider,
                                      AbstractTreeViewer viewer,
                                      IWorkbenchPartSite site)

  Create a new instance of the receiver using the supplied content provider and viewer. Run any jobs using the site.

Parameters:
  `provider` -
  `viewer` -
  `site` -

### DeferredTreeContentManager

    public DeferredTreeContentManager(ITreeContentProvider provider,
                                      AbstractTreeViewer viewer)

  Create a new instance of the receiver using the supplied content provider and viewer.

Parameters:
  `provider` - The content provider that will be updated
  `viewer` - The tree viewer that the results are added to

Method Detail

### mayHaveChildren

    public boolean mayHaveChildren(Object element)

  Provides an optimized lookup for determining if an element has children. This is required because elements that are populated lazilly can't answer `getChildren` just to determine the potential for children. Throw an AssertionFailedException if element is not an instance of IDeferredWorkbenchAdapter.

  Parameters:
    `element` - The Object being tested. This should not be `null`.
  Returns:
    boolean `true` if there are potentially children.
  Throws:
    `RuntimeException` - if the element is null.

### getChildren

    public Object[] getChildren(Object parent)

  Returns the child elements of the given element, or in the case of a deferred element, returns a placeholder. If a deferred element is used, a job is created to fetch the children in the background.

  Parameters:
    `parent` - The parent object.
  Returns:
    Object[] or `null` if parent is not an instance of IDeferredWorkbenchAdapter.

### getAdapter

    protected IDeferredWorkbenchAdapter getAdapter(Object element)

  Return the IDeferredWorkbenchAdapter for element or the element if it is an instance of IDeferredWorkbenchAdapter. If it does not exist return null.

  Parameters:
    `element` -
  Returns:
    IDeferredWorkbenchAdapter or `null`

### startFetchingDeferredChildren

    protected void startFetchingDeferredChildren(Object parent,
                                                 IDeferredWorkbenchAdapter adapter,
                                                 org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)

  Starts a job and creates a collector for fetching the children of this deferred adapter. If children are waiting to be retrieved for this parent already, that job is cancelled and another is started.

  Parameters:
    `parent` - The parent object being filled in,
    `adapter` - The adapter being used to fetch the children.
    `placeholder` - The adapter that will be used to indicate that results are pending.

### addChildren

    protected void addChildren(Object parent,
                               Object[] children,
                               IProgressMonitor monitor)

  Create a UIJob to add the children to the parent in the tree viewer.

  Parameters:
    `parent` -
    `children` -
    `monitor` -

### isDeferredAdapter

    public boolean isDeferredAdapter(Object element)

  Return whether or not the element is or adapts to an IDeferredWorkbenchAdapter.

  Parameters:
    `element` -
  Returns:
    boolean `true` if the element is an IDeferredWorkbenchAdapter

### runClearPlaceholderJob

    protected void runClearPlaceholderJob(org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)

  Run a job to clear the placeholder. This is used when the update for the tree is complete so that the user is aware that no more updates are pending.

  Parameters:
    `placeholder` -

### cancel

    public void cancel(Object parent)

  Cancel all jobs that are fetching content for the given parent or any of its children.

  Parameters:
    `parent` -

### createElementCollector

    protected IElementCollector createElementCollector(Object parent,
                                                       org.eclipse.ui.internal.progress.PendingUpdateAdapter placeholder)

  Create the element collector for the receiver.

  Parameters:
    `parent` - The parent object being filled in,
    `placeholder` - The adapter that will be used to indicate that results are pending.
  Returns:
    IElementCollector

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
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, 2004. All rights reserved.