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
-
-
Constructor Summary
Constructors Constructor Description HandlyOutlinePopup()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected java.lang.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 java.lang.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(java.lang.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, getPersistBounds, 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
-
-
-
-
Method Detail
-
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 interfaceIContentAdapterProvider
- Returns:
- an
IContentAdapter
(nevernull
)
-
computeInput
protected java.lang.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 anIElement
corresponding to the editor input for the outline popup's host and returns an outline element corresponding to theIElement
, as determined by thecontent adapter
.- Specified by:
computeInput
in classOutlinePopup
- Returns:
- the input element (may be
null
)
-
getCorrespondingElement
protected java.lang.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 thecontent adapter
.- Specified by:
getCorrespondingElement
in classOutlinePopup
- Parameters:
hostSelection
- the host selection (nevernull
, never empty)- Returns:
- the outline element corresponding to the host selection,
or
null
if there is no such element
-
revealInHost
protected boolean revealInHost(java.lang.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 thecontent adapter
. If the adapter element is anISourceElement
and is contained in the host as computed byisInHost(IElement)
, the identifying range of the source element is selected in the outline popup's host.- Specified by:
revealInHost
in classOutlinePopup
- Parameters:
outlineElement
- the outline element (nevernull
)- 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 anIElement
corresponding to the editor input for the host. It then checks whether theIElement
contains
the given element and returns the result.- Parameters:
element
- may benull
- 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
-
-