org.crosswire.bibledesktop.book

## Class DisplaySelectPane

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - org.crosswire.bibledesktop.book.DisplaySelectPane

- All Implemented Interfaces:
    ImageObserver, MenuContainer, Serializable, EventListener, Accessible, BookSelectListener, KeyChangeListener, org.crosswire.jsword.book.BookProvider

      public class DisplaySelectPane
      extends JPanel
      implements KeyChangeListener, BookSelectListener, org.crosswire.jsword.book.BookProvider

  Passage Selection area.
  Author:
    Joe Walker, DM Smith
  See Also:
    `for license details.`, Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private static class` | `DisplaySelectPane.Mode` Defines the state of this DisplaySelectPane

    - ### 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 ActionFactory` | `actions`
    `private AdvancedSearchPane` | `advanced`
    `private static int` | `base`
    `private ParallelBookPicker` | `biblePicker`
    `private JButton` | `btnAdvanced`
    `private JButton` | `btnIndex`
    `private JButton` | `btnKey`
    `private JButton` | `btnKeyGo`
    `private JButton` | `btnSearch`
    `private QuickHelpDialog` | `dlgHelp`
    `private PassageSelectionPane` | `dlgSelect`
    `private org.crosswire.jsword.index.IndexStatusListener` | `isl` Keep the selection up to date with indexing.
    `protected org.crosswire.jsword.passage.Key` | `key` The current passage.
    `private EventListenerList` | `listeners` Who is interested in things this DisplaySelectPane does
    `private static int` | `maxNumRankedVerses` What is the limit to which numRankedVerses can be set.
    `private DisplaySelectPane.Mode` | `mode` The current state of the display: SEARCH, PASSAGE, CLEAR
    `private static int` | `numRankedVerses` How may hits to show when the search results are ranked.
    `private BibleComboBoxModelSet` | `quickSet`
    `private org.crosswire.jsword.book.Book[]` | `selected`
    `private static long` | `serialVersionUID` Serialization ID
    `private String` | `title`
    `protected JTextField` | `txtKey`
    `protected JTextField` | `txtSearch`

    - ### 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
    Constructor and Description
    `DisplaySelectPane()` General constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCommandListener(DisplaySelectListener li)` Add a DisplaySelectEvent listener
    `void` | `addTitleChangedListener(TitleChangedListener li)` Add a TitleChangedEvent listener
    `void` | `booksChosen(BookSelectEvent ev)` Notify that the list of Books has changed.
    `void` | `clear()` Clear the contents
    `void` | `doAdvanced()` Someone has clicked on the advanced search button
    `void` | `doGoPassage()` Go button was clicked
    `void` | `doGoSearch()` Go button was clicked
    `void` | `doHelpAction()` Someone clicked help
    `void` | `doIndex()` Someone clicked one the index button
    `void` | `doInitialTextDisplay()` During view creation, allow firing off an event to display the initial book/chapter.
    `void` | `doMore()` More (...) button was clicked
    `void` | `doPassageAction()` Someone pressed return in the passage area
    `void` | `doRank()` Rank is an action, but we don't need to do anything because rank is only used when search is clicked.
    `void` | `doSearchAction()` Someone pressed return in the search area
    `(package private) void` | `enableComponents()` Ensure that the right components are enabled
    `protected void` | `fireCommandMade(DisplaySelectEvent ev)` Inform the command listeners
    `protected void` | `fireTitleChanged(TitleChangedEvent ev)` Listen for changes to the title
    `protected void` | `fireVersionChanged(DisplaySelectEvent ev)` Inform the version listeners
    `ParallelBookPicker` | `getBiblePicker()`
    `org.crosswire.jsword.book.Book[]` | `getBooks()` What are the currently selected Books?
    `org.crosswire.jsword.book.Book` | `getFirstBook()` What is the first currently selected book?
    `static int` | `getMaxNumRankedVerses()`
    `static int` | `getNumRankedVerses()` Gets the number of verses that should be shown when a search result is ranked.
    `String` | `getTitle()` Accessor for the default name
    `private void` | `initialize()` Initialize the GUI
    `boolean` | `isClear()` Determine whether there is content
    `void` | `keyChanged(KeyChangeEvent ev)` This method is called to indicate that a key has been changed.
    `private void` | `noBookInstalled()` Display a dialog indicating that no Bible is installed.
    `private void` | `readObject(ObjectInputStream is)` Serialization support.
    `void` | `removeCommandListener(DisplaySelectListener li)` Remove a DisplaySelectEvent listener
    `void` | `removeTitleChangedListener(TitleChangedListener li)` Remove a TitleChangedEvent listener
    `void` | `setKey(org.crosswire.jsword.passage.Key newKey)` Set the key
    `void` | `setKey(String newKey)` Set the key
    `static void` | `setMaxNumRankedVerses(int newMaxNumRankedVerses)`
    `static void` | `setNumRankedVerses(int newNumRankedVerses)` Sets the number of verses that should be shown when a search result is ranked.
    `private void` | `setTitle(DisplaySelectPane.Mode clear)`
    `(package private) void` | `showSelectDialog()` Someone clicked the "..." button
    `private void` | `updateDisplay()` Sync the viewed passage with the passage text box

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

    - #### isl

          private transient org.crosswire.jsword.index.IndexStatusListener isl

      Keep the selection up to date with indexing.

    - #### base

          private static int base

    - #### title

          private String title

    - #### dlgHelp

          private QuickHelpDialog dlgHelp

    - #### actions

          private transient ActionFactory actions

    - #### selected

          private transient org.crosswire.jsword.book.Book[] selected

    - #### quickSet

          private BibleComboBoxModelSet quickSet

    - #### dlgSelect

          private PassageSelectionPane dlgSelect

    - #### biblePicker

          private ParallelBookPicker biblePicker

    - #### txtKey

          protected JTextField txtKey

    - #### txtSearch

          protected JTextField txtSearch

    - #### btnAdvanced

          private JButton btnAdvanced

    - #### btnSearch

          private JButton btnSearch

    - #### btnKey

          private JButton btnKey

    - #### btnKeyGo

          private JButton btnKeyGo

    - #### advanced

          private AdvancedSearchPane advanced

    - #### btnIndex

          private JButton btnIndex

    - #### mode

          private DisplaySelectPane.Mode mode

      The current state of the display: SEARCH, PASSAGE, CLEAR

    - #### key

          protected org.crosswire.jsword.passage.Key key

      The current passage.

    - #### listeners

          private transient EventListenerList listeners

      Who is interested in things this DisplaySelectPane does

    - #### numRankedVerses

          private static int numRankedVerses

      How may hits to show when the search results are ranked.

    - #### maxNumRankedVerses

          private static int maxNumRankedVerses

      What is the limit to which numRankedVerses can be set.

    - #### serialVersionUID

          private static final long serialVersionUID

      Serialization ID
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DisplaySelectPane

          public DisplaySelectPane()

      General constructor

  - ### Method Detail

    - #### initialize

          private void initialize()

      Initialize the GUI

    - #### doInitialTextDisplay

          public void doInitialTextDisplay()

      During view creation, allow firing off an event to display the initial book/chapter. This is copied from quickSet.addActionListener().

    - #### getBooks

          public org.crosswire.jsword.book.Book[] getBooks()

      What are the currently selected Books?
      Specified by:
        `getBooks` in interface `org.crosswire.jsword.book.BookProvider`

    - #### getFirstBook

          public org.crosswire.jsword.book.Book getFirstBook()

      What is the first currently selected book?
      Specified by:
        `getFirstBook` in interface `org.crosswire.jsword.book.BookProvider`

    - #### clear

          public void clear()

      Clear the contents

    - #### isClear

          public boolean isClear()

      Determine whether there is content

    - #### doMore

          public void doMore()

      More (...) button was clicked

    - #### doGoPassage

          public void doGoPassage()

      Go button was clicked

    - #### doGoSearch

          public void doGoSearch()

      Go button was clicked

    - #### doPassageAction

          public void doPassageAction()

      Someone pressed return in the passage area

    - #### doSearchAction

          public void doSearchAction()

      Someone pressed return in the search area

    - #### doAdvanced

          public void doAdvanced()

      Someone has clicked on the advanced search button

    - #### doRank

          public void doRank()

      Rank is an action, but we don't need to do anything because rank is only used when search is clicked. But ActionFactory will complain if we leave it out.

    - #### doHelpAction

          public void doHelpAction()

      Someone clicked help

    - #### doIndex

          public void doIndex()

      Someone clicked one the index button

    - #### updateDisplay

          private void updateDisplay()

      Sync the viewed passage with the passage text box

    - #### getTitle

          public String getTitle()

      Accessor for the default name

    - #### getBiblePicker

          public ParallelBookPicker getBiblePicker()

      Returns:
        the picker

    - #### setKey

          public void setKey(String newKey)

      Set the key
      Parameters:
        `newKey` - the new key

    - #### setKey

          public void setKey(org.crosswire.jsword.passage.Key newKey)

      Set the key
      Parameters:
        `newKey` - the new key

    - #### getNumRankedVerses

          public static int getNumRankedVerses()

      Gets the number of verses that should be shown when a search result is ranked. A value of 0 means show all.
      Returns:
        Returns the numRankedVerses.

    - #### setNumRankedVerses

          public static void setNumRankedVerses(int newNumRankedVerses)

      Sets the number of verses that should be shown when a search result is ranked. This can be a value in the range of 0 to maxNumRankedVerses. Values outside this range are silently constrained to the range.
      Parameters:
        `newNumRankedVerses` - The numRankedVerses to set.

    - #### getMaxNumRankedVerses

          public static int getMaxNumRankedVerses()

      Returns:
        Returns the maxNumRankedVerses.

    - #### setMaxNumRankedVerses

          public static void setMaxNumRankedVerses(int newMaxNumRankedVerses)

      Parameters:
        `newMaxNumRankedVerses` - The maxNumRankedVerses to set.

    - #### setTitle

          private void setTitle(DisplaySelectPane.Mode clear)

    - #### noBookInstalled

          private void noBookInstalled()

      Display a dialog indicating that no Bible is installed.

    - #### enableComponents

          final void enableComponents()

      Ensure that the right components are enabled

    - #### showSelectDialog

          final void showSelectDialog()

      Someone clicked the "..." button

    - #### booksChosen

          public void booksChosen(BookSelectEvent ev)

      Description copied from interface: `BookSelectListener`
      Notify that the list of Books has changed.
      Specified by:
        `booksChosen` in interface `BookSelectListener`
      Parameters:
        `ev` - Describes the change

    - #### keyChanged

          public void keyChanged(KeyChangeEvent ev)

      Description copied from interface: `KeyChangeListener`
      This method is called to indicate that a key has been changed.
      Specified by:
        `keyChanged` in interface `KeyChangeListener`
      Parameters:
        `ev` - Describes the change

    - #### addTitleChangedListener

          public void addTitleChangedListener(TitleChangedListener li)

      Add a TitleChangedEvent listener

    - #### removeTitleChangedListener

          public void removeTitleChangedListener(TitleChangedListener li)

      Remove a TitleChangedEvent listener

    - #### fireTitleChanged

          protected void fireTitleChanged(TitleChangedEvent ev)

      Listen for changes to the title
      Parameters:
        `ev` - the event to throw

    - #### addCommandListener

          public void addCommandListener(DisplaySelectListener li)

      Add a DisplaySelectEvent listener

    - #### removeCommandListener

          public void removeCommandListener(DisplaySelectListener li)

      Remove a DisplaySelectEvent listener

    - #### fireCommandMade

          protected void fireCommandMade(DisplaySelectEvent ev)

      Inform the command listeners

    - #### fireVersionChanged

          protected void fireVersionChanged(DisplaySelectEvent ev)

      Inform the version listeners

    - #### readObject

          private void readObject(ObjectInputStream is)
                           throws IOException,
                                  ClassNotFoundException

      Serialization support.
      Parameters:
        `is` -
      Throws:
        `IOException`
        `ClassNotFoundException`