Package org.eclipse.ui.progress

## Interface IDeferredWorkbenchAdapter

All Superinterfaces:
  `IWorkbenchAdapter`

All Known Implementing Classes:
  `DeferredDebugElementWorkbenchAdapter`

    public interface IDeferredWorkbenchAdapter
    extends IWorkbenchAdapter

This adapter interface provides support for lazy initialization of UI workbench elements that are displayed visually. This adapter is used with an associated deferred content provider.

Since:
  3.0
See Also:
  `DeferredTreeContentManager`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `fetchDeferredChildren​(Object object, IElementCollector collector, IProgressMonitor monitor)` Called by a job run in a separate thread to fetch the children of this adapter.
`ISchedulingRule` `getRule​(Object object)` Returns the rule used to schedule the deferred fetching of children for this adapter.
`boolean` `isContainer()` Returns whether this adapter may have children.

### Methods inherited from interface org.eclipse.ui.model.IWorkbenchAdapter

`getChildren, getImageDescriptor, getLabel, getParent`

### Method Detail

#### fetchDeferredChildren

    void fetchDeferredChildren​(Object object,
                               IElementCollector collector,
                               IProgressMonitor monitor)

Called by a job run in a separate thread to fetch the children of this adapter. The adapter should in return notify of new children via the collector. This is generally used when a content provider is getting elements.

It is good practice to check the passed in monitor for cancellation. This will provide good responsiveness for cancellation requests made by the user.

Parameters:
  `object` - the object to fetch the children for
  `collector` - the collector to notify about new children. Should not be `null`.
  `monitor` - a progress monitor that will never be `null` to support reporting and cancellation.

#### isContainer

    boolean isContainer()

Returns whether this adapter may have children. This is an optimized method used by content providers to allow showing the [+] expand icon without having yet fetched the children for the element.

If `false` is returned, then the content provider may assume that this adapter has no children. If `true` is returned, then the job manager may assume that this adapter may have children.

Returns:
  `true`if the adapter may have childen, and `false` otherwise.

#### getRule

    ISchedulingRule getRule​(Object object)

Returns the rule used to schedule the deferred fetching of children for this adapter.

Parameters:
  `object` - the object whose children are being fetched
Returns:
  the scheduling rule. May be `null`.
See Also:
  `Job.setRule(ISchedulingRule)`