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

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JEditorPane
                      extended by edu.rice.cs.drjava.ui.ErrorPanel.ErrorListPane
All Implemented Interfaces:
ClipboardOwner, ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
Direct Known Subclasses:
JavadocErrorPanel.JavadocErrorListPane, JUnitPanel.JUnitErrorListPane
Enclosing class:
ErrorPanel

public abstract class ErrorPanel.ErrorListPane
extends JEditorPane
implements ClipboardOwner

Pane to show compiler errors. Similar to a listbox (clicking selects an item) but items can each wrap, etc.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.JEditorPaneAccessibleHypertextSupport
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Position[] _errorListPositions
          The start position of each error in the list.
protected  HashMap<Position,DJError> _errorTable
          Table mapping Positions in the error list to CompilerErrors.
protected  Keymap _keymap
          The custom keymap for the error list pane.
protected  MouseAdapter defaultMouseListener
           
 
Fields inherited from class javax.swing.JEditorPane
HONOR_DISPLAY_PROPERTIES, W3C_LENGTH_UNITS
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ErrorPanel.ErrorListPane()
          Constructs the CompilerErrorListPane.
 
Method Summary
protected  DJError _errorAtPoint(Point p)
          Returns DJError associated with the given visual coordinates.
protected  String _getErrorText()
          Returns the string to identify an error.
protected  String _getErrorTitle()
          Gets the message to title the block containing only errors.
protected  String _getNumErrorsMessage(String failureName, String failureMeaning)
          Gets the message indicating the number of errors and warnings.
protected  String _getWarningText()
          Returns the string to identify a warning.
protected  String _getWarningTitle()
          Gets the message to title the block containing only warnings.
protected  void _insertErrors(SwingDocument doc)
          Inserts all of the errors into the given document.
protected  void _insertErrorText(DJError error, SwingDocument doc)
          Prints a message for the given error
protected  boolean _isEmptySelection()
          Returns true if the text selection interval is empty.
protected  void _removeListHighlight()
          When the selection of the current error changes, remove the highlight in the error pane.
protected abstract  void _updateNoErrors(boolean done)
           
protected  void _updateScrollButtons()
           
protected abstract  void _updateWithErrors()
           
protected  void _updateWithErrors(String failureName, String failureMeaning, SwingDocument doc)
          Used to show that the last compile was unsuccessful.
 void addActionForKeyStroke(KeyStroke stroke, Action action)
          Assigns the given keystroke to the given action in this pane.
 int getSelectedIndex()
          Get the index of the current error in the error array.
 SwingDocument getSwingDocument()
          Gets the SwingDocument associated with this ErrorListPane.
 boolean hasNextError()
          Returns true if there is an error after the selected error.
 boolean hasPrevError()
          Returns true if there is an error before the selected error.
 void lostOwnership(Clipboard clipboard, Transferable contents)
          We lost ownership of what we put in the clipboard.
 void nextError()
          Switches to the next error.
 void prevError()
          Switches to the previous error.
 void selectItem(DJError error)
          Selects the given error inside the error list pane.
 void selectNothing()
          Don't select any errors in the error pane.
 boolean shouldShowHighlightsInSource()
          Returns true if the errors should be highlighted in the source
protected  void updateListPane(boolean done)
          Update the pane which holds the list of errors for the viewer.
 
Methods inherited from class javax.swing.JEditorPane
addHyperlinkListener, createDefaultEditorKit, createEditorKitForContentType, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getHyperlinkListeners, getPage, getPreferredSize, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getStream, getText, getUIClassID, paramString, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, replaceSelection, scrollToReference, setContentType, setEditorKit, setEditorKitForContentType, setPage, setPage, setText
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_keymap

protected Keymap _keymap
The custom keymap for the error list pane.


_errorListPositions

protected 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

protected final HashMap<Position,DJError> _errorTable
Table mapping Positions in the error list to CompilerErrors.


defaultMouseListener

protected MouseAdapter defaultMouseListener
Constructor Detail

ErrorPanel.ErrorListPane

public ErrorPanel.ErrorListPane()
Constructs the CompilerErrorListPane.

Method Detail

getSwingDocument

public SwingDocument getSwingDocument()
Gets the SwingDocument associated with this ErrorListPane. The inherited getDocument method must be preserved because the ErrorListPane constructor uses it fetch a Document that is NOT a SwingDocument. ErrorListPane immediately sets the Document corresponding to this JEditorPane to a SwingDocument and strictly maintains it as a SwingDocument, but the JEditorPane constructor binds its document to a PlainDocument and uses getDocument before ErrorListPane can set this field to a SwingDocument.


addActionForKeyStroke

public void addActionForKeyStroke(KeyStroke stroke,
                                  Action action)
Assigns the given keystroke to the given action in this pane.

Parameters:
stroke - keystroke that triggers the action
action - Action to perform

lostOwnership

public void lostOwnership(Clipboard clipboard,
                          Transferable contents)
We lost ownership of what we put in the clipboard.

Specified by:
lostOwnership in interface ClipboardOwner

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.


_errorAtPoint

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


_isEmptySelection

protected boolean _isEmptySelection()
Returns true if the text selection interval is empty.


updateListPane

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


_updateNoErrors

protected abstract void _updateNoErrors(boolean done)
                                 throws BadLocationException
Throws:
BadLocationException

_updateWithErrors

protected abstract void _updateWithErrors()
                                   throws BadLocationException
Throws:
BadLocationException

_getNumErrorsMessage

protected String _getNumErrorsMessage(String failureName,
                                      String failureMeaning)
Gets the message indicating the number of errors and warnings.


_getErrorTitle

protected String _getErrorTitle()
Gets the message to title the block containing only errors.


_getWarningTitle

protected String _getWarningTitle()
Gets the message to title the block containing only warnings.


_updateWithErrors

protected void _updateWithErrors(String failureName,
                                 String failureMeaning,
                                 SwingDocument doc)
                          throws BadLocationException
Used to show that the last compile was unsuccessful.

Throws:
BadLocationException

hasNextError

public boolean hasNextError()
Returns true if there is an error after the selected error.


hasPrevError

public boolean hasPrevError()
Returns true if there is an error before the selected error.


nextError

public void nextError()
Switches to the next error.


prevError

public void prevError()
Switches to the previous error.


_insertErrors

protected void _insertErrors(SwingDocument doc)
                      throws BadLocationException
Inserts all of the errors into the given document.

Parameters:
doc - the document into which to insert the errors
Throws:
BadLocationException

_insertErrorText

protected void _insertErrorText(DJError error,
                                SwingDocument doc)
                         throws BadLocationException
Prints a message for the given error

Parameters:
error - the error to print
doc - the document in the error pane
Throws:
BadLocationException

_getWarningText

protected String _getWarningText()
Returns the string to identify a warning.


_getErrorText

protected String _getErrorText()
Returns the string to identify an error.


_removeListHighlight

protected 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(DJError error)
Selects the given error inside the error list pane.


_updateScrollButtons

protected void _updateScrollButtons()