Interface IWorkbenchWindow

  • All Superinterfaces:
    IPageService, IRunnableContext, IServiceLocator, IShellProvider

    public interface IWorkbenchWindow
    extends IPageService, IRunnableContext, IServiceLocator, IShellProvider
    A workbench window is a top level window in a workbench. Visually, a workbench window has a menubar, a toolbar, a status bar, and a main area for displaying a single page consisting of a collection of views and editors.

    Each workbench window has a collection of 0 or more pages; the active page is the one that is being presented to the end user; at most one page is active in a window at a time.

    The workbench window supports a few services by default. If these services are used to allocate resources, it is important to remember to clean up those resources after you are done with them. Otherwise, the resources will exist until the workbench window is closed. The supported services are:

    This interface is not intended to be implemented by clients.

    See Also:
    IWorkbenchPage
    Restriction:
    This interface is not intended to be implemented by clients.
    • Method Detail

      • close

        boolean close()
        Closes this workbench window.

        If the window has an open editor with unsaved content, the user will be given the opportunity to save it.

        Returns:
        true if the window was successfully closed, and false if it is still open
      • getActivePage

        IWorkbenchPage getActivePage()
        Returns the currently active page for this workbench window.
        Specified by:
        getActivePage in interface IPageService
        Returns:
        the active page, or null if none
      • getPages

        IWorkbenchPage[] getPages()
        Returns a list of the pages in this workbench window.

        Note that each window has its own pages; pages are never shared between different windows.

        Returns:
        a list of pages
      • getPartService

        IPartService getPartService()
        Returns the part service which tracks part activation within this workbench window.
        Returns:
        the part service
      • getSelectionService

        ISelectionService getSelectionService()
        Returns the selection service which tracks selection within this workbench window.
        Returns:
        the selection service
      • getShell

        Shell getShell()
        Returns this workbench window's shell.
        Specified by:
        getShell in interface IShellProvider
        Returns:
        the shell containing this window's controls or null if the shell has not been created yet or if the window has been closed
      • getWorkbench

        IWorkbench getWorkbench()
        Returns the workbench for this window.
        Returns:
        the workbench
      • isApplicationMenu

        boolean isApplicationMenu​(String menuId)
        Returns whether the specified menu is an application menu as opposed to a part menu. Application menus contain items which affect the workbench or window. Part menus contain items which affect the active part (view or editor).

        This is typically used during "in place" editing. Application menus should be preserved during menu merging. All other menus may be removed from the window.

        Parameters:
        menuId - the menu id
        Returns:
        true if the specified menu is an application menu, and false if it is not
      • openPage

        IWorkbenchPage openPage​(String perspectiveId,
                                IAdaptable input)
                         throws WorkbenchException
        Creates and opens a new workbench page. The perspective of the new page is defined by the specified perspective ID. The new page become active.

        Note: Since release 2.0, a window is limited to contain at most one page. If a page exist in the window when this method is used, then another window is created for the new page. Callers are strongly recommended to use the IWorkbench.showPerspective APIs to programmatically show a perspective.

        Parameters:
        perspectiveId - the perspective id for the window's initial page
        input - the page input, or null if there is no current input. This is used to seed the input for the new page's views.
        Returns:
        the new workbench page
        Throws:
        WorkbenchException - if a page could not be opened
        See Also:
        IWorkbench.showPerspective(String, IWorkbenchWindow, IAdaptable)
      • openPage

        IWorkbenchPage openPage​(IAdaptable input)
                         throws WorkbenchException
        Creates and opens a new workbench page. The default perspective is used as a template for creating the page. The page becomes active.

        Note: Since release 2.0, a window is limited to contain at most one page. If a page exist in the window when this method is used, then another window is created for the new page. Callers are strongly recommended to use the IWorkbench.showPerspective APIs to programmatically show a perspective.

        Parameters:
        input - the page input, or null if there is no current input. This is used to seed the input for the new page's views.
        Returns:
        the new workbench window
        Throws:
        WorkbenchException - if a page could not be opened
        See Also:
        IWorkbench.showPerspective(String, IWorkbenchWindow, IAdaptable)
      • run

        void run​(boolean fork,
                 boolean cancelable,
                 IRunnableWithProgress runnable)
          throws InvocationTargetException,
                 InterruptedException
        This specialization of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) blocks until the runnable has been run, regardless of the value of fork. It is recommended that fork is set to true in most cases. If fork is set to false, the runnable will run in the UI thread and it is the runnable's responsibility to call Display.readAndDispatch() to ensure UI responsiveness.
        Specified by:
        run in interface IRunnableContext
        Parameters:
        fork - true if the runnable should be run in a separate thread, and false to run in the same thread
        cancelable - true to enable the cancelation, and false to make the operation uncancellable
        runnable - the runnable to run
        Throws:
        InvocationTargetException - wraps any exception or error which occurs while running the runnable
        InterruptedException - propagated by the context if the runnable acknowledges cancelation by throwing this exception. This should not be thrown if cancelable is false.
        Since:
        3.2
      • setActivePage

        void setActivePage​(IWorkbenchPage page)
        Sets or clears the currently active page for this workbench window.
        Parameters:
        page - the new active page, or null for no active page
      • getExtensionTracker

        IExtensionTracker getExtensionTracker()

        Return the extension tracker for the workbench. This tracker may be used by plug-ins to ensure responsiveness to changes to the plug-in registry.

        The tracker at this level of the workbench is typically used to track elements that persist for the life of the workbench. For example, the action objects corresponding to new wizards contributed by plug-ins fall into this category.

        Returns:
        the extension tracker
        Since:
        3.1
        See Also:
        IWorkbench.getExtensionTracker(), IWorkbenchPage.getExtensionTracker()
      • isClosing

        boolean isClosing()
        Returns a boolean indicating whether the workbench window is in the process of closing.
        Returns:
        true if the workbench window is in the process of closing, false otherwise
        Since:
        3.112