Class SwingGui
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Frame
-
- javax.swing.JFrame
-
- org.htmlunit.corejs.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.EventQueueawtEventQueueThe AWT EventQueue.private JSInternalConsoleconsoleThe console that displays I/O from the script.private ContextWindowcontextTheJPanelthat shows information about the context.private FileWindowcurrentWindowTheFileWindowthat last had the focus.private javax.swing.JDesktopPanedeskTheJDesktopPanethat holds the script windows.(package private) DimdimThe debugger.(package private) javax.swing.JFileChooserdlgFile choose dialog for loading a script.private java.lang.RunnableexitActionThe action to run when the 'Exit' menu item is chosen or the frame is closed.private java.util.Map<java.lang.String,FileWindow>fileWindowsHash table of script URLs to their internal frames.private MenubarmenubarThe menu bar.private static longserialVersionUIDSerializable magic number.private javax.swing.JSplitPanesplit1private javax.swing.JLabelstatusBarThe status bar.private javax.swing.JToolBartoolBarThe tool bar.private java.util.Map<java.lang.String,javax.swing.JFrame>toplevelsHash 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 voidactionPerformed(java.awt.event.ActionEvent e)Performs an action from the menu or toolbar.(package private) voidaddTopLevel(java.lang.String key, javax.swing.JFrame frame)Records a new internal frame.private java.lang.StringchooseFile(java.lang.String title)Displays aJFileChooserand returns the selected filename.protected voidcreateFileWindow(Dim.SourceInfo sourceInfo, int line)Creates and shows a newFileWindowfor the given source.voiddispatchNextGuiEvent()Processes the next GUI event.voidenterInterrupt(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)Called when the interrupt loop has been entered.(package private) voidenterInterruptImpl(Dim.StackFrame lastFrame, java.lang.String threadTitle, java.lang.String alertMessage)Handles script interruption.private voidexit()Runs theexitAction.JSInternalConsolegetConsole()Returns the debugger console component.(package private) FileWindowgetFileWindow(java.lang.String url)Returns theFileWindowfor the given URL.MenubargetMenubar()Returns the Menubar of this debugger frame.private javax.swing.JInternalFramegetSelectedFrame()Returns the current selected internal frame.(package private) static java.lang.StringgetShortName(java.lang.String url)Returns a short version of the given URL.private javax.swing.JMenugetWindowMenu()Returns the 'Window' menu.private voidinit()Constructs the debugger GUI.booleanisGuiEventThread()Returns whether the current thread is the GUI event thread.private java.lang.StringreadFile(java.lang.String fileName)Reads the file with the given name and returns its contents as a String.(package private) voidremoveWindow(FileWindow w)Closes the givenFileWindow.voidsetExitAction(java.lang.Runnable r)Sets theRunnablethat will be run when the "Exit" menu item is chosen.private voidsetFilePosition(FileWindow w, int line)Moves the current position in the givenFileWindowto the given line.(package private) static voidsetResizeWeight(javax.swing.JSplitPane pane, double weight)CallsJSplitPane.setResizeWeight(double)via reflection.voidsetVisible(boolean b)Sets the visibility of the debugger GUI.protected voidshowFileWindow(java.lang.String sourceUrl, int lineNumber)Shows aFileWindowfor the given source, creating it if it doesn't exist yet.(package private) voidshowStopLine(Dim.StackFrame frame)Shows the line at which execution in the given stack frame just stopped.private voidupdateEnabled(boolean interrupted)Enables or disables the menu and tool bars with respect to the state of script execution.protected booleanupdateFileWindow(Dim.SourceInfo sourceInfo)Update the source text forsourceInfo.voidupdateSourceText(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
TheJDesktopPanethat holds the script windows.
-
context
private ContextWindow context
TheJPanelthat 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
TheFileWindowthat 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 theRunnablethat 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:
setVisiblein 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 theFileWindowfor 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 aFileWindowfor the given source, creating it if it doesn't exist yet. iflineNumberis 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 newFileWindowfor the given source.
-
updateFileWindow
protected boolean updateFileWindow(Dim.SourceInfo sourceInfo)
Update the source text forsourceInfo. This returns true if aFileWindowfor the given source exists and could be updated. Otherwise, this does nothing and returns false.- Parameters:
sourceInfo- the source info- Returns:
- true if a
FileWindowfor the given source exists and could be updated, false otherwise.
-
setFilePosition
private void setFilePosition(FileWindow w, int line)
Moves the current position in the givenFileWindowto 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 aJFileChooserand 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:
updateSourceTextin 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:
enterInterruptin interfaceGuiCallback
-
isGuiEventThread
public boolean isGuiEventThread()
Returns whether the current thread is the GUI event thread.- Specified by:
isGuiEventThreadin interfaceGuiCallback
-
dispatchNextGuiEvent
public void dispatchNextGuiEvent() throws java.lang.InterruptedExceptionProcesses the next GUI event.- Specified by:
dispatchNextGuiEventin interfaceGuiCallback- Throws:
java.lang.InterruptedException
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Performs an action from the menu or toolbar.
-
-