StatusManager is the entry point for all statuses to be reported in the user interface.
Handlers shoudn't be used directly but through the StatusManager singleton which keeps the status handling policy and chooses handlers. StatusManager.getManager().handle(IStatus)
and handle(IStatus status, int style)
are the methods are the primary access points to the StatusManager.
Acceptable styles (can be combined with logical OR)
- NONE - a style indicating that the status should not be acted on. This is used by objects such as log listeners that do not want to report a status twice
- LOG - a style indicating that the status should be logged only
- SHOW - a style indicating that handlers should show a problem to an user without blocking the calling method while awaiting user response. This is generally done using a non modal {@link Dialog}
- BLOCK - a style indicating that the handling should block the calling method until the user has responded. This is generally done using a modal window such as a {@link Dialog}
Handlers are intended to be accessed via the status manager. The StatusManager chooses which handler should be used for a particular error. There are two ways for adding handlers to the handling flow. First using extension point org.eclipse.ui.statusHandlers
, second by the workbench advisor and its method {@link WorkbenchAdvisor#getWorkbenchErrorHandler()}. If a handler is associated with a product, it is used instead of this defined in advisor.
@since 3.3
@see AbstractStatusHandler