Package org.eclipse.jface.wizard

## Class WizardDialog

- java.lang.Object
- - org.eclipse.jface.window.Window
  - - org.eclipse.jface.dialogs.Dialog
    - - org.eclipse.jface.dialogs.TrayDialog
      - - org.eclipse.jface.dialogs.TitleAreaDialog
        - - org.eclipse.jface.wizard.WizardDialog

All Implemented Interfaces:
  `IPageChangeProvider`, `IRunnableContext`, `IShellProvider`, `IWizardContainer`, `IWizardContainer2`

    public class WizardDialog
    extends TitleAreaDialog
    implements IWizardContainer2, IPageChangeProvider

A dialog to show a wizard to the end user.

In typical usage, the client instantiates this class with a particular wizard. The dialog serves as the wizard container and orchestrates the presentation of its pages.

The standard layout is roughly as follows: it has an area at the top containing both the wizard's title, description, and image; the actual wizard page appears in the middle; below that is a progress indicator (which is made visible if needed); and at the bottom of the page is message line and a button bar containing Help, Next, Back, Finish, and Cancel buttons (or some subset).

Clients may subclass `WizardDialog`, although this is rarely required.

### Nested Class Summary

Nested Classes
`protected class` `WizardDialog.PageContainerFillLayout` A layout for a container which includes several pages, like a notebook, wizard, or preference dialog.

### Nested classes/interfaces inherited from class org.eclipse.jface.window.Window

`Window.IExceptionHandler`

### Field Summary

Fields
`static String` `WIZ_IMG_ERROR` Image registry key for error message image (value `"dialog_title_error_image"`).

### Fields inherited from class org.eclipse.jface.dialogs.TitleAreaDialog

`DLG_IMG_TITLE_BANNER, DLG_IMG_TITLE_ERROR, INFO_MESSAGE, WARNING_MESSAGE`

### Fields inherited from class org.eclipse.jface.dialogs.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 org.eclipse.jface.window.Window

`CANCEL, OK, resizeHasOccurred`

### Constructor Summary

Constructors
`WizardDialog​(Shell parentShell, IWizard newWizard)` Creates a new wizard dialog for the given wizard.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addPageChangedListener​(IPageChangedListener listener)` Adds a listener for page changes in this page change provider.
`void` `addPageChangingListener​(IPageChangingListener listener)` Adds a listener for page changes to the list of page changing listeners registered for this dialog.
`protected void` `backPressed()` The Back button has been pressed.
`protected void` `buttonPressed​(int buttonId)` Notifies that this dialog's button with the given id has been pressed.
`protected void` `cancelPressed()` Notifies that the cancel button of this dialog 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 newShell)` Configures the given shell in preparation for opening this window in it.
`protected void` `createButtonsForButtonBar​(Composite parent)` Creates the buttons for this dialog's button bar.
`protected Control` `createContents​(Composite parent)` The `WizardDialog` implementation of this `Window` method calls call `IWizard.addPages` to allow the current wizard to add extra pages, then `super.createContents` to create the controls.
`protected Control` `createDialogArea​(Composite parent)` Creates and returns the contents of the upper part of this dialog (above the button bar).
`protected ProgressMonitorPart` `createProgressMonitorPart​(Composite composite, GridLayout pmlayout)` Hook method for subclasses to create a custom progress monitor part.
`protected void` `finishPressed()` The Finish button has been pressed.
`protected void` `firePageChanged​(PageChangedEvent event)` Notifies any selection changed listeners that the selected page has changed.
`protected void` `firePageChanging​(PageChangingEvent event)` Notifies any page changing listeners that the currently selected dialog page is changing.
`protected Button` `getButton​(int id)` Return the cancel button if the id is a the cancel id.
`IWizardPage` `getCurrentPage()` Returns the current wizard page for this container.
`protected IProgressMonitor` `getProgressMonitor()` Returns the progress monitor for this wizard dialog (if it has one).
`Object` `getSelectedPage()` Returns the currently selected page in the dialog.
`int` `getShellStyle()` Returns the shell style bits.
`protected IWizard` `getWizard()` Returns the wizard this dialog is currently displaying.
`protected void` `helpPressed()` The Help button has been pressed.
`boolean` `isModal()`
`protected void` `nextPressed()` The Next button has been pressed.
`void` `removePageChangedListener​(IPageChangedListener listener)` Removes the given page change listener from this page change provider.
`void` `removePageChangingListener​(IPageChangingListener listener)` Removes the provided page changing listener from the list of page changing listeners registered for the dialog.
`void` `run​(boolean fork, boolean cancelable, IRunnableWithProgress runnable)` This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) blocks until the runnable has been run, regardless of the value of `fork`.
`protected void` `setButtonLayoutData​(Button button)` Set the layout data of the button to a GridData with appropriate heights and widths.
`void` `setMinimumPageSize​(int minWidth, int minHeight)` Sets the minimum page size used for the pages.
`void` `setMinimumPageSize​(Point size)` Sets the minimum page size used for the pages.
`WizardDialog` `setModal​(boolean modal)` Option to set the modality of the WizardDialog.
`void` `setPageSize​(int width, int height)` Sets the size of all pages.
`void` `setPageSize​(Point size)` Sets the size of all pages.
`void` `setShellStyle​(int newShellStyle)` Sets the shell style of the wizard dialog.
`protected void` `setWizard​(IWizard newWizard)` Sets the wizard this dialog is currently displaying.
`void` `showPage​(IWizardPage page)` Makes the given page visible.
`protected void` `update()` Updates this dialog's controls to reflect the current page.
`void` `updateButtons()` Adjusts the enable state of the Back, Next, and Finish buttons to reflect the state of the currently active page in this container.
`void` `updateMessage()` Updates the message (or error message) shown in the message line to reflect the state of the currently active page in this container.
`void` `updateSize()` Updates the window size to reflect the state of the current wizard.
`protected void` `updateSize​(IWizardPage page)` Computes the correct dialog size for the current page and resizes its shell if necessary.
`void` `updateTitleBar()` Updates the title bar (title, description, and image) to reflect the state of the currently active page in this container.
`void` `updateWindowTitle()` Updates the window title to reflect the state of the current wizard.

### Methods inherited from class org.eclipse.jface.dialogs.TitleAreaDialog

`getErrorMessage, getInitialSize, getMessage, getTitleArea, getTitleImageLabel, setErrorMessage, setMessage, setMessage, setTitle, setTitleAreaColor, setTitleImage`

### Methods inherited from class org.eclipse.jface.dialogs.TrayDialog

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

### Methods inherited from class org.eclipse.jface.dialogs.Dialog

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

### Methods inherited from class org.eclipse.jface.window.Window

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

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface org.eclipse.jface.wizard.IWizardContainer

`getShell`

### Field Detail

#### WIZ_IMG_ERROR

    public static final String WIZ_IMG_ERROR

Image registry key for error message image (value `"dialog_title_error_image"`).

See Also:
  Constant Field Values

### Constructor Detail

#### WizardDialog

    public WizardDialog​(Shell parentShell,
                        IWizard newWizard)

Creates a new wizard dialog for the given wizard.

Parameters:
  `parentShell` - the parent shell
  `newWizard` - the wizard this dialog is working on

### Method Detail

#### setShellStyle

    public void setShellStyle​(int newShellStyle)

Sets the shell style of the wizard dialog.

Examples:
To use the default style without the SWT.APPLICATION_MODAL bit:
`setShellStyle(getShellStyle() & ~SWT.APPLICATION_MODAL)`

To use the default style without the SWT.RESIZE bit:
`setShellStyle(getShellStyle() & ~SWT.RESIZE)`

Sets the shell style bits. This method has no effect after the shell is created.

The shell style bits are used by the framework method `createShell` when creating this window's shell.

Overrides:
  `setShellStyle` in class `Window`
Parameters:
  `newShellStyle` - the new shell style bits
See Also:
  `setModal(boolean)`

#### getShellStyle

    public int getShellStyle()

Description copied from class: `Window`
Returns the shell style bits.

The default value is `SWT.CLOSE|SWT.MIN|SWT.MAX|SWT.RESIZE`. Subclasses should call `setShellStyle` to change this value, rather than overriding this method.

Overrides:
  `getShellStyle` in class `Window`
Returns:
  the shell style bits

#### setModal

    public WizardDialog setModal​(boolean modal)

Option to set the modality of the WizardDialog. This method must be called before the dialog's shell is created, e.g. before you call `Window.open()` for the first time.

Parameters:
  `modal` - true (default) if the WizardDialog should block the underlying window.
Returns:
  this WizardDialog
Since:
  3.16

#### isModal

    public boolean isModal()

Returns:
  `false` if the user interface blocks the underlying window (modal) or `true` if the underlying window is not blocked.
Since:
  3.16
See Also:
  `setModal(boolean)`, `setShellStyle(int)`

#### backPressed

    protected void backPressed()

The Back button has been pressed.

#### buttonPressed

    protected void buttonPressed​(int buttonId)

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:
  `buttonId` - the id of the button that was pressed (see `IDialogConstants.*_ID` constants)

#### cancelPressed

    protected void cancelPressed()

Description copied from class: `Dialog`
Notifies that the cancel button of this dialog has been pressed.

The `Dialog` implementation of this framework method sets this dialog's return code to `Window.CANCEL` and closes the dialog. Subclasses may override if desired.

Overrides:
  `cancelPressed` in class `Dialog`

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

#### configureShell

    protected void configureShell​(Shell newShell)

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:
  `newShell` - the shell

#### createButtonsForButtonBar

    protected void createButtonsForButtonBar​(Composite parent)

Creates the buttons for this dialog's button bar.

The `WizardDialog` implementation of this framework method prevents the parent composite's columns from being made equal width in order to remove the margin between the Back and Next buttons.

Overrides:
  `createButtonsForButtonBar` in class `Dialog`
Parameters:
  `parent` - the parent composite to contain the buttons

#### setButtonLayoutData

    protected void setButtonLayoutData​(Button button)

Description copied from class: `Dialog`
Set the layout data of the button to a GridData with appropriate heights and widths.

Overrides:
  `setButtonLayoutData` in class `Dialog`
Parameters:
  `button` - The button which layout data is to be set.

#### getButton

    protected Button getButton​(int id)

Return the cancel button if the id is a the cancel id.

Overrides:
  `getButton` in class `Dialog`
Parameters:
  `id` - the button id
Returns:
  the button corresponding to the button id
See Also:
  `Dialog.createButton(Composite, int, String, boolean)`

#### createContents

    protected Control createContents​(Composite parent)

The `WizardDialog` implementation of this `Window` method calls call `IWizard.addPages` to allow the current wizard to add extra pages, then `super.createContents` to create the controls. It then calls `IWizard.createPageControls` to allow the wizard to pre-create their page controls prior to opening, so that the wizard opens to the correct size. And finally it shows the first page.

Overrides:
  `createContents` in class `TitleAreaDialog`
Parameters:
  `parent` - the parent composite for the controls in this window. The type of layout used is determined by getLayout()
Returns:
  the control that will be returned by subsequent calls to getContents()

#### createDialogArea

    protected Control createDialogArea​(Composite parent)

Description copied from class: `TitleAreaDialog`
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 no margins and spacing. Subclasses should override.

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

#### createProgressMonitorPart

    protected ProgressMonitorPart createProgressMonitorPart​(Composite composite,
                                                            GridLayout pmlayout)

Hook method for subclasses to create a custom progress monitor part.

The default implementation creates a progress monitor with a stop button will be created.

Parameters:
  `composite` - the parent composite
  `pmlayout` - the layout
Returns:
  ProgressMonitorPart the progress monitor part

#### finishPressed

    protected void finishPressed()

The Finish button has been pressed.

#### getCurrentPage

    public IWizardPage getCurrentPage()

Description copied from interface: `IWizardContainer`
Returns the current wizard page for this container.

Specified by:
  `getCurrentPage` in interface `IWizardContainer`
Returns:
  the current wizard page, or `null` if the container is not yet showing the wizard
See Also:
  `IWizardContainer.showPage(org.eclipse.jface.wizard.IWizardPage)`

#### getProgressMonitor

    protected IProgressMonitor getProgressMonitor()

Returns the progress monitor for this wizard dialog (if it has one).

Returns:
  the progress monitor, or `null` if this wizard dialog does not have one

#### getWizard

    protected IWizard getWizard()

Returns the wizard this dialog is currently displaying.

Returns:
  the current wizard

#### helpPressed

    protected void helpPressed()

The Help button has been pressed.

#### nextPressed

    protected void nextPressed()

The Next button has been pressed.

#### run

    public void run​(boolean fork,
                    boolean cancelable,
                    IRunnableWithProgress runnable)
             throws InvocationTargetException,
                    InterruptedException

This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) blocks until the runnable has been run, regardless of the value of `fork`. It is recommended that `fork` is set to true in most cases. If `fork` is set to `false`, the runnable will run in the UI thread and it is the runnable's responsibility to call `Display.readAndDispatch()` to ensure UI responsiveness. UI state is saved prior to executing the long-running operation and is restored after the long-running operation completes executing. Any attempt to change the UI state of the wizard in the long-running operation will be nullified when original UI state is restored.

Specified by:
  `run` in interface `IRunnableContext`
Parameters:
  `fork` - `true` if the runnable should be run in a separate thread, and `false` to run in the same thread
  `cancelable` - `true` to enable the cancelation, and `false` to make the operation uncancellable
  `runnable` - the runnable to run
Throws:
  `InvocationTargetException` - wraps any exception or error which occurs while running the runnable
  `InterruptedException` - propagated by the context if the runnable acknowledges cancelation by throwing this exception. This should not be thrown if cancelable is `false`.

#### setMinimumPageSize

    public void setMinimumPageSize​(int minWidth,
                                   int minHeight)

Sets the minimum page size used for the pages.

Parameters:
  `minWidth` - the minimum page width
  `minHeight` - the minimum page height
See Also:
  `setMinimumPageSize(Point)`

#### setMinimumPageSize

    public void setMinimumPageSize​(Point size)

Sets the minimum page size used for the pages.

Parameters:
  `size` - the page size encoded as `new Point(width,height)`
See Also:
  `setMinimumPageSize(int,int)`

#### setPageSize

    public void setPageSize​(int width,
                            int height)

Sets the size of all pages. The given size takes precedence over computed sizes.

Parameters:
  `width` - the page width
  `height` - the page height
See Also:
  `setPageSize(Point)`

#### setPageSize

    public void setPageSize​(Point size)

Sets the size of all pages. The given size takes precedence over computed sizes.

Parameters:
  `size` - the page size encoded as `new Point(width,height)`
See Also:
  `setPageSize(int,int)`

#### setWizard

    protected void setWizard​(IWizard newWizard)

Sets the wizard this dialog is currently displaying.

Parameters:
  `newWizard` - the wizard

#### showPage

    public void showPage​(IWizardPage page)

Description copied from interface: `IWizardContainer`
Makes the given page visible.

This method should not be use for normal page sequencing (back, next) which is handled by the container itself. It may, however, be used to move to another page in response to some custom action such as double clicking in a list.

Specified by:
  `showPage` in interface `IWizardContainer`
Parameters:
  `page` - the page to show
See Also:
  `IWizardContainer.getCurrentPage()`

#### update

    protected void update()

Updates this dialog's controls to reflect the current page.

#### updateButtons

    public void updateButtons()

Description copied from interface: `IWizardContainer`
Adjusts the enable state of the Back, Next, and Finish buttons to reflect the state of the currently active page in this container.

This method is called by the container itself when its wizard page changes and may be called by the page at other times to force a button state update.

Specified by:
  `updateButtons` in interface `IWizardContainer`

#### updateMessage

    public void updateMessage()

Description copied from interface: `IWizardContainer`
Updates the message (or error message) shown in the message line to reflect the state of the currently active page in this container.

This method is called by the container itself when its wizard page changes and may be called by the page at other times to force a message update.

Specified by:
  `updateMessage` in interface `IWizardContainer`

#### updateSize

    protected void updateSize​(IWizardPage page)

Computes the correct dialog size for the current page and resizes its shell if necessary. Also causes the container to refresh its layout.

Parameters:
  `page` - the wizard page to use to resize the dialog
Since:
  2.0

#### updateSize

    public void updateSize()

Description copied from interface: `IWizardContainer2`
Updates the window size to reflect the state of the current wizard.

This method is called by the container itself when its wizard changes and may be called by the wizard at other times to force a window size change.

Specified by:
  `updateSize` in interface `IWizardContainer2`

#### updateTitleBar

    public void updateTitleBar()

Description copied from interface: `IWizardContainer`
Updates the title bar (title, description, and image) to reflect the state of the currently active page in this container.

This method is called by the container itself when its wizard page changes and may be called by the page at other times to force a title bar update.

Specified by:
  `updateTitleBar` in interface `IWizardContainer`

#### updateWindowTitle

    public void updateWindowTitle()

Description copied from interface: `IWizardContainer`
Updates the window title to reflect the state of the current wizard.

This method is called by the container itself when its wizard changes and may be called by the wizard at other times to force a window title change.

Specified by:
  `updateWindowTitle` in interface `IWizardContainer`

#### getSelectedPage

    public Object getSelectedPage()

Description copied from interface: `IPageChangeProvider`
Returns the currently selected page in the dialog.

Specified by:
  `getSelectedPage` in interface `IPageChangeProvider`
Returns:
  the selected page in the dialog or `null` if none is selected. The type may be domain specific. In the JFace provided dialogs this will be an instance of `IDialogPage`.

#### addPageChangedListener

    public void addPageChangedListener​(IPageChangedListener listener)

Description copied from interface: `IPageChangeProvider`
Adds a listener for page changes in this page change provider. Has no effect if an identical listener is already registered.

Specified by:
  `addPageChangedListener` in interface `IPageChangeProvider`
Parameters:
  `listener` - a page changed listener

#### removePageChangedListener

    public void removePageChangedListener​(IPageChangedListener listener)

Description copied from interface: `IPageChangeProvider`
Removes the given page change listener from this page change provider. Has no effect if an identical listener is not registered.

Specified by:
  `removePageChangedListener` in interface `IPageChangeProvider`
Parameters:
  `listener` - a page changed listener

#### firePageChanged

    protected void firePageChanged​(PageChangedEvent event)

Notifies any selection changed listeners that the selected page has changed. Only listeners registered at the time this method is called are notified.

Parameters:
  `event` - a selection changed event
Since:
  3.1
See Also:
  `IPageChangedListener.pageChanged(org.eclipse.jface.dialogs.PageChangedEvent)`

#### addPageChangingListener

    public void addPageChangingListener​(IPageChangingListener listener)

Adds a listener for page changes to the list of page changing listeners registered for this dialog. Has no effect if an identical listener is already registered.

Parameters:
  `listener` - a page changing listener
Since:
  3.3

#### removePageChangingListener

    public void removePageChangingListener​(IPageChangingListener listener)

Removes the provided page changing listener from the list of page changing listeners registered for the dialog.

Parameters:
  `listener` - a page changing listener
Since:
  3.3

#### firePageChanging

    protected void firePageChanging​(PageChangingEvent event)

Notifies any page changing listeners that the currently selected dialog page is changing. Only listeners registered at the time this method is called are notified.

Parameters:
  `event` - a selection changing event
Since:
  3.3
See Also:
  `IPageChangingListener.handlePageChanging(PageChangingEvent)`