# Class ErrorDialog

java.lang.Object
org.eclipse.jface.window.Window
org.eclipse.jface.dialogs.Dialog
org.eclipse.jface.dialogs.IconAndMessageDialog
org.eclipse.jface.dialogs.ErrorDialog

All Implemented Interfaces:
  `IShellProvider`

public class ErrorDialog extends IconAndMessageDialog
A dialog to display one or more errors to the user, as contained in an `IStatus` object. If an error contains additional detailed information then a Details button is automatically supplied, which shows or hides an error details viewer when pressed by the user.

This dialog should be considered being a "local" way of error handling. It cannot be changed or replaced by "global" error handling facility ( `org.eclipse.ui.statushandler.StatusManager`). If product defines its own way of handling errors, this error dialog may cause UI inconsistency, so until it is absolutely necessary, `StatusManager` should be used.

See Also:
  - `IStatus`

## Nested Class Summary

### Nested classes/interfaces inherited from class Window

`Window.IExceptionHandler`

## Field Summary

Fields
Modifier and Type
Field
Description
`static boolean`
`AUTOMATED_MODE`
Static to prevent opening of error dialogs for automated testing.

### Fields inherited from class IconAndMessageDialog

`imageLabel, message, messageLabel`

### Fields inherited from class Dialog

`blockedHandler, buttonBar, DIALOG_DEFAULT_BOUNDS, DIALOG_PERSISTLOCATION, DIALOG_PERSISTSIZE, dialogArea, DLG_IMG_ERROR, DLG_IMG_HELP, DLG_IMG_INFO, DLG_IMG_MESSAGE_ERROR, DLG_IMG_MESSAGE_INFO, DLG_IMG_MESSAGE_WARNING, DLG_IMG_QUESTION, DLG_IMG_WARNING, ELLIPSIS`

### Fields inherited from class Window

`CANCEL, OK, resizeHasOccurred`

## Constructor Summary

Constructors
Constructor
Description
`ErrorDialog(Shell parentShell, String dialogTitle, String message, IStatus status, int displayMask)`
Creates an error dialog.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`buttonPressed(int id)`
Notifies that this dialog's button with the given id has been pressed.
`boolean`
`close()`
Closes this window, disposes its shell, and removes this window from its window manager (if it has one).
`protected void`
`configureShell(Shell shell)`
Configures the given shell in preparation for opening this window in it.
`protected void`
`createButtonsForButtonBar(Composite parent)`
Adds buttons to this dialog's button bar.
`protected void`
`createDetailsButton(Composite parent)`
Create the details button if it should be included.
`protected void`
`createDialogAndButtonArea(Composite parent)`
Create the dialog area and the button bar for the receiver.
`protected Control`
`createDialogArea(Composite parent)`
This implementation of the `Dialog` framework method creates and lays out a composite.
`protected List`
`createDropDownList(Composite parent)`
Create this dialog's drop-down list component.
`protected int`
`getColumnCount()`
Get the number of columns in the layout of the Shell of the dialog.
`protected Image`
`getImage()`
Returns the image to display beside the message in this dialog.
`protected boolean`
`isResizable()`
Returns a boolean indicating whether the dialog should be considered resizable when the shell style is initially set.
`int`
`open()`
Extends `Window.open()`.
`static int`
`openError(Shell parent, String dialogTitle, String message, IStatus status)`
Opens an error dialog to display the given error.
`static int`
`openError(Shell parentShell, String title, String message, IStatus status, int displayMask)`
Opens an error dialog to display the given error.
`protected final void`
`setStatus(IStatus status)`
Set the status displayed by this error dialog to the given status.
`protected static boolean`
`shouldDisplay(IStatus status, int mask)`
Returns whether the given status object should be displayed.
`protected boolean`
`shouldShowDetailsButton()`
Return whether the Details button should be included.
`protected final void`
`showDetailsArea()`
Show the details portion of the dialog if it is not already visible.

### Methods inherited from class IconAndMessageDialog

`createButtonBar, createContents, createMessageArea, getErrorImage, getInfoImage, getMessageLabelStyle, getQuestionImage, getWarningImage`

### Methods inherited from class Dialog

`applyDialogFont, cancelPressed, convertHeightInCharsToPixels, convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, convertWidthInCharsToPixels, create, createButton, dialogFontIsDefault, getBlockedHandler, getButton, getButtonBar, getCancelButton, getDialogArea, getDialogBoundsSettings, getDialogBoundsStrategy, getImage, getInitialLocation, getInitialSize, getOKButton, initializeBounds, initializeDialogUnits, okPressed, setBlockedHandler, setButtonLayoutData, setButtonLayoutFormData, shortenText`

### Methods inherited from class Window

`canHandleShellCloseEvent, constrainShellSize, createShell, getConstrainedShellBounds, getContents, getDefaultImage, getDefaultImages, getDefaultOrientation, getLayout, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, handleShellCloseEvent, setBlockOnOpen, setDefaultImage, setDefaultImages, setDefaultModalParent, setDefaultOrientation, setExceptionHandler, setParentShell, setReturnCode, setShellStyle, setWindowManager`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### AUTOMATED_MODE

public static boolean AUTOMATED_MODE
Static to prevent opening of error dialogs for automated testing.

## Constructor Details

### ErrorDialog

public ErrorDialog(Shell parentShell, String dialogTitle, String message, IStatus status, int displayMask)
Creates an error dialog. Note that the dialog will have no visual representation (no widgets) until it is told to open.

Normally one should use `openError` to create and open one of these. This constructor is useful only if the error object being displayed contains child items and you need to specify a mask which will be used to filter the displaying of these children. The error dialog will only be displayed if there is at least one child status matching the mask.

Parameters:
  `parentShell` - the shell under which to create this dialog
  `dialogTitle` - the title to use for this dialog, or `null` to indicate that the default title should be used
  `message` - the message to show in this dialog, or `null` to indicate that the error's message should be shown as the primary message
  `status` - the error to show to the user
  `displayMask` - the mask to use to filter the displaying of child items, as per `IStatus.matches`
See Also:
  - `IStatus.matches(int)`

## Method Details

### buttonPressed

protected void buttonPressed(int id)
Description copied from class: `Dialog`
Notifies that this dialog's button with the given id has been pressed.

The `Dialog` implementation of this framework method calls `okPressed` if the ok button is the pressed, and `cancelPressed` if the cancel button is the pressed. All other button presses are ignored. Subclasses may override to handle other buttons, but should call `super.buttonPressed` if the default handling of the ok and cancel buttons is desired.

Overrides:
  `buttonPressed` in class `Dialog`
Parameters:
  `id` - the id of the button that was pressed (see `IDialogConstants.*_ID` constants)

### configureShell

protected void configureShell(Shell shell)
Description copied from class: `Window`
Configures the given shell in preparation for opening this window in it.

The default implementation of this framework method sets the shell's image and gives it a grid layout. Subclasses may extend or reimplement.

Overrides:
  `configureShell` in class `Window`
Parameters:
  `shell` - the shell

### createButtonsForButtonBar

protected void createButtonsForButtonBar(Composite parent)
Description copied from class: `Dialog`
Adds buttons to this dialog's button bar.

The `Dialog` implementation of this framework method adds standard ok and cancel buttons using the `createButton` framework method. These standard buttons will be accessible from `getCancelButton`, and `getOKButton`. Subclasses may override.

Note: The common button order is: {other buttons}, OK, Cancel. On some platforms, `Dialog.initializeBounds()` will move the default button to the right.

Overrides:
  `createButtonsForButtonBar` in class `Dialog`
Parameters:
  `parent` - the button bar composite

### createDetailsButton

protected void createDetailsButton(Composite parent)
Create the details button if it should be included.

Parameters:
  `parent` - the parent composite
Since:
  3.2

### createDialogArea

protected Control createDialogArea(Composite parent)
This implementation of the `Dialog` framework method creates and lays out a composite. Subclasses that require a different dialog area may either override this method, or call the `super` implementation and add controls to the created composite. Note: Since 3.4, the created composite no longer grabs excess vertical space. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=72489. If the old behavior is desired by subclasses, get the returned composite's layout data and set grabExcessVerticalSpace to true.

Overrides:
  `createDialogArea` in class `Dialog`
Parameters:
  `parent` - the parent composite to contain the dialog area
Returns:
  the dialog area control

### createDialogAndButtonArea

protected void createDialogAndButtonArea(Composite parent)
Description copied from class: `IconAndMessageDialog`
Create the dialog area and the button bar for the receiver.

Overrides:
  `createDialogAndButtonArea` in class `IconAndMessageDialog`
Parameters:
  `parent` - the parent composite

### getImage

protected Image getImage()
Description copied from class: `IconAndMessageDialog`
Returns the image to display beside the message in this dialog.

Subclasses may override.

Specified by:
  `getImage` in class `IconAndMessageDialog`
Returns:
  the image to display beside the message

### createDropDownList

protected List createDropDownList(Composite parent)
Create this dialog's drop-down list component. The list is displayed after the user presses details button. It is developer responsibility to display details button if and only if there is some content on drop down list. The visibility of the details button is controlled by `shouldShowDetailsButton()`, which should also be overridden together with this method.

Parameters:
  `parent` - the parent composite
Returns:
  the drop-down list component
See Also:
  - `shouldShowDetailsButton()`

### open

public int open()
Extends `Window.open()`. Opens an error dialog to display the error. If you specified a mask to filter the displaying of these children, the error dialog will only be displayed if there is at least one child status matching the mask.

Overrides:
  `open` in class `Window`
Returns:
  the return code
See Also:
  - `Window.create()`

### openError

public static int openError(Shell parent, String dialogTitle, String message, IStatus status)
Opens an error dialog to display the given error. Use this method if the error object being displayed does not contain child items, or if you wish to display all such items without filtering.

Parameters:
  `parent` - the parent shell of the dialog, or `null` if none
  `dialogTitle` - the title to use for this dialog, or `null` to indicate that the default title should be used
  `message` - the message to show in this dialog, or `null` to indicate that the error's message should be shown as the primary message
  `status` - the error to show to the user
Returns:
  the code of the button that was pressed that resulted in this dialog closing. This will be `Dialog.OK` if the OK button was pressed, or `Dialog.CANCEL` if this dialog's close window decoration or the ESC key was used.

### openError

public static int openError(Shell parentShell, String title, String message, IStatus status, int displayMask)
Opens an error dialog to display the given error. Use this method if the error object being displayed contains child items and you wish to specify a mask which will be used to filter the displaying of these children. The error dialog will only be displayed if there is at least one child status matching the mask.

Parameters:
  `parentShell` - the parent shell of the dialog, or `null` if none
  `title` - the title to use for this dialog, or `null` to indicate that the default title should be used
  `message` - the message to show in this dialog, or `null` to indicate that the error's message should be shown as the primary message
  `status` - the error to show to the user
  `displayMask` - the mask to use to filter the displaying of child items, as per `IStatus.matches`
Returns:
  the code of the button that was pressed that resulted in this dialog closing. This will be `Dialog.OK` if the OK button was pressed, or `Dialog.CANCEL` if this dialog's close window decoration or the ESC key was used.
See Also:
  - `IStatus.matches(int)`

### shouldDisplay

protected static boolean shouldDisplay(IStatus status, int mask)
Returns whether the given status object should be displayed.

Parameters:
  `status` - a status object
  `mask` - a mask as per `IStatus.matches`
Returns:
  `true` if the given status should be displayed, and `false` otherwise
See Also:
  - `IStatus.matches(int)`

### close

public boolean close()
Description copied from class: `Window`
Closes this window, disposes its shell, and removes this window from its window manager (if it has one).

This framework method may be extended (`super.close` must be called).

Note that in order to prevent recursive calls to this method it does not call `Shell#close()`. As a result `ShellListener`s will not receive a `shellClosed` event.

Overrides:
  `close` in class `Dialog`
Returns:
  `true` if the window is (or was already) closed, and `false` if it is still open
See Also:
  - `Window.close()`

### showDetailsArea

protected final void showDetailsArea()
Show the details portion of the dialog if it is not already visible. This method will only work when it is invoked after the control of the dialog has been set. In other words, after the `createContents` method has been invoked and has returned the control for the content area of the dialog. Invoking the method before the content area has been set or after the dialog has been disposed will have no effect.

Since:
  3.1

### shouldShowDetailsButton

protected boolean shouldShowDetailsButton()
Return whether the Details button should be included. This method is invoked once when the dialog is built. Default implementation is tight to default implementation of `createDropDownList(Composite)` and displays details button if there is anything on the display list.

Returns:
  whether the Details button should be included
Since:
  3.1
See Also:
  - `createDropDownList(Composite)`

### setStatus

protected final void setStatus(IStatus status)
Set the status displayed by this error dialog to the given status. This only affects the status displayed by the Details list. The message, image and title should be updated by the subclass, if desired.

Parameters:
  `status` - the status to be displayed in the details list
Since:
  3.1

### getColumnCount

protected int getColumnCount()
Description copied from class: `IconAndMessageDialog`
Get the number of columns in the layout of the Shell of the dialog.

Overrides:
  `getColumnCount` in class `IconAndMessageDialog`
Returns:
  int
Since:
  3.22

### isResizable

protected boolean isResizable()
Description copied from class: `Dialog`
Returns a boolean indicating whether the dialog should be considered resizable when the shell style is initially set.

This method is used to ensure that all style bits appropriate for resizable dialogs are added to the shell style. Individual dialogs may always set the shell style to ensure that a dialog is resizable, but using this method ensures that resizable dialogs will be created with the same set of style bits.

Style bits will never be removed based on the return value of this method. For example, if a dialog returns `false`, but also sets a style bit for a SWT.RESIZE border, the style bit will be honored.

Overrides:
  `isResizable` in class `Dialog`
Returns:
  a boolean indicating whether the dialog is resizable and should have the default style bits for resizable dialogs