# Class FormDialog

java.lang.Object
org.eclipse.jface.window.Window
org.eclipse.jface.dialogs.Dialog
org.eclipse.jface.dialogs.TrayDialog
org.eclipse.ui.forms.FormDialog

All Implemented Interfaces:
  `IShellProvider`

public class FormDialog extends TrayDialog
A general-purpose dialog that hosts a form. Clients should extend the class and override `createFormContent(IManagedForm)` protected method.

Since forms with wrapped text typically don't have a preferred size, it is important to set the initial dialog size upon creation:

    MyFormDialog dialog = new MyFormDialog(shell);
    dialog.create();
    dialog.getShell().setSize(500, 500);
    dialog.open();

Otherwise, the dialog may open very wide.

Since:
  3.3

## Nested Class Summary

### Nested classes/interfaces inherited from class Window

`Window.IExceptionHandler`

## Field Summary

### 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
`FormDialog(IShellProvider parentShellProvider)`
Creates a new form dialog for a provided parent shell provider.
`FormDialog(Shell shell)`
Creates a new form dialog for a provided parent shell.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`close()`
Closes this window, disposes its shell, and removes this window from its window manager (if it has one).
`protected Control`
`createButtonBar(Composite parent)`
Creates and returns the contents of this dialog's button bar.
`protected Control`
`createDialogArea(Composite parent)`
Creates and returns the contents of the upper part of this dialog (above the button bar).
`protected void`
`createFormContent(IManagedForm mform)`
Configures the dialog form and creates form content.

### Methods inherited from class TrayDialog

`closeTray, createHelpControl, getLayout, getTray, handleShellCloseEvent, isDialogHelpAvailable, isHelpAvailable, openTray, setDialogHelpAvailable, setHelpAvailable`

### Methods inherited from class Dialog

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

### Methods inherited from class Window

`canHandleShellCloseEvent, configureShell, constrainShellSize, createShell, getConstrainedShellBounds, getContents, getDefaultImage, getDefaultImages, getDefaultOrientation, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, open, 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`

## Constructor Details

### FormDialog

public FormDialog(Shell shell)
Creates a new form dialog for a provided parent shell.

Parameters:
  `shell` - the parent shell

### FormDialog

public FormDialog(IShellProvider parentShellProvider)
Creates a new form dialog for a provided parent shell provider.

Parameters:
  `parentShellProvider` - the parent shell provider

## Method Details

### 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()`

### createDialogArea

protected Control createDialogArea(Composite parent)
Description copied from class: `Dialog`
Creates and returns the contents of the upper part of this dialog (above the button bar).

The `Dialog` implementation of this framework method creates and returns a new `Composite` with standard margins and spacing.

The returned control's layout data must be an instance of `GridData`. This method must not modify the parent's layout.

Subclasses must override this method but may call `super` as in the following example:

    Composite composite = (Composite) super.createDialogArea(parent);
    //add controls to composite as necessary
    return composite;

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

### createButtonBar

protected Control createButtonBar(Composite parent)
Description copied from class: `Dialog`
Creates and returns the contents of this dialog's button bar.

The `Dialog` implementation of this framework method lays out a button bar and calls the `createButtonsForButtonBar` framework method to populate it. Subclasses may override.

The returned control's layout data must be an instance of `GridData`.

Overrides:
  `createButtonBar` in class `TrayDialog`
Parameters:
  `parent` - the parent composite to contain the button bar
Returns:
  the button bar control

### createFormContent

protected void createFormContent(IManagedForm mform)
Configures the dialog form and creates form content. Clients should override this method.

Parameters:
  `mform` - the dialog form