# Interface IDebugModelPresentationExtension

All Superinterfaces:
  `IBaseLabelProvider, IDebugModelPresentation, ILabelProvider, ISourcePresentation`

public interface IDebugModelPresentationExtension extends IDebugModelPresentation
Optional extension for an `IDebugModelPresentation`. Dynamically controls whether labels are computed in a UI thread. The debug platform calls debug model presentation label related methods that do not implement this interface in a non-UI thread.

For example, some models may require at least one access in a UI thread to initialize an image registry at which point they may be able to provide labels in a non-UI thread.

Clients implementing a debug model presentation should also implement this interface to control which thread labels are generated in.

Since:
  3.4

## Field Summary

### Fields inherited from interface IDebugModelPresentation

`DISPLAY_VARIABLE_TYPE_NAMES`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`requiresUIThread(Object element)`
Returns whether the UI thread is required to retrieve a label (text, image, font, foreground, background, etc.), for the specified element.

### Methods inherited from interface IBaseLabelProvider

`addListener, dispose, isLabelProperty, removeListener`

### Methods inherited from interface IDebugModelPresentation

`computeDetail, getImage, getText, setAttribute`

### Methods inherited from interface ISourcePresentation

`getEditorId, getEditorInput`

## Method Details

### requiresUIThread

boolean requiresUIThread(Object element)
Returns whether the UI thread is required to retrieve a label (text, image, font, foreground, background, etc.), for the specified element. When `true` is returned, label related methods will be called in the UI thread, otherwise methods may be called in a non-UI thread.

Parameters:
  `element` - the element a label is to be retrieved for
Returns:
  whether label related methods should be called on the UI thread