Package org.eclipse.handly.ui.workingset

## Class AbstractWorkingSetPage

- java.lang.Object
- - org.eclipse.jface.dialogs.DialogPage
  - - org.eclipse.jface.wizard.WizardPage
    - - org.eclipse.handly.ui.workingset.AbstractWorkingSetPage

- All Implemented Interfaces:
    `org.eclipse.jface.dialogs.IDialogPage`, `org.eclipse.jface.dialogs.IMessageProvider`, `org.eclipse.jface.wizard.IWizardPage`, `org.eclipse.ui.dialogs.IWorkingSetPage`

      public abstract class AbstractWorkingSetPage
      extends org.eclipse.jface.wizard.WizardPage
      implements org.eclipse.ui.dialogs.IWorkingSetPage

  A partial implementation of `IWorkingSetPage`. A tree viewer on the left is used to show the workspace content, a table viewer on the right is used to show the working set content. Buttons to move content from right to left and vice versa are available between the two viewers. A text field allows to set/change the working set name.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static org.eclipse.core.runtime.IAdaptable[]` | `NO_ELEMENTS` | A zero-length array of the runtime type `IAdaptable[]`.

    - ### Fields inherited from interface org.eclipse.jface.dialogs.IMessageProvider

      `ERROR, INFORMATION, NONE, WARNING`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractWorkingSetPage​(java.lang.String pageName, java.lang.String title, org.eclipse.jface.resource.ImageDescriptor titleImage)` | Creates a new wizard page with the given name, title, and image.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected org.eclipse.core.runtime.IAdaptable[]` | `adaptElements​(org.eclipse.core.runtime.IAdaptable[] objects)` | Transforms the supplied elements into elements that are suitable for containment in the working set configured by this page.
    `protected abstract void` | `configureTable​(org.eclipse.jface.viewers.TableViewer table)` | Configures the table viewer on the right side of this page.
    `protected abstract void` | `configureTree​(org.eclipse.jface.viewers.TreeViewer tree)` | Configures the tree viewer on the left side of this page.
    `void` | `createControl​(org.eclipse.swt.widgets.Composite parent)` |
    `void` | `finish()` |
    `protected static org.eclipse.core.runtime.IAdaptable[]` | `getAdaptables​(java.lang.Object[] elements)` | Given an array, selects the `IAdaptable` elements.
    `protected org.eclipse.core.runtime.IAdaptable[]` | `getFinalWorkingSetElements​(org.eclipse.ui.IWorkingSet workingSet, org.eclipse.core.runtime.IAdaptable[] elements)` | Returns the elements that are to be set into the working set configured by this page.
    `protected org.eclipse.jface.viewers.IStructuredSelection` | `getInitialSelection()` | Returns the selection used as a basis for the initial state of this page.
    `protected org.eclipse.core.runtime.IAdaptable[]` | `getInitialWorkingSetElements​(org.eclipse.ui.IWorkingSet workingSet)` | Returns the elements that are to be shown in the table viewer initially.
    `protected abstract java.lang.String` | `getPageId()` | Returns the page id as specified in the extension point `org.eclipse.ui.workingSets`.
    `org.eclipse.ui.IWorkingSet` | `getSelection()` |
    `protected void` | `initializeTreeSelection​(org.eclipse.jface.viewers.TreeViewer tree)` | Computes and sets the initial selection for the tree viewer.
    `void` | `setInitialSelection​(org.eclipse.jface.viewers.IStructuredSelection selection)` | Sets the selection used as a basis for the initial state of this page.
    `void` | `setSelection​(org.eclipse.ui.IWorkingSet workingSet)` |

    - ### Methods inherited from class org.eclipse.jface.wizard.WizardPage

      `canFlipToNextPage, getContainer, getDialogSettings, getImage, getName, getNextPage, getPreviousPage, getShell, getWizard, isCurrentPage, isPageComplete, setDescription, setErrorMessage, setImageDescriptor, setMessage, setPageComplete, setPreviousPage, setTitle, setWizard, toString`

    - ### Methods inherited from class org.eclipse.jface.dialogs.DialogPage

      `convertHeightInCharsToPixels, convertHorizontalDLUsToPixels, convertVerticalDLUsToPixels, convertWidthInCharsToPixels, dispose, getControl, getDescription, getDialogFontName, getErrorMessage, getFont, getMessage, getMessageType, getTitle, getToolTipText, initializeDialogUnits, isControlCreated, performHelp, setButtonLayoutData, setControl, setMessage, setVisible`

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

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

    - ### Methods inherited from interface org.eclipse.jface.dialogs.IDialogPage

      `dispose, getControl, getDescription, getErrorMessage, getImage, getMessage, getTitle, performHelp, setDescription, setImageDescriptor, setTitle, setVisible`

    - ### Methods inherited from interface org.eclipse.jface.wizard.IWizardPage

      `canFlipToNextPage, getName, getNextPage, getPreviousPage, getWizard, isPageComplete, setPreviousPage, setWizard`

- - ### Field Detail

    - #### NO_ELEMENTS

          protected static final org.eclipse.core.runtime.IAdaptable[] NO_ELEMENTS

      A zero-length array of the runtime type `IAdaptable[]`.

  - ### Constructor Detail

    - #### AbstractWorkingSetPage

          public AbstractWorkingSetPage​(java.lang.String pageName,
                                        java.lang.String title,
                                        org.eclipse.jface.resource.ImageDescriptor titleImage)

      Creates a new wizard page with the given name, title, and image.
      Parameters:
        `pageName` - the name of the page (not `null`)
        `title` - the title for this wizard page, or `null` if none
        `titleImage` - the image descriptor for the title of this wizard page, or `null` if none

  - ### Method Detail

    - #### setInitialSelection

          public void setInitialSelection​(org.eclipse.jface.viewers.IStructuredSelection selection)

      Sets the selection used as a basis for the initial state of this page.
      Parameters:
        `selection` - may be `null` or empty

    - #### createControl

          public void createControl​(org.eclipse.swt.widgets.Composite parent)

      Specified by:
        `createControl` in interface `org.eclipse.jface.dialogs.IDialogPage`

    - #### finish

          public void finish()

      Specified by:
        `finish` in interface `org.eclipse.ui.dialogs.IWorkingSetPage`

    - #### getSelection

          public org.eclipse.ui.IWorkingSet getSelection()

      Specified by:
        `getSelection` in interface `org.eclipse.ui.dialogs.IWorkingSetPage`

    - #### setSelection

          public void setSelection​(org.eclipse.ui.IWorkingSet workingSet)

      Specified by:
        `setSelection` in interface `org.eclipse.ui.dialogs.IWorkingSetPage`

    - #### getPageId

          protected abstract java.lang.String getPageId()

      Returns the page id as specified in the extension point `org.eclipse.ui.workingSets`.
      Returns:
        the page id

    - #### configureTree

          protected abstract void configureTree​(org.eclipse.jface.viewers.TreeViewer tree)

      Configures the tree viewer on the left side of this page.

      Implementors must set:

      - The content provider
      - The label provider
      - The viewer input

      They may also set:

      - The viewer comparator
      - Any viewer filter

      Note that the initial selection is set in `initializeTreeSelection(TreeViewer)`, which is called right after this method.

      Parameters:
        `tree` - the tree viewer to configure (never `null`)

    - #### configureTable

          protected abstract void configureTable​(org.eclipse.jface.viewers.TableViewer table)

      Configures the table viewer on the right side of this page.

      Implementors must set:

      - The label provider

      They may also set:

      - The viewer comparator

      They must not set:

      - The content provider
      - The viewer input
      - Any viewer filter
      Parameters:
        `table` - the table viewer to configure (never `null`)

    - #### getInitialSelection

          protected final org.eclipse.jface.viewers.IStructuredSelection getInitialSelection()

      Returns the selection used as a basis for the initial state of this page.
      Returns:
        a selection (may be `null` or empty)

    - #### initializeTreeSelection

          protected void initializeTreeSelection​(org.eclipse.jface.viewers.TreeViewer tree)

      Computes and sets the initial selection for the tree viewer.

      If the working set that will be configured by this page exists, this implementation adapts the elements from `getInitialSelection()` using `adaptElements(IAdaptable[])` and sets the result as the current selection for the tree viewer.

      Parameters:
        `tree` - the tree viewer (never `null`)

    - #### adaptElements

          protected org.eclipse.core.runtime.IAdaptable[] adaptElements​(org.eclipse.core.runtime.IAdaptable[] objects)

      Transforms the supplied elements into elements that are suitable for containment in the working set configured by this page.

      This implementation creates a temporary working set, sets its id to `getPageId()`, and delegates to `IWorkingSet.adaptElements(IAdaptable[])`.

      Parameters:
        `objects` - the objects to transform (never `null`)
      Returns:
        an array of transformed elements that may be empty if no elements from the original array are suitable (not `null`)

    - #### getAdaptables

          protected static org.eclipse.core.runtime.IAdaptable[] getAdaptables​(java.lang.Object[] elements)

      Given an array, selects the `IAdaptable` elements.
      Parameters:
        `elements` - not `null`
      Returns:
        an array of the `IAdaptable` elements selected from the given array (never `null`)

    - #### getInitialWorkingSetElements

          protected org.eclipse.core.runtime.IAdaptable[] getInitialWorkingSetElements​(org.eclipse.ui.IWorkingSet workingSet)

      Returns the elements that are to be shown in the table viewer initially. Returns an empty array if the table viewer should be initially empty. The given working set is the working set that will be configured by this page, or `null` if it does not yet exist.

      This implementation returns the elements contained in the working set or, if the working set does not yet exist, the elements adapted from `getInitialSelection()` using `adaptElements(IAdaptable[])`.

      Parameters:
        `workingSet` - the working set to configure, or `null` if it does not yet exist
      Returns:
        the elements to show in the table viewer (not `null`)

    - #### getFinalWorkingSetElements

          protected org.eclipse.core.runtime.IAdaptable[] getFinalWorkingSetElements​(org.eclipse.ui.IWorkingSet workingSet,
                                                                                     org.eclipse.core.runtime.IAdaptable[] elements)

      Returns the elements that are to be set into the working set configured by this page.

      This implementation returns the given elements unchanged.

      Parameters:
        `workingSet` - the working set to configure, or `null` if it does not yet exist
        `elements` - the elements explicitly selected by the user (never `null`)
      Returns:
        the elements to ultimately set into the working set (not `null`)