Class StrangeEonsAppWindow

  • All Implemented Interfaces:
    Commandable, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public abstract class StrangeEonsAppWindow
    extends javax.swing.JFrame
    implements Commandable
    This class defines the interface for interacting with the Strange Eons main application window. There is exactly one main application window for any running instance of the application, and it can be obtained by calling StrangeEons.getWindow().

    Note that the application window is created after the Theme has been installed but before any extension plug-ins are loaded. However, it will not be made visible until the entire application startup procedure has completed. Extensions may create windows that use this window as their parent, but they should not rely on those windows being visible or usable until the application is fully started. To create a window that will be visible during startup (for example, to display a more complex error message than ErrorDialog allows), use StrangeEons.getSafeStartupParentWindow() as the parent.

    Author:
    Chris Jennings
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  StrangeEonsAppWindow.AppMenu
      static interface  StrangeEonsAppWindow.EditorAddedListener
      A listener that is called whenever a new editor is added to the application.
      static class  StrangeEonsAppWindow.PolledMenuItem
      A menu item that can be asked if it is currently usable.
      static interface  StrangeEonsAppWindow.ProjectEventListener
      A listener that is called when a project is opened or closed.
      • Nested classes/interfaces inherited from class javax.swing.JFrame

        javax.swing.JFrame.AccessibleJFrame
      • Nested classes/interfaces inherited from class java.awt.Frame

        java.awt.Frame.AccessibleAWTFrame
      • Nested classes/interfaces inherited from class java.awt.Window

        java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String NO_EDITOR_FONT
      By default, when an editor is added to the application window its text components will automatically have the user's selected editor font set on them.
      static java.lang.String VIEW_BACKDROP_PROPERTY
      The name of a property for which a change is fired when the user chooses a different preview backdrop setting.
      static java.lang.String VIEW_QUALITY_PROPERTY
      The name of a property for which a change is fired when the user chooses a different view quality setting.
      • Fields inherited from class javax.swing.JFrame

        accessibleContext, rootPane, rootPaneCheckingEnabled
      • Fields inherited from class java.awt.Frame

        CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
      • Fields inherited from class java.awt.Component

        BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract void addCustomComponent​(java.awt.Component comp)
      Adds a custom component to the top of the application window.
      abstract void addCustomComponent​(java.awt.Component comp, int index)
      Adds a custom component to the top of the application window.
      abstract java.awt.Component addCustomComponentSeparator()
      Adds a separator to the custom component bar at the top of the application window.
      abstract void addEditor​(StrangeEonsEditor editor)
      Adds a new editor to the application window.
      abstract void addEditorAddedListener​(StrangeEonsAppWindow.EditorAddedListener eal)
      Adds a new StrangeEonsAppWindow.EditorAddedListener to this editor.
      abstract void addEditorListener​(StrangeEonsEditor.EditorListener el)
      Adds a new StrangeEonsEditor.EditorListener that will apply to all editors.
      abstract void addMenuItem​(StrangeEonsAppWindow.AppMenu parent, javax.swing.JComponent item)
      Inserts a menu item at a standard location in the application menu.
      abstract void addProjectEventListener​(StrangeEonsAppWindow.ProjectEventListener li)
      Adds a new listener for changes to the current project.
      abstract boolean closeAllEditors()
      Closes all open editor windows.
      abstract void closeProject()
      Closes the current open project, if any.
      abstract boolean exitApplication​(boolean restart)
      Exits the application.
      abstract StrangeEonsEditor getActiveEditor()
      Returns the currently active editor window, or null if there is no active editor.
      static java.util.List<java.awt.Image> getApplicationFrameIcons()
      Returns a list of images suitable for use as the icons of a JFrame.
      abstract java.awt.Component getCustomComponent​(int index)
      Returns the custom component at position index in the custom component area.
      abstract int getCustomComponentCount()
      Returns the number of custom components that have been added to the top of the application window.
      abstract int getEditorCount()
      Returns the number of editor windows that are currently open.
      abstract StrangeEonsEditor[] getEditors()
      Returns an array of all currently open editor windows.
      abstract StrangeEonsEditor[] getEditorsShowingFile​(java.io.File file)
      Returns an array of all currently open editor windows that are editing a certain file.
      abstract Project getOpenProject()
      Returns the current open Project, or null if no project is open.
      abstract ProjectView getOpenProjectView()
      Returns the view of the open project, or null if no project is open.
      abstract void openFile​(java.io.File file)
      Attempts to open a file in the application as if the user had used the File | Open menu item and selected the specified file.
      abstract void redrawPreviews()
      Forces all editor windows that are displaying a game component to redraw their component preview.
      abstract void removeCustomComponent​(int index)
      Removes the custom component at position index in the custom component area.
      abstract void removeCustomComponent​(java.awt.Component comp)
      Removes a previously added custom component from the top of the application window.
      abstract void removeEditorAddedListener​(StrangeEonsAppWindow.EditorAddedListener eal)
      Removes a new StrangeEonsAppWindow.EditorAddedListener from this editor.
      abstract void removeEditorListener​(StrangeEonsEditor.EditorListener el)
      abstract void removeMenuItem​(StrangeEonsAppWindow.AppMenu parent, javax.swing.JComponent item)
      abstract void removeProjectEventListener​(StrangeEonsAppWindow.ProjectEventListener li)
      Removes a listener for changes to the current project.
      abstract StrangeEonsEditor selectNextEditor()
      Selects the next editor after the one that is currently active.
      abstract StrangeEonsEditor selectPreviousEditor()
      Selects the previous editor before the one that is currently active.
      abstract void setDefaultCursor()
      Restore the standard cursor in the application frame.
      abstract boolean setOpenProject​(java.io.File projectFolderOrCrateFile)
      Opens the project contained in the folder projectFolder.
      abstract void setWaitCursor()
      Sets a wait cursor on the application frame.
      abstract void showAboutDialog()
      Displays the application's About dialog.
      abstract void showPreferencesDialog​(java.awt.Component parent, PreferenceCategory displayCategory)
      Displays the application preferences dialog.
      abstract void startTracking​(TrackedWindow window)
      Asks the application to add a window to the Window menu, such as a modeless dialog, a frame window, or a palette window.
      abstract void stopTracking​(TrackedWindow window)
      Stops tracking a previously tracked window, removing it from the application's Window menu.
      abstract void suggestRestart​(java.lang.String message)
      Displays a message to inform the user that the application should be restarted for optimal performance.
      • Methods inherited from class javax.swing.JFrame

        addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
      • Methods inherited from class java.awt.Frame

        addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
      • Methods inherited from class java.awt.Window

        addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.awt.MenuContainer

        getFont, postEvent
    • Field Detail

      • VIEW_QUALITY_PROPERTY

        public static final java.lang.String VIEW_QUALITY_PROPERTY
        The name of a property for which a change is fired when the user chooses a different view quality setting.
        See Also:
        Constant Field Values
      • VIEW_BACKDROP_PROPERTY

        public static final java.lang.String VIEW_BACKDROP_PROPERTY
        The name of a property for which a change is fired when the user chooses a different preview backdrop setting.
        See Also:
        Constant Field Values
      • NO_EDITOR_FONT

        public static final java.lang.String NO_EDITOR_FONT
        By default, when an editor is added to the application window its text components will automatically have the user's selected editor font set on them. However, text fields that have this client property set to true will be ignored.
        See Also:
        Constant Field Values
    • Constructor Detail

      • StrangeEonsAppWindow

        public StrangeEonsAppWindow()
    • Method Detail

      • getApplicationFrameIcons

        public static java.util.List<java.awt.Image> getApplicationFrameIcons()
        Returns a list of images suitable for use as the icons of a JFrame. Plug-ins that create their own windows may use these images to get the same window icons as the main application window.
        Returns:
        a list of frame icons at various sizes
      • redrawPreviews

        public abstract void redrawPreviews()
        Forces all editor windows that are displaying a game component to redraw their component preview. This is equivalent to looping over all of the available component editors and calling each one's AbstractGameComponentEditor.redrawPreview() method.
        Since:
        3.0
      • addEditor

        public abstract void addEditor​(StrangeEonsEditor editor)
        Adds a new editor to the application window. This will cause the editor to be made visible and available to the user.
        Parameters:
        editor - the editor to be added
        Throws:
        java.lang.NullPointerException - if editor is null
      • getActiveEditor

        public abstract StrangeEonsEditor getActiveEditor()
        Returns the currently active editor window, or null if there is no active editor.
        Returns:
        the active component editor, or null
      • getEditors

        public abstract StrangeEonsEditor[] getEditors()
        Returns an array of all currently open editor windows.
        Returns:
        an array of open editors
        Since:
        2.00
      • getEditorCount

        public abstract int getEditorCount()
        Returns the number of editor windows that are currently open.
        Returns:
        the number of open editors
        Since:
        3.4
      • getEditorsShowingFile

        public abstract StrangeEonsEditor[] getEditorsShowingFile​(java.io.File file)
        Returns an array of all currently open editor windows that are editing a certain file. If no editors currently have the file set as their save file, returns an empty array.
        Parameters:
        file - the file to return active editors for
        Returns:
        an array of open editors which have a save location that is equal to the given file
        Since:
        2.1a9
      • selectNextEditor

        public abstract StrangeEonsEditor selectNextEditor()
        Selects the next editor after the one that is currently active.
        Returns:
        the editor that becomes active
        Since:
        2.00 (final)
      • selectPreviousEditor

        public abstract StrangeEonsEditor selectPreviousEditor()
        Selects the previous editor before the one that is currently active.
        Returns:
        the editor that becomes active
        Since:
        2.00 (final)
      • openFile

        public abstract void openFile​(java.io.File file)
        Attempts to open a file in the application as if the user had used the File | Open menu item and selected the specified file. Although a successful attempt to open the file typically results in a new editor being added to the application, be aware that the new editor will not generally be open yet when this method returns.

        Note: This method is threadsafe: it can be can be called from outside of the event dispatch thread.

        Parameters:
        file - the file to opened
        Throws:
        java.lang.NullPointerException - if the file is null
      • setWaitCursor

        public abstract void setWaitCursor()
        Sets a wait cursor on the application frame. This method nests, so if a wait cursor is set multiple times, the normal interaction cursor will not be restored until setDefaultCursor() is called a number of times equal to the number of times this method was called. This method should be paired with setDefaultCursor() using a try ... finally block to ensure that the cursor is properly restored even if an exception is thrown.:
         app.setWaitCursor();
         try {
             // do lengthy job that requires wait cursor
         } finally {
             app.setDefaultCursor();
         }
         
      • setDefaultCursor

        public abstract void setDefaultCursor()
        Restore the standard cursor in the application frame. See {link #setWaitCursor()} for details on use.
      • showPreferencesDialog

        public abstract void showPreferencesDialog​(java.awt.Component parent,
                                                   PreferenceCategory displayCategory)
        Displays the application preferences dialog.
        Parameters:
        parent - a component used to position the preferences dialog (may be null)
        displayCategory - the category that should be selected initially (may be null)
        Since:
        3.0
      • showAboutDialog

        public abstract void showAboutDialog()
        Displays the application's About dialog.
      • exitApplication

        public abstract boolean exitApplication​(boolean restart)
        Exits the application. The user will be given the opportunity to save files with unsaved changes. This method will only return if the user cancels the exit action.

        If restart is true, then an attempt is made to relaunch the application after exiting. This may be useful, for example, when a plug-in update is pending.

        Parameters:
        restart - restart after exit
        Since:
        2.1a8
      • suggestRestart

        public abstract void suggestRestart​(java.lang.String message)
        Displays a message to inform the user that the application should be restarted for optimal performance. The user will be allowed to choose whether or not to restart.
        Parameters:
        message - the reason for the restart; if null, a default message is displayed
        Since:
        2.1a8
      • getOpenProjectView

        public abstract ProjectView getOpenProjectView()
        Returns the view of the open project, or null if no project is open.
        Returns:
        the open project's view, or null
      • addCustomComponent

        public abstract void addCustomComponent​(java.awt.Component comp)
        Adds a custom component to the top of the application window. This can be used to provide custom controls for a plug-in. Custom components are added in a horizontal strip above the pane where editor windows are displayed.
        Parameters:
        comp - the component to add
        Throws:
        java.lang.NullPointerException - if comp is null
        Since:
        2.00a13
      • addCustomComponent

        public abstract void addCustomComponent​(java.awt.Component comp,
                                                int index)
        Adds a custom component to the top of the application window. The component is added at a specific position with respect to the existing components. If index is -1, comp will be added to the end of the custom component bar. This is equivalent to addCustomComponent( comp ).
        Parameters:
        comp - the component to be added
        index - the position at which to insert the component, or -1 to append the component to the end
        Throws:
        java.lang.NullPointerException - if comp is null
        Since:
        2.00a13
      • addCustomComponentSeparator

        public abstract java.awt.Component addCustomComponentSeparator()
        Adds a separator to the custom component bar at the top of the application window. A reference to the added separator is returned. This may be used to remove the separator later.
        Returns:
        the separator component that was added
        Since:
        2.00a13
      • removeCustomComponent

        public abstract void removeCustomComponent​(java.awt.Component comp)
        Removes a previously added custom component from the top of the application window.
        Parameters:
        comp - the component to remove
        Throws:
        java.lang.NullPointerException - if comp is null
        java.lang.IllegalArgumentException - if comp has not been added as a custom component
        Since:
        2.00a13
      • removeCustomComponent

        public abstract void removeCustomComponent​(int index)
        Removes the custom component at position index in the custom component area. Nearby separators are not affected.
        Parameters:
        index - the 0-based index into the list of custom components
        Throws:
        java.lang.IndexOutOfBoundsException - if index < 0 or index >= getCustomComponentCount()
        Since:
        2.00a13
      • getCustomComponentCount

        public abstract int getCustomComponentCount()
        Returns the number of custom components that have been added to the top of the application window.
        Returns:
        the non-negative number of custom components that have been added
        Since:
        2.00a13
      • getCustomComponent

        public abstract java.awt.Component getCustomComponent​(int index)
        Returns the custom component at position index in the custom component area.
        Parameters:
        index - the 0-based index into the list of custom components
        Returns:
        the component at position index
        Throws:
        java.lang.IndexOutOfBoundsException - if index < 0 or index >= getCustomComponentCount()
        Since:
        2.00a13
      • closeAllEditors

        public abstract boolean closeAllEditors()
        Closes all open editor windows. If any editor has unsaved changes, the user will be prompted to save them.
        Returns:
        true if all editors were close, or false if the user cancelled the operation
      • getOpenProject

        public abstract Project getOpenProject()
        Returns the current open Project, or null if no project is open.
        Returns:
        the project currently open in the application window
        Since:
        2.1 alpha 2
      • setOpenProject

        public abstract boolean setOpenProject​(java.io.File projectFolderOrCrateFile)
        Opens the project contained in the folder projectFolder. If the project can be opened and there is already a project open in the editor, the current project is closed automatically before opening the new project. If the project cannot be opened, an error message is displayed.
        Parameters:
        projectFolderOrCrateFile - the base folder of a project or an .seproject file containing a project
        Returns:
        true if the project is opened successfully
        Since:
        2.1a2
      • closeProject

        public abstract void closeProject()
        Closes the current open project, if any.
        Since:
        2.1a2
      • addProjectEventListener

        public abstract void addProjectEventListener​(StrangeEonsAppWindow.ProjectEventListener li)
        Adds a new listener for changes to the current project.
        Parameters:
        li - the listener to call when a project is opened or closed
      • removeProjectEventListener

        public abstract void removeProjectEventListener​(StrangeEonsAppWindow.ProjectEventListener li)
        Removes a listener for changes to the current project.
        Parameters:
        li - the listener to be removed
      • startTracking

        public abstract void startTracking​(TrackedWindow window)
        Asks the application to add a window to the Window menu, such as a modeless dialog, a frame window, or a palette window. The Window menu automatically adds menu items for every open editor. Plug-ins can use this method to add items for special windows that they create. When the user selects the window's menu item, the window will be made visible, moved to the front, and given focus.

        Tracked windows will continue to be listed in the menu until they are explicitly removed by calling stopTracking(ca.cgjennings.apps.arkham.TrackedWindow).

        Note that the the Toolbox menu offers similar (but more comprehensive) functionality that is sufficient for most plug-ins. Tracked windows are best suited to floating palettes and cases like the script output window, which the user should think of as always existing, even if momentarily hidden.

        Parameters:
        window - the window to track (or stop tracking)
        Throws:
        java.lang.NullPointerException - if the window is null
        Since:
        3.0
        See Also:
        stopTracking(ca.cgjennings.apps.arkham.TrackedWindow)
      • stopTracking

        public abstract void stopTracking​(TrackedWindow window)
        Stops tracking a previously tracked window, removing it from the application's Window menu. If the window was not being tracked, this method has no effect.
        Parameters:
        window - the window to stop tracking
        Since:
        3.0
        See Also:
        startTracking(ca.cgjennings.apps.arkham.TrackedWindow)
      • addMenuItem

        public abstract void addMenuItem​(StrangeEonsAppWindow.AppMenu parent,
                                         javax.swing.JComponent item)
        Inserts a menu item at a standard location in the application menu. This allows you to add items to menus other than the Toolbox and Window menus when another menu makes more sense This is a convenient way to add new items to a menu. If you want more control over menu placement, or to scan or replace existing items, see the uiutils scripting library.
        Parameters:
        parent - identifies the menu you wish to insert an item into
        item - the item you wish to insert; this should be a JMenuItem of some kind
        Since:
        2.1a8
      • removeMenuItem

        public abstract void removeMenuItem​(StrangeEonsAppWindow.AppMenu parent,
                                            javax.swing.JComponent item)
        Removes a menu item previously added with addMenuItem(ca.cgjennings.apps.arkham.StrangeEonsAppWindow.AppMenu, javax.swing.JComponent). This is a convenient way to add new items to a menu. If you want more control over menu placement, or to scan or replace existing items, see the uiutils scripting library.
        Parameters:
        parent - an identifier for the menu you wish to insert into
        item - the item you wish to insert; this should either be a separator or a menu item
        Since:
        2.1a8