Class StrangeEonsAppWindow
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- ca.cgjennings.apps.arkham.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 callingStrangeEons.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 thanErrorDialog
allows), useStrangeEons.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
Standard application menus that can be extended withaddMenuItem(ca.cgjennings.apps.arkham.StrangeEonsAppWindow.AppMenu, javax.swing.JComponent)
.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.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
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 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
-
-
Constructor Summary
Constructors Constructor Description StrangeEonsAppWindow()
-
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 newStrangeEonsAppWindow.EditorAddedListener
to this editor.abstract void
addEditorListener(StrangeEonsEditor.EditorListener el)
Adds a newStrangeEonsEditor.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 aJFrame
.abstract java.awt.Component
getCustomComponent(int index)
Returns the custom component at positionindex
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 openProject
, ornull
if no project is open.abstract ProjectView
getOpenProjectView()
Returns the view of the open project, ornull
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 positionindex
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 newStrangeEonsAppWindow.EditorAddedListener
from this editor.abstract void
removeEditorListener(StrangeEonsEditor.EditorListener el)
Removes anStrangeEonsEditor.EditorListener
that was added to all editors throughaddEditorListener(ca.cgjennings.apps.arkham.StrangeEonsEditor.EditorListener)
.abstract void
removeMenuItem(StrangeEonsAppWindow.AppMenu parent, javax.swing.JComponent item)
Removes a menu item previously added withaddMenuItem(ca.cgjennings.apps.arkham.StrangeEonsAppWindow.AppMenu, javax.swing.JComponent)
.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 folderprojectFolder
.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 ca.cgjennings.apps.arkham.commands.Commandable
canPerformCommand, isCommandApplicable, performCommand
-
-
-
-
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
-
-
Method Detail
-
getApplicationFrameIcons
public static java.util.List<java.awt.Image> getApplicationFrameIcons()
Returns a list of images suitable for use as the icons of aJFrame
. 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'sAbstractGameComponentEditor.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
- ifeditor
isnull
-
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 isnull
-
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 untilsetDefaultCursor()
is called a number of times equal to the number of times this method was called. This method should be paired withsetDefaultCursor()
using atry ... 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 benull
)displayCategory
- the category that should be selected initially (may benull
)- 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
istrue
, 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; ifnull
, a default message is displayed- Since:
- 2.1a8
-
getOpenProjectView
public abstract ProjectView getOpenProjectView()
Returns the view of the open project, ornull
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
- ifcomp
isnull
- 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. Ifindex
is -1,comp
will be added to the end of the custom component bar. This is equivalent toaddCustomComponent( comp )
.- Parameters:
comp
- the component to be addedindex
- the position at which to insert the component, or -1 to append the component to the end- Throws:
java.lang.NullPointerException
- ifcomp
isnull
- 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
- ifcomp
isnull
java.lang.IllegalArgumentException
- ifcomp
has not been added as a custom component- Since:
- 2.00a13
-
removeCustomComponent
public abstract void removeCustomComponent(int index)
Removes the custom component at positionindex
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
- ifindex
< 0 orindex
>=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 positionindex
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
- ifindex
< 0 orindex
>=getCustomComponentCount()
- Since:
- 2.00a13
-
addEditorAddedListener
public abstract void addEditorAddedListener(StrangeEonsAppWindow.EditorAddedListener eal)
Adds a newStrangeEonsAppWindow.EditorAddedListener
to this editor.- Parameters:
eal
- the listener to add- Since:
- 2.00 (final)
-
removeEditorAddedListener
public abstract void removeEditorAddedListener(StrangeEonsAppWindow.EditorAddedListener eal)
Removes a newStrangeEonsAppWindow.EditorAddedListener
from this editor.- Parameters:
eal
- the listener to remove- Since:
- 2.00
-
addEditorListener
public abstract void addEditorListener(StrangeEonsEditor.EditorListener el)
Adds a newStrangeEonsEditor.EditorListener
that will apply to all editors. An editor listener can also be added through theStrangeEonsEditor
interface, in which case it will apply to only that editor.- Parameters:
el
- the listener to add- Since:
- 2.1a12
-
removeEditorListener
public abstract void removeEditorListener(StrangeEonsEditor.EditorListener el)
Removes anStrangeEonsEditor.EditorListener
that was added to all editors throughaddEditorListener(ca.cgjennings.apps.arkham.StrangeEonsEditor.EditorListener)
. Note an editor listener must be removed from the same object as the object it was added to; that is, a listener added to the application window must be removed from the application window, and a listener added to an individual editor must be removed from that editor.- Parameters:
el
- the listener to remove- Since:
- 2.1a12
-
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 openProject
, ornull
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 folderprojectFolder
. 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 isnull
- 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 intoitem
- the item you wish to insert; this should be aJMenuItem
of some kind- Since:
- 2.1a8
-
removeMenuItem
public abstract void removeMenuItem(StrangeEonsAppWindow.AppMenu parent, javax.swing.JComponent item)
Removes a menu item previously added withaddMenuItem(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 intoitem
- the item you wish to insert; this should either be a separator or a menu item- Since:
- 2.1a8
-
-