Class SwingGui
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- org.mozilla.javascript.tools.debugger.SwingGui
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
,GuiCallback
public class SwingGui extends javax.swing.JFrame implements GuiCallback
GUI for the Rhino debugger.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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 private java.awt.EventQueue
awtEventQueue
The AWT EventQueue.private JSInternalConsole
console
The console that displays I/O from the script.private ContextWindow
context
TheJPanel
that shows information about the context.private FileWindow
currentWindow
TheFileWindow
that last had the focus.private javax.swing.JDesktopPane
desk
TheJDesktopPane
that holds the script windows.(package private) Dim
dim
The debugger.(package private) javax.swing.JFileChooser
dlg
File choose dialog for loading a script.private java.lang.Runnable
exitAction
The action to run when the 'Exit' menu item is chosen or the frame is closed.private java.util.Map<java.lang.String,FileWindow>
fileWindows
Hash table of script URLs to their internal frames.private Menubar
menubar
The menu bar.private static long
serialVersionUID
Serializable magic number.private javax.swing.JSplitPane
split1
private javax.swing.JLabel
statusBar
The status bar.private javax.swing.JToolBar
toolBar
The tool bar.private java.util.Map<java.lang.String,javax.swing.JFrame>
toplevels
Hash table of internal frame names to the internal frames themselves.-
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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent e)
Performs an action from the menu or toolbar.(package private) void
addTopLevel(java.lang.String key, javax.swing.JFrame frame)
Records a new internal frame.private java.lang.String
chooseFile(java.lang.String title)
Displays aJFileChooser
and returns the selected filename.protected void
createFileWindow(Dim.SourceInfo sourceInfo, int line)
Creates and shows a newFileWindow
for the given source.void
dispatchNextGuiEvent()
Processes the next GUI event.void
enterInterrupt(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)
Called when the interrupt loop has been entered.(package private) void
enterInterruptImpl(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)
Handles script interruption.private void
exit()
Runs theexitAction
.JSInternalConsole
getConsole()
Returns the debugger console component.(package private) FileWindow
getFileWindow(java.lang.String url)
Returns theFileWindow
for the given URL.Menubar
getMenubar()
Returns the Menubar of this debugger frame.private javax.swing.JInternalFrame
getSelectedFrame()
Returns the current selected internal frame.(package private) static java.lang.String
getShortName(java.lang.String url)
Returns a short version of the given URL.private javax.swing.JMenu
getWindowMenu()
Returns the 'Window' menu.private void
init()
Constructs the debugger GUI.boolean
isGuiEventThread()
Returns whether the current thread is the GUI event thread.private java.lang.String
readFile(java.lang.String fileName)
Reads the file with the given name and returns its contents as a String.(package private) void
removeWindow(FileWindow w)
Closes the givenFileWindow
.void
setExitAction(java.lang.Runnable r)
Sets theRunnable
that will be run when the "Exit" menu item is chosen.private void
setFilePosition(FileWindow w, int line)
Moves the current position in the givenFileWindow
to the given line.(package private) static void
setResizeWeight(javax.swing.JSplitPane pane, double weight)
CallsJSplitPane.setResizeWeight(double)
via reflection.void
setVisible(boolean b)
Sets the visibility of the debugger GUI.protected void
showFileWindow(java.lang.String sourceUrl, int lineNumber)
Shows aFileWindow
for the given source, creating it if it doesn't exist yet.(package private) void
showStopLine(Dim.StackFrame frame)
Shows the line at which execution in the given stack frame just stopped.private void
updateEnabled(boolean interrupted)
Enables or disables the menu and tool bars with respect to the state of script execution.protected boolean
updateFileWindow(Dim.SourceInfo sourceInfo)
Update the source text forsourceInfo
.void
updateSourceText(Dim.SourceInfo sourceInfo)
Called when the source text for a script has been updated.-
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, 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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serializable magic number.- See Also:
- Constant Field Values
-
dim
Dim dim
The debugger.
-
exitAction
private java.lang.Runnable exitAction
The action to run when the 'Exit' menu item is chosen or the frame is closed.
-
desk
private javax.swing.JDesktopPane desk
TheJDesktopPane
that holds the script windows.
-
context
private ContextWindow context
TheJPanel
that shows information about the context.
-
menubar
private Menubar menubar
The menu bar.
-
toolBar
private javax.swing.JToolBar toolBar
The tool bar.
-
console
private JSInternalConsole console
The console that displays I/O from the script.
-
split1
private javax.swing.JSplitPane split1
-
statusBar
private javax.swing.JLabel statusBar
The status bar.
-
toplevels
private final java.util.Map<java.lang.String,javax.swing.JFrame> toplevels
Hash table of internal frame names to the internal frames themselves.
-
fileWindows
private final java.util.Map<java.lang.String,FileWindow> fileWindows
Hash table of script URLs to their internal frames.
-
currentWindow
private FileWindow currentWindow
TheFileWindow
that last had the focus.
-
dlg
javax.swing.JFileChooser dlg
File choose dialog for loading a script.
-
awtEventQueue
private java.awt.EventQueue awtEventQueue
The AWT EventQueue. Used for manually pumping AWT events fromdispatchNextGuiEvent()
.
-
-
Constructor Detail
-
SwingGui
public SwingGui(Dim dim, java.lang.String title)
Creates a new SwingGui.
-
-
Method Detail
-
getMenubar
public Menubar getMenubar()
Returns the Menubar of this debugger frame.
-
setExitAction
public void setExitAction(java.lang.Runnable r)
Sets theRunnable
that will be run when the "Exit" menu item is chosen.
-
getConsole
public JSInternalConsole getConsole()
Returns the debugger console component.
-
setVisible
public void setVisible(boolean b)
Sets the visibility of the debugger GUI.- Overrides:
setVisible
in classjava.awt.Window
-
addTopLevel
void addTopLevel(java.lang.String key, javax.swing.JFrame frame)
Records a new internal frame.
-
init
private void init()
Constructs the debugger GUI.
-
exit
private void exit()
Runs theexitAction
.
-
getFileWindow
FileWindow getFileWindow(java.lang.String url)
Returns theFileWindow
for the given URL.
-
getShortName
static java.lang.String getShortName(java.lang.String url)
Returns a short version of the given URL.
-
removeWindow
void removeWindow(FileWindow w)
Closes the givenFileWindow
.
-
showStopLine
void showStopLine(Dim.StackFrame frame)
Shows the line at which execution in the given stack frame just stopped.
-
showFileWindow
protected void showFileWindow(java.lang.String sourceUrl, int lineNumber)
Shows aFileWindow
for the given source, creating it if it doesn't exist yet. iflineNumber
is greater than -1, it indicates the line number to select and display.- Parameters:
sourceUrl
- the source URLlineNumber
- the line number to select, or -1
-
createFileWindow
protected void createFileWindow(Dim.SourceInfo sourceInfo, int line)
Creates and shows a newFileWindow
for the given source.
-
updateFileWindow
protected boolean updateFileWindow(Dim.SourceInfo sourceInfo)
Update the source text forsourceInfo
. This returns true if aFileWindow
for the given source exists and could be updated. Otherwise, this does nothing and returns false.- Parameters:
sourceInfo
- the source info- Returns:
- true if a
FileWindow
for the given source exists and could be updated, false otherwise.
-
setFilePosition
private void setFilePosition(FileWindow w, int line)
Moves the current position in the givenFileWindow
to the given line.
-
enterInterruptImpl
void enterInterruptImpl(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)
Handles script interruption.
-
getWindowMenu
private javax.swing.JMenu getWindowMenu()
Returns the 'Window' menu.
-
chooseFile
private java.lang.String chooseFile(java.lang.String title)
Displays aJFileChooser
and returns the selected filename.
-
getSelectedFrame
private javax.swing.JInternalFrame getSelectedFrame()
Returns the current selected internal frame.
-
updateEnabled
private void updateEnabled(boolean interrupted)
Enables or disables the menu and tool bars with respect to the state of script execution.
-
setResizeWeight
static void setResizeWeight(javax.swing.JSplitPane pane, double weight)
CallsJSplitPane.setResizeWeight(double)
via reflection. For compatibility, since JDK < 1.3 does not have this method.
-
readFile
private java.lang.String readFile(java.lang.String fileName)
Reads the file with the given name and returns its contents as a String.
-
updateSourceText
public void updateSourceText(Dim.SourceInfo sourceInfo)
Called when the source text for a script has been updated.- Specified by:
updateSourceText
in interfaceGuiCallback
-
enterInterrupt
public void enterInterrupt(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)
Called when the interrupt loop has been entered.- Specified by:
enterInterrupt
in interfaceGuiCallback
-
isGuiEventThread
public boolean isGuiEventThread()
Returns whether the current thread is the GUI event thread.- Specified by:
isGuiEventThread
in interfaceGuiCallback
-
dispatchNextGuiEvent
public void dispatchNextGuiEvent() throws java.lang.InterruptedException
Processes the next GUI event.- Specified by:
dispatchNextGuiEvent
in interfaceGuiCallback
- Throws:
java.lang.InterruptedException
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Performs an action from the menu or toolbar.
-
-