org.crosswire.common.swing

## Class ExceptionPane

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - org.crosswire.common.swing.ExceptionPane

- All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable, Accessible

      public final class ExceptionPane
      extends JPanel

  A simple way of reporting problems to the user.
  Author:
    Joe Walker
  See Also:
    `The GNU General Public License for details.`, Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private static class` | `ExceptionPane.CustomLister` List listener to update the contents of the text area whenever someone clicks in the list
    `(package private) static class` | `ExceptionPane.ExceptionPaneReporterListener` The ExceptionPane instance that we add to the Log
    `private static class` | `ExceptionPane.ExceptionRunner`
    `private static class` | `ExceptionPane.MessageRunner`
    `private static class` | `ExceptionPane.SelectActionListener`
    `private static class` | `ExceptionPane.SelectedItemListener`

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `JPanel.AccessibleJPanel`

    - ### 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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private JCheckBox` | `detail`
    `private static boolean` | `detailShown` Whether full details should be given.
    `private Throwable` | `ex` The exception we are displaying
    `private JLabel` | `label`
    `private static ExceptionPane.ExceptionPaneReporterListener` | `li` The listener that pops up the ExceptionPanes
    `private JList` | `list`
    `private JPanel` | `lower`
    `private JPanel` | `okBox`
    `private static long` | `serialVersionUID` Serialization ID
    `private static File[]` | `sources` The directories searched for source
    `private JTextArea` | `text`
    `private JPanel` | `upper`

    - ### 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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `private` | `ExceptionPane(Throwable ex)` Use showExceptionDialog for the time being

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `changeDetail()` Is the detail area shown?
    `static String` | `getHTMLDescription(Throwable ex)` Gets a short HTML description of an Exception for display in a window
    `static File[]` | `getSourcePath()` Get the directories searched for source files.
    `private void` | `initialise()` Setup the GUI
    `static boolean` | `isDetailShown()` This is only used by config
    `static void` | `setDetailShown(boolean detailShown)` Set whether the "details" check box should be shown.
    `protected void` | `setDisplayedException(Throwable ex)` Display a different nested exception
    `static void` | `setHelpDeskListener(boolean joined)` You must call setJoinHelpDesk() in order to start displaying Exceptions sent to the Log, and in order to properly close this class you must call it again (with false).
    `static void` | `setSourcePath(File[] sourcePath)` Set the directories to search for source files.
    `static void` | `showExceptionDialog(Component parent, Throwable ex)` Show a dialog containing the exception

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, 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, 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, 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, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ex

          private Throwable ex

      The exception we are displaying

    - #### list

          private JList list

    - #### upper

          private JPanel upper

    - #### label

          private JLabel label

    - #### text

          private JTextArea text

    - #### okBox

          private JPanel okBox

    - #### detail

          private JCheckBox detail

    - #### lower

          private JPanel lower

    - #### detailShown

          private static boolean detailShown

      Whether full details should be given.

    - #### sources

          private static File[] sources

      The directories searched for source

    - #### li

          private static ExceptionPane.ExceptionPaneReporterListener li

      The listener that pops up the ExceptionPanes

    - #### serialVersionUID

          private static final long serialVersionUID

      Serialization ID
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ExceptionPane

          private ExceptionPane(Throwable ex)

      Use showExceptionDialog for the time being

  - ### Method Detail

    - #### initialise

          private void initialise()

      Setup the GUI

    - #### changeDetail

          protected void changeDetail()

      Is the detail area shown?

    - #### setDisplayedException

          protected void setDisplayedException(Throwable ex)

      Display a different nested exception

    - #### showExceptionDialog

          public static void showExceptionDialog(Component parent,
                                 Throwable ex)

      Show a dialog containing the exception
      Parameters:
        `parent` - Something to attach the Dialog to
        `ex` - The Exception to display

    - #### isDetailShown

          public static boolean isDetailShown()

      This is only used by config
      Returns:
        Whether the "details" check box should be shown.
      See Also:
        `setDetailShown(boolean)`

    - #### setDetailShown

          public static void setDetailShown(boolean detailShown)

      Set whether the "details" check box should be shown.
      Parameters:
        `detailShown` - indicates the whether details should be available.
      See Also:
        `isDetailShown()`

    - #### setSourcePath

          public static void setSourcePath(File[] sourcePath)

      Set the directories to search for source files.
      Parameters:
        `sourcePath` - A string array of the source directories

    - #### getSourcePath

          public static File[] getSourcePath()

      Get the directories searched for source files.
      Returns:
        A string array of the source directories

    - #### setHelpDeskListener

          public static void setHelpDeskListener(boolean joined)

      You must call setJoinHelpDesk() in order to start displaying Exceptions sent to the Log, and in order to properly close this class you must call it again (with false).
      Parameters:
        `joined` - Are we listening to the Log

    - #### getHTMLDescription

          public static String getHTMLDescription(Throwable ex)

      Gets a short HTML description of an Exception for display in a window