edu.rice.cs.drjava.ui
Class CompilerErrorPanel.ErrorListPane

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

public class CompilerErrorPanel.ErrorListPane
extends JEditorPane

A pane to show compiler 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 CompilerErrorPanel.ErrorListPane.CompilerErrorColorOptionListener
          The OptionListener for compiler COMPILER_ERROR_COLOR
 
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  Position[] _errorListPositions
          The start position of each error in the list.
private  Hashtable _errorTable
          Table mapping Positions in the error list to CompilerErrors.
private  HighlightManager _highlightManager
           
private  DefinitionsPane _lastDefPane
          The DefinitionsPane with the current error highlight.
private  HighlightManager.HighlightInfo _listHighlightTag
           
private  MouseAdapter _mouseListener
           
private  int _selectedIndex
          Index into _errorListPositions of the currently selected error.
 
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
CompilerErrorPanel.ErrorListPane()
          Constructs the ErrorListPane.
 
Method Summary
private  CompilerError _errorAtPoint(Point p)
          Returns CompilerError associated with the given visual coordinates.
private  int _getIndexForError(CompilerError error)
          Returns the index into _errorListPositions corresponding to the given CompilerError.
private  void _gotoErrorSourceLocation(OpenDefinitionsDocument doc, int idx)
          Jumps to error location in source
private  void _insertErrorText(CompilerError[] 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 _updateNoErrors()
          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(CompilerError error)
          Selects the given error inside the error list pane.
 void selectNothing()
          Don't select any errors in the error pane.
 void setCompilationInProgress()
          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(CompilerError error)
          Change all state to select a new error, including moving the caret to the error, if a corresponding position exists.
(package private)  void switchToError(int index)
          Another interface to switchToError.
 void updateListPane()
          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 CompilerErrors.

_lastDefPane

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

_listHighlightTag

private HighlightManager.HighlightInfo _listHighlightTag

_highlightManager

private HighlightManager _highlightManager

_mouseListener

private MouseAdapter _mouseListener
Constructor Detail

CompilerErrorPanel.ErrorListPane

public CompilerErrorPanel.ErrorListPane()
Constructs the ErrorListPane.
Method Detail

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 CompilerError _errorAtPoint(Point p)
Returns CompilerError associated with the given visual coordinates. Returns null if none.

_getIndexForError

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

updateListPane

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

setCompilationInProgress

public void setCompilationInProgress()
Puts the error pane into "compilation in progress" state.

_updateNoErrors

private void _updateNoErrors()
                      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(CompilerError[] 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(CompilerError error)
Selects the given error inside the error list pane.

switchToError

void switchToError(CompilerError 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