Package org.eclipse.handly.ui.quickoutline

# Class HandlyOutlinePopup

java.lang.Object
org.eclipse.jface.window.Window
org.eclipse.jface.dialogs.PopupDialog
org.eclipse.handly.ui.quickoutline.OutlinePopup
org.eclipse.handly.ui.quickoutline.FilteringOutlinePopup
org.eclipse.handly.ui.quickoutline.HandlyOutlinePopup

All Implemented Interfaces:
  `IContentAdapterProvider`, `org.eclipse.jface.window.IShellProvider`

Direct Known Subclasses:
  `HandlyXtextOutlinePopup`

public abstract class HandlyOutlinePopup extends FilteringOutlinePopup implements IContentAdapterProvider
A partial implementation of Handly-based outline popup. This class is intended to be used with a text-based host such as a text editor.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.eclipse.handly.ui.quickoutline.FilteringOutlinePopup

  `FilteringOutlinePopup.ElementMatcher, FilteringOutlinePopup.FilteringOutlineTreeViewer, FilteringOutlinePopup.StringMatcher`

  ## Nested classes/interfaces inherited from class org.eclipse.handly.ui.quickoutline.OutlinePopup

  `OutlinePopup.OutlineTreeViewer`

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

  `org.eclipse.jface.window.Window.IExceptionHandler`

- ## Field Summary

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

  `HOVER_SHELLSTYLE, INFOPOPUP_SHELLSTYLE, INFOPOPUPRESIZE_SHELLSTYLE, POPUP_HORIZONTALSPACING, POPUP_IMG_MENU, POPUP_IMG_MENU_DISABLED, POPUP_MARGINHEIGHT, POPUP_MARGINWIDTH, POPUP_VERTICALSPACING`

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

  `CANCEL, OK, resizeHasOccurred`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HandlyOutlinePopup()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected Object`
  `computeInput()`
  Computes the input element for the outline popup's tree viewer.
  `IContentAdapter`
  `getContentAdapter()`
  Returns the content adapter that defines a mapping between elements of a Handly-based model and the outline's content.
  `protected Object`
  `getCorrespondingElement(org.eclipse.jface.viewers.ISelection hostSelection)`
  Returns the outline element corresponding to the given host selection.
  `protected abstract IInputElementProvider`
  `getInputElementProvider()`
  Returns the input element provider for this outline popup.
  `protected boolean`
  `isInHost(IElement element)`
  Returns whether the given element is contained in the host of this outline popup.
  `protected boolean`
  `revealInHost(Object outlineElement)`
  Attempts to reveal the given outline element in the outline popup's host.

  ### Methods inherited from class org.eclipse.handly.ui.quickoutline.FilteringOutlinePopup

  `createFilterText, createPatternMatcher, createTitleControl, createTitleMenuArea, createTreeViewer, getFilterText, getFocalElement, getFocusControl, getPatternMatcher, init, patternMatcherUpdated, selectFirstMatch, setTabOrder, updatePatternMatcher`

  ### Methods inherited from class org.eclipse.handly.ui.quickoutline.OutlinePopup

  `changeOutlineMode, computeInitialSelection, createDialogArea, getContentProvider, getDefaultLocation, getDialogSettings, getHost, getInitialSelection, getInvokingKeyListener, getInvokingKeyStroke, getLabelProvider, getSelectedElement, getTreeViewer, gotoSelectedElement, initDecorationContext, isAutoExpandable, shouldUseHashlookup, updateInfoText`

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

  `adjustBounds, applyBackgroundColor, applyForegroundColor, close, configureShell, createContents, createInfoTextArea, fillDialogMenu, getBackground, getBackgroundColorExclusions, getDefaultSize, getForeground, getForegroundColorExclusions, getInitialLocation, getInitialSize, getPersistLocation, getPersistSize, hasInfoArea, hasTitleArea, open, saveDialogBounds, setInfoText, setTitleText, showDialogMenu`

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

  `canHandleShellCloseEvent, constrainShellSize, create, createShell, getConstrainedShellBounds, getContents, getDefaultImage, getDefaultImages, getDefaultOrientation, getLayout, getParentShell, getReturnCode, getShell, getShellListener, getShellStyle, getWindowManager, handleFontChange, handleShellCloseEvent, initializeBounds, 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 Details

  - ### HandlyOutlinePopup

    public HandlyOutlinePopup()

- ## Method Details

  - ### getContentAdapter

    public IContentAdapter getContentAdapter()
    Returns the content adapter that defines a mapping between elements of a Handly-based model and the outline's content.

    Default implementation returns a `NullContentAdapter`. Subclasses may override.

    Specified by:
      `getContentAdapter` in interface `IContentAdapterProvider`
    Returns:
      an `IContentAdapter` (never `null`)

  - ### computeInput

    protected Object computeInput()
    Computes the input element for the outline popup's tree viewer. This method is called once, when the popup's control is created.

    This implementation uses the `input element provider` to obtain an `IElement` corresponding to the editor input for the outline popup's host and returns an outline element corresponding to the `IElement`, as determined by the `content adapter`.

    Specified by:
      `computeInput` in class `OutlinePopup`
    Returns:
      the input element (may be `null`)

  - ### getCorrespondingElement

    protected Object getCorrespondingElement(org.eclipse.jface.viewers.ISelection hostSelection)
    Returns the outline element corresponding to the given host selection.

    If the given selection is a text selection, this implementation finds the smallest `ISourceElement` that includes the offset of the text selection and returns an outline element corresponding to the found source element, as determined by the `content adapter`.

    Specified by:
      `getCorrespondingElement` in class `OutlinePopup`
    Parameters:
      `hostSelection` - the host selection (never `null`, never empty)
    Returns:
      the outline element corresponding to the host selection, or `null` if there is no such element

  - ### revealInHost

    protected boolean revealInHost(Object outlineElement)
    Attempts to reveal the given outline element in the outline popup's host.

    This implementation attempts to adapt the given outline element to an `IElement` through the `content adapter`. If the adapter element is an `ISourceElement` and is contained in the host as computed by `isInHost(IElement)`, the identifying range of the source element is selected in the outline popup's host.

    Specified by:
      `revealInHost` in class `OutlinePopup`
    Parameters:
      `outlineElement` - the outline element (never `null`)
    Returns:
      `true` if the element was successfully revealed; `false` otherwise

  - ### isInHost

    protected boolean isInHost(IElement element)
    Returns whether the given element is contained in the host of this outline popup.

    This implementation uses the `input element provider` to obtain an `IElement` corresponding to the editor input for the host. It then checks whether the `IElement` `contains` the given element and returns the result.

    Parameters:
      `element` - may be `null`
    Returns:
      `true` if the element is contained in the host; `false` otherwise

  - ### getInputElementProvider

    protected abstract IInputElementProvider getInputElementProvider()
    Returns the input element provider for this outline popup.
    Returns:
      the input element provider for this outline popup