Class OutlinePopup

  • All Implemented Interfaces:
    org.eclipse.jface.window.IShellProvider
    Direct Known Subclasses:
    FilteringOutlinePopup

    public abstract class OutlinePopup
    extends org.eclipse.jface.dialogs.PopupDialog
    An abstract base implementation of an outline popup.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  OutlinePopup.OutlineTreeViewer
      A tree viewer for the OutlinePopup.
      • 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
      OutlinePopup()
      Creates a new outline popup.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void changeOutlineMode()
      Changes the mode of this outline popup.
      protected java.lang.Object computeInitialSelection()
      Computes the element to be selected initially in the outline popup's tree viewer.
      protected abstract java.lang.Object computeInput()
      Computes the input element for the outline popup's tree viewer.
      protected org.eclipse.swt.widgets.Control createDialogArea​(org.eclipse.swt.widgets.Composite parent)  
      protected org.eclipse.jface.viewers.TreeViewer createTreeViewer​(org.eclipse.swt.widgets.Composite parent)
      Creates a tree viewer for this outline popup.
      protected abstract org.eclipse.jface.viewers.ITreeContentProvider getContentProvider()
      Returns the content provider that is to be used by the outline popup's tree viewer.
      protected abstract java.lang.Object getCorrespondingElement​(org.eclipse.jface.viewers.ISelection hostSelection)
      Returns the outline element corresponding to the given host selection.
      protected org.eclipse.swt.graphics.Point getDefaultLocation​(org.eclipse.swt.graphics.Point initialSize)  
      protected org.eclipse.jface.dialogs.IDialogSettings getDialogSettings()  
      protected org.eclipse.swt.widgets.Control getFocusControl()  
      protected IOutlinePopupHost getHost()
      Returns the host of this outline popup.
      protected java.lang.Object getInitialSelection()
      Returns the initially selected outline element.
      protected org.eclipse.swt.events.KeyListener getInvokingKeyListener()
      Returns the invoking key listener.
      protected org.eclipse.jface.bindings.keys.KeyStroke getInvokingKeyStroke()
      Returns the keystroke for invoking this outline popup.
      protected abstract org.eclipse.jface.viewers.IBaseLabelProvider getLabelProvider()
      Returns the label provider that is to be used by the outline popup's tree viewer.
      protected java.lang.Object getSelectedElement()
      Returns the currently selected outline element.
      protected org.eclipse.jface.viewers.TreeViewer getTreeViewer()
      Returns the tree viewer of this outline popup.
      protected void gotoSelectedElement()
      Attempts to reveal the currently selected outline element in the outline popup's host.
      void init​(IOutlinePopupHost host, org.eclipse.jface.bindings.keys.KeyStroke invokingKeyStroke)
      Initializes this outline popup with the given host and, optionally, invoking keystroke.
      protected void initDecorationContext​(org.eclipse.jface.viewers.DecorationContext context)
      Hook to initialize decoration context.
      protected boolean isAutoExpandable​(org.eclipse.swt.widgets.TreeItem item)
      Returns whether the given tree item is auto-expandable.
      protected abstract boolean revealInHost​(java.lang.Object outlineElement)
      Attempts to reveal the given outline element in the outline popup's host.
      protected void setTabOrder​(org.eclipse.swt.widgets.Composite composite)  
      protected boolean shouldUseHashlookup()
      Returns whether the outline popup's tree viewer should use hash lookup.
      protected void updateInfoText()
      Updates the text to be shown in the popup's info area.
      • Methods inherited from class org.eclipse.jface.dialogs.PopupDialog

        adjustBounds, applyBackgroundColor, applyForegroundColor, close, configureShell, createContents, createInfoTextArea, createTitleControl, createTitleMenuArea, 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • OutlinePopup

        public OutlinePopup()
        Creates a new outline popup.

        Note: The parent shell will be set when this outline popup is initialized with its host.

        See Also:
        init(IOutlinePopupHost, KeyStroke)
    • Method Detail

      • init

        public void init​(IOutlinePopupHost host,
                         org.eclipse.jface.bindings.keys.KeyStroke invokingKeyStroke)
        Initializes this outline popup with the given host and, optionally, invoking keystroke. This method must be called by clients before attempting to open the outline popup.

        This method may be extended by subclasses. Subclasses must call the superclass implementation.

        OutlinePopup implementation of this method sets the parent shell to the shell of the SWT control of the given host, creates all controls of the outline popup, including the tree viewer, initializes the tree viewer with the content- and label providers as well as the input, and sets the initial selection in the tree viewer and the text in the popup's info area.

        Parameters:
        host - the host of this outline popup (not null)
        invokingKeyStroke - the keystroke for invoking this outline popup, or null if none
      • getHost

        protected final IOutlinePopupHost getHost()
        Returns the host of this outline popup.
        Returns:
        the host of this outline popup, or null if it has not been set yet
      • getInvokingKeyStroke

        protected final org.eclipse.jface.bindings.keys.KeyStroke getInvokingKeyStroke()
        Returns the keystroke for invoking this outline popup.
        Returns:
        the keystroke for invoking this outline popup, or null if none
      • getTreeViewer

        protected final org.eclipse.jface.viewers.TreeViewer getTreeViewer()
        Returns the tree viewer of this outline popup.
        Returns:
        the tree viewer of this outline popup, or null if it has not been created yet
      • getInitialSelection

        protected final java.lang.Object getInitialSelection()
        Returns the initially selected outline element.
        Returns:
        the initially selected outline element, or null if none
      • getSelectedElement

        protected final java.lang.Object getSelectedElement()
        Returns the currently selected outline element.
        Returns:
        the currently selected outline element, or null if none
      • getFocusControl

        protected org.eclipse.swt.widgets.Control getFocusControl()
        Overrides:
        getFocusControl in class org.eclipse.jface.dialogs.PopupDialog
      • setTabOrder

        protected void setTabOrder​(org.eclipse.swt.widgets.Composite composite)
        Overrides:
        setTabOrder in class org.eclipse.jface.dialogs.PopupDialog
      • getDefaultLocation

        protected org.eclipse.swt.graphics.Point getDefaultLocation​(org.eclipse.swt.graphics.Point initialSize)
        Overrides:
        getDefaultLocation in class org.eclipse.jface.dialogs.PopupDialog
      • getDialogSettings

        protected org.eclipse.jface.dialogs.IDialogSettings getDialogSettings()
        Overrides:
        getDialogSettings in class org.eclipse.jface.dialogs.PopupDialog
      • createDialogArea

        protected org.eclipse.swt.widgets.Control createDialogArea​(org.eclipse.swt.widgets.Composite parent)
        Overrides:
        createDialogArea in class org.eclipse.jface.dialogs.PopupDialog
      • createTreeViewer

        protected org.eclipse.jface.viewers.TreeViewer createTreeViewer​(org.eclipse.swt.widgets.Composite parent)
        Creates a tree viewer for this outline popup. The viewer has no input, no content provider, a default label provider, no sorter, and no filters. This method is called once, when the popup's control is created.

        This implementation returns a new instance of OutlinePopup.OutlineTreeViewer.

        Parameters:
        parent - the parent composite (never null)
        Returns:
        the created tree viewer (not null)
      • updateInfoText

        protected void updateInfoText()
        Updates the text to be shown in the popup's info area.

        This implementation sets a default text. Subclasses may override.

      • gotoSelectedElement

        protected void gotoSelectedElement()
        Attempts to reveal the currently selected outline element in the outline popup's host. If successful, closes this outline popup.

        This implementation uses revealInHost(Object) for revealing the currently selected outline element.

      • changeOutlineMode

        protected void changeOutlineMode()
        Changes the mode of this outline popup. This method is called when the invoking keystroke is pressed.

        Default implementation does nothing. Subclasses may override.

      • shouldUseHashlookup

        protected boolean shouldUseHashlookup()
        Returns whether the outline popup's tree viewer should use hash lookup. This method is called once, when the popup's control is created.

        Default implementation returns true. Subclasses may override.

        See Also:
        StructuredViewer.setUseHashlookup(boolean)
      • getContentProvider

        protected abstract org.eclipse.jface.viewers.ITreeContentProvider getContentProvider()
        Returns the content provider that is to be used by the outline popup's tree viewer. This method is called once, when the popup's control is created.
        Returns:
        the content provider (not null)
      • getLabelProvider

        protected abstract org.eclipse.jface.viewers.IBaseLabelProvider getLabelProvider()
        Returns the label provider that is to be used by the outline popup's tree viewer. This method is called once, when the popup's control is created.
        Returns:
        the label provider (not null)
      • computeInput

        protected abstract 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.
        Returns:
        the input element (may be null)
      • computeInitialSelection

        protected java.lang.Object computeInitialSelection()
        Computes the element to be selected initially in the outline popup's tree viewer. This method is called once, when the popup's control is created.

        This implementation obtains the current selection in the outline popup's host and delegates to getCorrespondingElement(ISelection) if the selection is not null or empty.

        Returns:
        the element to be selected initially in this outline popup, or null if none
      • getCorrespondingElement

        protected abstract java.lang.Object getCorrespondingElement​(org.eclipse.jface.viewers.ISelection hostSelection)
        Returns the outline element corresponding to the given host selection.
        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 abstract boolean revealInHost​(java.lang.Object outlineElement)
        Attempts to reveal the given outline element in the outline popup's host.
        Parameters:
        outlineElement - the outline element (never null)
        Returns:
        true if the element was successfully revealed; false otherwise
      • isAutoExpandable

        protected boolean isAutoExpandable​(org.eclipse.swt.widgets.TreeItem item)
        Returns whether the given tree item is auto-expandable. This method should be consulted by the tree viewer's expandXXX methods. If it returns false, the item is to be collapsed rather than expanded.

        Default implementation returns true for the root item and false for all other items. Subclasses may override.

        Parameters:
        item - the tree item (never null)
        Returns:
        true if the given item is auto-expandable; false otherwise
      • initDecorationContext

        protected void initDecorationContext​(org.eclipse.jface.viewers.DecorationContext context)
        Hook to initialize decoration context. Subclasses may extend.

        If this outline popup implements IContentAdapterProvider, default implementation registers this outline popup in the given context under the name IContentAdapterProvider.class.getName().

        Parameters:
        context - the decoration context (never null)
      • getInvokingKeyListener

        protected final org.eclipse.swt.events.KeyListener getInvokingKeyListener()
        Returns the invoking key listener. When the invoking key is pressed, this listener changes the mode of the outline popup and updates the text in the popup's info area.
        Returns:
        the invoking key listener (never null)