Class ApplicationWindow

java.lang.Object
org.eclipse.jface.window.Window
org.eclipse.jface.window.ApplicationWindow
All Implemented Interfaces:
IRunnableContext, IShellProvider

public class ApplicationWindow extends Window implements IRunnableContext
An application window is a high-level "main window", with built-in support for an optional menu bar with standard menus, an optional toolbar, and an optional status line.

Creating an application window involves the following steps:

  • creating an instance of ApplicationWindow
  • assigning the window to a window manager (optional)
  • opening the window by calling open

Only on the last step, when the window is told to open, are the window's shell and widget tree created. When the window is closed, the shell and widget tree are disposed of and are no longer referenced, and the window is automatically removed from its window manager. Like all windows, an application window may be reopened.

An application window is also a suitable context in which to perform long-running operations (that is, it implements IRunnableContext).

  • Field Details

    • seperator1

      protected Label seperator1
      The seperator between the menu bar and the rest of the window.
  • Constructor Details

    • ApplicationWindow

      public ApplicationWindow(Shell parentShell)
      Create an application window instance, whose shell will be created under the given parent shell. Note that the window will have no visual representation (no widgets) until it is told to open. By default, open does not block.
      Parameters:
      parentShell - the parent shell, or null to create a top-level shell
  • Method Details

    • getSeperator1

      protected Label getSeperator1()
      Return the top seperator.
      Returns:
      Label
    • addMenuBar

      protected void addMenuBar()
      Configures this window to have a menu bar. Does nothing if it already has one. This method must be called before this window's shell is created.
    • addStatusLine

      protected void addStatusLine()
      Configures this window to have a status line. Does nothing if it already has one. This method must be called before this window's shell is created.
    • addToolBar

      protected void addToolBar(int style)
      Configures this window to have a tool bar. Does nothing if it already has one. This method must be called before this window's shell is created.
      Parameters:
      style - swt style bits used to create the Toolbar
      See Also:
    • addCoolBar

      protected void addCoolBar(int style)
      Configures this window to have a cool bar. Does nothing if it already has one. This method must be called before this window's shell is created.
      Parameters:
      style - the cool bar style
      Since:
      3.0
    • canHandleShellCloseEvent

      protected boolean canHandleShellCloseEvent()
      Description copied from class: Window
      Determines if the window should handle the close event or do nothing.

      The default implementation of this framework method returns true, which will allow the handleShellCloseEvent method to be called. Subclasses may extend or reimplement.

      Overrides:
      canHandleShellCloseEvent in class Window
      Returns:
      whether the window should handle the close event.
    • close

      public boolean close()
      Description copied from class: Window
      Closes this window, disposes its shell, and removes this window from its window manager (if it has one).

      This framework method may be extended (super.close must be called).

      Note that in order to prevent recursive calls to this method it does not call Shell#close(). As a result ShellListeners will not receive a shellClosed event.

      Overrides:
      close in class Window
      Returns:
      true if the window is (or was already) closed, and false if it is still open
    • configureShell

      protected void configureShell(Shell shell)
      Extends the super implementation by creating the trim widgets using createTrimWidgets.
      Overrides:
      configureShell in class Window
      Parameters:
      shell - the shell
    • createTrimWidgets

      protected void createTrimWidgets(Shell shell)
      Creates the trim widgets around the content area.
      Parameters:
      shell - the shell
      Since:
      3.0
    • getLayout

      protected Layout getLayout()
      Description copied from class: Window
      Creates the layout for the shell. The layout created here will be attached to the composite passed into createContents. The default implementation returns a GridLayout with no margins. Subclasses that change the layout type by overriding this method should also override createContents.

      A return value of null indicates that no layout should be attached to the composite. In this case, the layout may be attached within createContents.

      Overrides:
      getLayout in class Window
      Returns:
      a newly created Layout or null if no layout should be attached.
    • showTopSeperator

      protected boolean showTopSeperator()
      Returns whether to show a top separator line between the menu bar and the rest of the window contents. On some platforms such as the Mac, the menu is separated from the main window already, so a separator line is not desired.
      Returns:
      true to show the top separator, false to not show it
      Since:
      3.0
    • createStatusLine

      protected void createStatusLine(Shell shell)
      Create the status line if required.
      Parameters:
      shell - the shell to create status line into
    • createMenuManager

      protected MenuManager createMenuManager()
      Returns a new menu manager for the window.

      Subclasses may override this method to customize the menu manager.

      Returns:
      a menu manager
    • createStatusLineManager

      protected StatusLineManager createStatusLineManager()
      Returns a new status line manager for the window.

      Subclasses may override this method to customize the status line manager.

      Returns:
      a status line manager
    • createToolBarManager

      protected ToolBarManager createToolBarManager(int style)
      Returns a new tool bar manager for the window.

      Subclasses may override this method to customize the tool bar manager.

      Parameters:
      style - swt style bits used to create the Toolbar
      Returns:
      a tool bar manager
      See Also:
    • createToolBarManager2

      protected IToolBarManager createToolBarManager2(int style)
      Returns a new tool bar manager for the window.

      By default this method calls createToolBarManager. Subclasses may override this method to provide an alternative implementation for the tool bar manager.

      Parameters:
      style - swt style bits used to create the Toolbar
      Returns:
      a tool bar manager
      Since:
      3.2
      See Also:
    • createCoolBarManager

      protected CoolBarManager createCoolBarManager(int style)
      Returns a new cool bar manager for the window.

      Subclasses may override this method to customize the cool bar manager.

      Parameters:
      style - swt style bits used to create the Coolbar
      Returns:
      a cool bar manager
      Since:
      3.0
      See Also:
    • createCoolBarManager2

      protected ICoolBarManager createCoolBarManager2(int style)
      Returns a new cool bar manager for the window.

      By default this method calls createCoolBarManager. Subclasses may override this method to provide an alternative implementation for the cool bar manager.

      Parameters:
      style - swt style bits used to create the Coolbar
      Returns:
      a cool bar manager
      Since:
      3.2
      See Also:
    • createToolBarControl

      protected Control createToolBarControl(Composite parent)
      Creates the control for the tool bar manager.

      Subclasses may override this method to customize the tool bar manager.

      Parameters:
      parent - the parent used for the control
      Returns:
      a Control
    • createCoolBarControl

      protected Control createCoolBarControl(Composite composite)
      Creates the control for the cool bar manager.

      Subclasses may override this method to customize the cool bar manager.

      Parameters:
      composite - the parent used for the control
      Returns:
      an instance of CoolBar
      Since:
      3.0
    • getFont

      protected Font getFont()
      Returns the default font used for this window.

      The default implementation of this framework method obtains the symbolic name of the font from the getSymbolicFontName framework method and retrieves this font from JFace's font registry using JFaceResources.getFont. Subclasses may override to use a different registry, etc.

      Returns:
      the default font, or null if none
    • getMenuBarManager

      public MenuManager getMenuBarManager()
      Returns the menu bar manager for this window (if it has one).
      Returns:
      the menu bar manager, or null if this window does not have a menu bar
      See Also:
    • getStatusLineManager

      protected StatusLineManager getStatusLineManager()
      Returns the status line manager for this window (if it has one).
      Returns:
      the status line manager, or null if this window does not have a status line
      See Also:
    • getSymbolicFontName

      public String getSymbolicFontName()
      Returns the symbolic font name of the font to be used to display text in this window. This is not recommended and is included for backwards compatability. It is recommended to use the default font provided by SWT (that is, do not set the font).
      Returns:
      the symbolic font name
    • getToolBarManager

      public ToolBarManager getToolBarManager()
      Returns the tool bar manager for this window (if it has one).
      Returns:
      the tool bar manager, or null if this window does not have a tool bar
      See Also:
    • getToolBarManager2

      public IToolBarManager getToolBarManager2()
      Returns the tool bar manager for this window (if it has one).
      Returns:
      the tool bar manager, or null if this window does not have a tool bar
      Since:
      3.2
      See Also:
    • getCoolBarManager

      public CoolBarManager getCoolBarManager()
      Returns the cool bar manager for this window.
      Returns:
      the cool bar manager, or null if this window does not have a cool bar
      Since:
      3.0
      See Also:
    • getCoolBarManager2

      public ICoolBarManager getCoolBarManager2()
      Returns the cool bar manager for this window.
      Returns:
      the cool bar manager, or null if this window does not have a cool bar
      Since:
      3.2
      See Also:
    • getToolBarControl

      protected Control getToolBarControl()
      Returns the control for the window's toolbar.

      Subclasses may override this method to customize the tool bar manager.

      Returns:
      a Control
    • getCoolBarControl

      protected Control getCoolBarControl()
      Returns the control for the window's cool bar.

      Subclasses may override this method to customize the cool bar manager.

      Returns:
      an instance of CoolBar
      Since:
      3.0
    • run

      public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException
      This implementation 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.
    • setStatus

      public void setStatus(String message)
      Sets or clears the message displayed in this window's status line (if it has one). This method has no effect if the window does not have a status line.
      Parameters:
      message - the status message, or null to clear it
    • toolBarChildrenExist

      protected boolean toolBarChildrenExist()
      Returns whether or not children exist for the Application Window's toolbar control.
      Returns:
      boolean true if children exist, false otherwise
    • coolBarChildrenExist

      protected boolean coolBarChildrenExist()
      Returns whether or not children exist for this application window's cool bar control.
      Returns:
      boolean true if children exist, false otherwise
      Since:
      3.0