edu.rice.cs.drjava.ui
Class JUnitPanel.JUnitErrorListPane

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.text.JTextComponent
                          |
                          +--javax.swing.JEditorPane
                                |
                                +--edu.rice.cs.drjava.ui.JUnitPanel.JUnitErrorListPane
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Scrollable, Serializable
Enclosing class:
JUnitPanel

public class JUnitPanel.JUnitErrorListPane
extends JEditorPane

A pane to show JUnit errors. It acts a bit like a listbox (clicking selects an item) but items can each wrap, etc.

See Also:
Serialized Form

Inner Class Summary
private  class JUnitPanel.JUnitErrorListPane.CompilerErrorColorOptionListener
          The OptionListener for compiler COMPILER_ERROR_COLOR
private  class JUnitPanel.JUnitErrorListPane.PopupAdapter
          private MouseAdapter _mouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { JUnitError error = _errorAtPoint(e.getPoint()); if (error == null) { selectNothing(); } else { _errorListPane.switchToError(error); } } };
 
Inner classes inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.HeaderParser, JEditorPane.JEditorPaneAccessibleHypertextSupport, JEditorPane.PageLoader, JEditorPane.PlainEditorKit
 
Inner classes inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.ClipboardObserver, JTextComponent.ComposedTextCaret, JTextComponent.DefaultKeymap, JTextComponent.InputMethodRequestsHandler, JTextComponent.KeyBinding, JTextComponent.KeymapActionMap, JTextComponent.KeymapWrapper, JTextComponent.MutableCaretEvent
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
private  JLabel _errorLabel
           
private  Position[] _errorListPositions
          The start position of each error in the list.
private  Hashtable _errorTable
          Table mapping Positions in the error list to JUnitErrors.
private  JLabel _fileLabel
           
private  HighlightManager _highlightManager
           
private  DefinitionsPane _lastDefPane
          The DefinitionsPane with the current error highlight.
private  HighlightManager.HighlightInfo _listHighlightTag
           
private  JPopupMenu _popMenu
           
private  JUnitPanel.JUnitErrorListPane.PopupAdapter _popupAdapter
           
private  int _selectedIndex
          Index into _errorListPositions of the currently selected error.
private  Window _stackFrame
           
private  JTextArea _stackTextArea
           
private  JLabel _testLabel
           
 
Fields inherited from class javax.swing.JEditorPane
charSetName, kit, kitLoaderRegistryKey, kitRegistryKey, kitTypeRegistryKey, managingFocus, pageLoadedListener, pageProperties, typeHandlers, uiClassID
 
Fields inherited from class javax.swing.text.JTextComponent
caret, caretColor, caretEvent, composedText, composedTextCaret, composedTextContent, composedTextEnd, composedTextStart, DEFAULT_KEYMAP, defaultClipboardOwner, disabledTextColor, editable, editor, FOCUS_ACCELERATOR_KEY, focusAccelerator, focusedComponent, highlighter, inputMethodRequestsHandler, keymap, keymapTable, margin, model, needToSendKeyTypedEvent, originalCaret, selectedTextColor, selectionColor
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, needsPaint, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JUnitPanel.JUnitErrorListPane()
          Constructs the ErrorListPane.
 
Method Summary
private  void _checkSync(Document doc)
          Checks the document being tested to see if it's in sync.
private  void _createPopupMenu()
           
private  void _displayStackTrace(JUnitError e)
           
private  JUnitError _errorAtPoint(Point p)
          Returns JUnitError associated with the given visual coordinates.
private  int _getIndexForError(JUnitError error)
          Returns the index into _errorListPositions corresponding to the given JUnitError.
private  void _gotoErrorSourceLocation(OpenDefinitionsDocument doc, int idx)
          Jumps to error location in source
private  void _insertErrorText(JUnitError[] array, int i, Document doc)
          Puts an error message into the array of errors at the specified index.
private  void _removeListHighlight()
          When the selection of the current error changes, remove the highlight in the error pane.
private  void _setupStackTraceFrame()
           
private  void _updateNoErrors(boolean haveTestsRun)
          Used to show that the last compile was successful.
private  void _updateWithErrors()
          Used to show that the last compile was unsuccessful.
 DefinitionsPane getLastDefPane()
          Gets the last DefinitionsPane with an error highlight.
 int getSelectedIndex()
          Get the index of the current error in the error array.
 void selectItem(JUnitError error)
          Selects the given error inside the error list pane.
 void selectNothing()
          Don't select any errors in the error pane.
 void setJUnitInProgress(OpenDefinitionsDocument odd)
          Puts the error pane into "compilation in progress" state.
 void setLastDefPane(DefinitionsPane pane)
          Allows the ErrorListPane to remember which DefinitionsPane currently has an error highlight.
 boolean shouldShowHighlightsInSource()
          Returns true if the errors should be highlighted in the source
(package private)  void switchToError(int index)
          Another interface to switchToError.
(package private)  void switchToError(JUnitError error)
          Change all state to select a new error, including moving the caret to the error, if a corresponding position exists.
 void updateListPane(boolean haveTestsRun)
          Update the pane which holds the list of errors for the viewer.
 
Methods inherited from class javax.swing.JEditorPane
, addHyperlinkListener, createDefaultEditorKit, createEditorKitForContentType, finalize, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getKitLoaderRegistry, getKitRegisty, getKitTypeRegistry, getPage, getPreferredSize, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getStream, getText, getUIClassID, isFocusCycleRoot, isManagingFocus, loadDefaultKitsIfNecessary, paramString, processComponentKeyEvent, processKeyEvent, read, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, replaceSelection, scrollToReference, setCharsetFromContentTypeParameters, setContentType, setEditorKit, setEditorKitForContentType, setPage, setPage, setText, writeObject
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, createComposedString, cut, exchangeCaret, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretPosition, getDisabledTextColor, getDocument, getFocusAccelerator, getFocusedComponent, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getUI, isEditable, isFocusTraversable, isProcessInputMethodEventOverridden, loadKeymap, mapCommittedTextToAction, modelToView, moveCaretPosition, paste, processInputMethodEvent, read, readObject, removeCaretListener, removeKeymap, removeNotify, replaceInputMethodText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDocument, setEditable, setFocusAccelerator, setHighlighter, setInputMethodCaretPosition, setKeymap, setMargin, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateInputMap, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isLightweightComponent, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

_selectedIndex

private int _selectedIndex
Index into _errorListPositions of the currently selected error.

_errorListPositions

private Position[] _errorListPositions
The start position of each error in the list. This position is the place where the error starts in the error list, as opposed to the place where the error exists in the source.

_errorTable

private final Hashtable _errorTable
Table mapping Positions in the error list to JUnitErrors.

_lastDefPane

private DefinitionsPane _lastDefPane
The DefinitionsPane with the current error highlight. (Initialized to the current pane.)

_listHighlightTag

private HighlightManager.HighlightInfo _listHighlightTag

_popMenu

private JPopupMenu _popMenu

_popupAdapter

private JUnitPanel.JUnitErrorListPane.PopupAdapter _popupAdapter

_stackFrame

private Window _stackFrame

_stackTextArea

private JTextArea _stackTextArea

_errorLabel

private final JLabel _errorLabel

_testLabel

private final JLabel _testLabel

_fileLabel

private final JLabel _fileLabel

_highlightManager

private HighlightManager _highlightManager
Constructor Detail

JUnitPanel.JUnitErrorListPane

public JUnitPanel.JUnitErrorListPane()
Constructs the ErrorListPane.
Method Detail

_createPopupMenu

private void _createPopupMenu()

_setupStackTraceFrame

private void _setupStackTraceFrame()

_checkSync

private void _checkSync(Document doc)
Checks the document being tested to see if it's in sync. If not, displays a message in the document in the test output pane.

_displayStackTrace

private void _displayStackTrace(JUnitError e)

shouldShowHighlightsInSource

public boolean shouldShowHighlightsInSource()
Returns true if the errors should be highlighted in the source
Returns:
the status of the JCheckBox _showHighlightsCheckBox

getSelectedIndex

public int getSelectedIndex()
Get the index of the current error in the error array.

setLastDefPane

public void setLastDefPane(DefinitionsPane pane)
Allows the ErrorListPane to remember which DefinitionsPane currently has an error highlight.

getLastDefPane

public DefinitionsPane getLastDefPane()
Gets the last DefinitionsPane with an error highlight.

_errorAtPoint

private JUnitError _errorAtPoint(Point p)
Returns JUnitError associated with the given visual coordinates. Returns null if none.

_getIndexForError

private int _getIndexForError(JUnitError error)
Returns the index into _errorListPositions corresponding to the given JUnitError.

updateListPane

public void updateListPane(boolean haveTestsRun)
Update the pane which holds the list of errors for the viewer.

setJUnitInProgress

public void setJUnitInProgress(OpenDefinitionsDocument odd)
Puts the error pane into "compilation in progress" state.

_updateNoErrors

private void _updateNoErrors(boolean haveTestsRun)
                      throws BadLocationException
Used to show that the last compile was successful.

_updateWithErrors

private void _updateWithErrors()
                        throws BadLocationException
Used to show that the last compile was unsuccessful.

_insertErrorText

private void _insertErrorText(JUnitError[] array,
                              int i,
                              Document doc)
                       throws BadLocationException
Puts an error message into the array of errors at the specified index.
Parameters:
array - the array of errors
i - the index at which the message will be inserted
doc - the document in the error pane

_removeListHighlight

private void _removeListHighlight()
When the selection of the current error changes, remove the highlight in the error pane.

selectNothing

public void selectNothing()
Don't select any errors in the error pane.

selectItem

public void selectItem(JUnitError error)
Selects the given error inside the error list pane.

switchToError

void switchToError(JUnitError error)
Change all state to select a new error, including moving the caret to the error, if a corresponding position exists.
Parameters:
doc - OpenDefinitionsDocument containing this error
errorNum - Error number, which is either in _errorsWithoutPositions (if errorNum < _errorsWithoutPositions.length) or in _errors (otherwise). If it's in _errors, we need to subtract _errorsWithoutPositions.length to get the index into the array.

switchToError

void switchToError(int index)
Another interface to switchToError.
Parameters:
index - Index into the array of positions in the ErrorListPane

_gotoErrorSourceLocation

private void _gotoErrorSourceLocation(OpenDefinitionsDocument doc,
                                      int idx)
Jumps to error location in source
Parameters:
doc - OpenDefinitionsDocument containing the error
idx - Index into _errors array