Package org.eclipse.ui.dialogs

## Class ListSelectionDialog

- java.lang.Object
- - org.eclipse.jface.window.Window
  - - org.eclipse.jface.dialogs.Dialog
    - - org.eclipse.jface.dialogs.TrayDialog
      - - org.eclipse.ui.dialogs.SelectionDialog
        - - org.eclipse.ui.dialogs.ListSelectionDialog

All Implemented Interfaces:
  `IShellProvider`

Direct Known Subclasses:
  `YesNoCancelListSelectionDialog`

    public class ListSelectionDialog
    extends SelectionDialog

A standard dialog which solicits a list of selections from the user. This class is configured with an arbitrary data model represented by content and label provider objects. The `getResult` method returns the selected elements.

This class may be instantiated; it is not intended to be subclassed.

Example:

     ListSelectionDialog dlg = new ListSelectionDialog(getShell(), input, new BaseWorkbenchContentProvider(),
                    new WorkbenchLabelProvider(), "Select the resources to save:");
     dlg.setInitialSelections(dirtyEditors);
     dlg.setTitle("Save Resources");
     dlg.open();

Restriction:
  This class is not intended to be subclassed by clients.

### Nested Class Summary

Nested Classes
`static class` `ListSelectionDialog.Builder` The Builder to create `ListSelectionDialog` instances.

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

`Window.IExceptionHandler`

### Field Summary

### 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
`ListSelectionDialog​(Shell parentShell, Object input, IStructuredContentProvider contentProvider, ILabelProvider labelProvider, String message)` Deprecated. since 3.123; use `of(Object)` instead: `ListSelectionDialog.of(input).contentProvider(contentProvider).labelProvider(labelProvider).message(message).create(parentShell)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 Control` `createContents​(Composite parent)` The `Dialog` implementation of this `Window` method creates and lays out the top level composite for the dialog, and determines the appropriate horizontal and vertical dialog units based on the font size.
`protected Control` `createDialogArea​(Composite parent)` Creates and returns the contents of the upper part of this dialog (above the button bar).
`boolean` `getCheckboxValue()`
`protected CheckboxTableViewer` `getViewer()` Returns the viewer used to show the list.
`static ListSelectionDialog.Builder` `of​(Object input)` Creates a new `ListSelectionDialog` `ListSelectionDialog.Builder` for the given input.
`protected void` `okPressed()` The `ListSelectionDialog` implementation of this `Dialog` method builds a list of the selected elements for later retrieval by the client and closes this dialog.

### Methods inherited from class org.eclipse.ui.dialogs.SelectionDialog

`createMessageArea, getDialogBoundsSettings, getDialogBoundsStrategy, getInitialElementSelections, getInitialSelections, getMessage, getOkButton, getResult, isResizable, setDialogBoundsSettings, setInitialElementSelections, setInitialSelections, setMessage, setResult, setSelectionResult, setTitle`

### 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, buttonPressed, cancelPressed, close, convertHeightInCharsToPixels, convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, convertWidthInCharsToPixels, create, createButton, dialogFontIsDefault, getBlockedHandler, getButton, getButtonBar, getCancelButton, getDialogArea, getImage, getInitialLocation, getInitialSize, getOKButton, initializeBounds, initializeDialogUnits, setBlockedHandler, setButtonLayoutData, setButtonLayoutFormData, shortenText`

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

`canHandleShellCloseEvent, 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 java.lang.Object

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

### Constructor Detail

#### ListSelectionDialog

    @Deprecated
    public ListSelectionDialog​(Shell parentShell,
                               Object input,
                               IStructuredContentProvider contentProvider,
                               ILabelProvider labelProvider,
                               String message)

Deprecated.
since 3.123; use `of(Object)` instead: `ListSelectionDialog.of(input).contentProvider(contentProvider).labelProvider(labelProvider).message(message).create(parentShell)`
Creates a list selection dialog.

Parameters:
  `parentShell` - the parent shell
  `input` - the root element to populate this dialog with
  `contentProvider` - the content provider for navigating the model
  `labelProvider` - the label provider for displaying model elements
  `message` - the message to be displayed at the top of this dialog, or `null` to display a default message

### Method Detail

#### of

    public static ListSelectionDialog.Builder of​(Object input)

Creates a new `ListSelectionDialog` `ListSelectionDialog.Builder` for the given input.

Example:

     ListSelectionDialog dialog = ListSelectionDialog.of(input).title(title).message(message).create(shell);

Parameters:
  `input` - the root element to populate this dialog with
Returns:
  a new `ListSelectionDialog.Builder` instance
Since:
  3.123

#### 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 `SelectionDialog`
Parameters:
  `shell` - the shell

#### createContents

    protected Control createContents​(Composite parent)

Description copied from class: `Dialog`
The `Dialog` implementation of this `Window` method creates and lays out the top level composite for the dialog, and determines the appropriate horizontal and vertical dialog units based on the font size. It then calls the `createDialogArea` and `createButtonBar` methods to create the dialog area and button bar, respectively. Overriding `createDialogArea` and `createButtonBar` are recommended rather than overriding this method.

Overrides:
  `createContents` in class `Dialog`
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: `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

#### 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 `SelectionDialog`
Parameters:
  `parent` - the button bar composite

#### getViewer

    protected CheckboxTableViewer getViewer()

Returns the viewer used to show the list.

Returns:
  the viewer, or `null` if not yet created

#### getCheckboxValue

    public boolean getCheckboxValue()

Returns:
  the current or, if the dialog has been closed, the last value of the optional check box; `false` when there is no optional check box and no default value has been set
Since:
  3.123

#### okPressed

    protected void okPressed()

The `ListSelectionDialog` implementation of this `Dialog` method builds a list of the selected elements for later retrieval by the client and closes this dialog.

Overrides:
  `okPressed` in class `Dialog`