eTextReader.search
Class FindPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.Box
                  extended by eTextReader.search.FindPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class FindPanel
extends javax.swing.Box

A panel for use in searching within the context of the eTextReader system

Version:
1.1 7-15-04
Author:
Chris Johnson
See Also:
Serialized Form

Nested Class Summary
 class FindPanel.FindListener
           
 
Nested classes/interfaces inherited from class javax.swing.Box
javax.swing.Box.AccessibleBox, javax.swing.Box.Filler
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  int beginSearchIndex
           
private  javax.swing.JButton cancelButton
           
private  javax.swing.JCheckBox caseSensitive
           
private  javax.swing.JButton clearButton
           
private  DBClient client
          Used to retrieve information about which pages the current user has viewed
(package private) static java.util.Comparator<WebpageRelevance> comparator
           
private  CursorHandler cursorHandler
          Used to ensure that changes to cursors are undone appropriately
private  java.util.List<SearchEventListener> eventListeners
          A list of objects who have registered interest in receiving notification about search events
private  javax.swing.JCheckBox exactSearch
           
private  javax.swing.JButton findButton
           
(package private)  FindDatePanel findDatePanel
          Allows user to select a date range to search in
private  javax.swing.JButton findNextButton
           
private  javax.swing.JComboBox findType
           
private  int lastSearchIndex
           
private  java.util.ArrayList lastSearchIndexes
           
private  java.lang.String lastSearchTerm
           
private  boolean lastWasExactSearch
           
private static java.awt.Color SEARCH_SELECTION_COLOR
          The color used to select text
private  javax.swing.JTextField searchTermField
           
private  java.util.List<java.lang.String> searchTerms
          A List holding the current search terms
private  TabbedContentPane tabbed
           
 
Fields inherited from class javax.swing.Box
accessibleContext
 
Fields inherited from class javax.swing.JComponent
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
FindPanel(TabbedContentPane tabbed)
           
 
Method Summary
 void addNotify()
           
 void addSearchEventListener(SearchEventListener listener)
           
 void clear()
           
private  void conductSearch(java.util.HashMap indexed)
           
protected  void fireSearchEvent(SearchEvent.EVENT_TYPE type, java.lang.Object argument)
           
 javax.swing.JCheckBox getExactSearch()
           
 SEARCH_TYPE getFindType()
           
 java.util.List<java.lang.String> getSearchTerms()
           
 TabbedContentPane getTabbedContentPane()
           
 java.lang.String getText()
           
 void highlightContent(java.lang.String argument)
          highlights the document at the position indicated (caused by navigating to a search result)
 void highlightSelection(java.lang.String start, java.lang.String end)
           
 void highlightSelections(java.util.ArrayList<SelectionAddress> allAddresses)
           
 boolean isCaseSensitive()
           
 void registerLogListener(Browser.LogListener loglistener)
           
 void removeSearchEventListener(SearchEventListener listener)
           
 void removeSearchingHighlights()
           
 void repaintHighlights()
           
 void reset()
           
private  void searchEntireTextbook()
           
private  void searchInCurrentPage()
           
private  void searchInPagesViewed()
           
private  void searchInSpecifiedRange()
           
 void setExactSearch(boolean isExact)
          Allows control of whether or not the exact search checkbox is selected
 void setText(java.lang.String text)
           
private  void setupContents()
           
 
Methods inherited from class javax.swing.Box
createGlue, createHorizontalBox, createHorizontalGlue, createHorizontalStrut, createRigidArea, createVerticalBox, createVerticalGlue, createVerticalStrut, getAccessibleContext, setLayout
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, transferFocusBackward, 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, 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, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SEARCH_SELECTION_COLOR

private static final java.awt.Color SEARCH_SELECTION_COLOR
The color used to select text


comparator

static java.util.Comparator<WebpageRelevance> comparator

searchTermField

private javax.swing.JTextField searchTermField

caseSensitive

private javax.swing.JCheckBox caseSensitive

exactSearch

private javax.swing.JCheckBox exactSearch

findButton

private javax.swing.JButton findButton

clearButton

private javax.swing.JButton clearButton

cancelButton

private javax.swing.JButton cancelButton

findType

private javax.swing.JComboBox findType

tabbed

private TabbedContentPane tabbed

lastWasExactSearch

private boolean lastWasExactSearch

lastSearchIndex

private int lastSearchIndex

beginSearchIndex

private int beginSearchIndex

lastSearchIndexes

private java.util.ArrayList lastSearchIndexes

lastSearchTerm

private java.lang.String lastSearchTerm

findDatePanel

FindDatePanel findDatePanel
Allows user to select a date range to search in


client

private DBClient client
Used to retrieve information about which pages the current user has viewed


cursorHandler

private CursorHandler cursorHandler
Used to ensure that changes to cursors are undone appropriately


eventListeners

private java.util.List<SearchEventListener> eventListeners
A list of objects who have registered interest in receiving notification about search events


searchTerms

private java.util.List<java.lang.String> searchTerms
A List holding the current search terms


findNextButton

private javax.swing.JButton findNextButton
Constructor Detail

FindPanel

public FindPanel(TabbedContentPane tabbed)
Method Detail

addSearchEventListener

public void addSearchEventListener(SearchEventListener listener)

removeSearchEventListener

public void removeSearchEventListener(SearchEventListener listener)

fireSearchEvent

protected void fireSearchEvent(SearchEvent.EVENT_TYPE type,
                               java.lang.Object argument)

reset

public void reset()

isCaseSensitive

public boolean isCaseSensitive()

getExactSearch

public javax.swing.JCheckBox getExactSearch()

getText

public java.lang.String getText()

setText

public void setText(java.lang.String text)

getFindType

public SEARCH_TYPE getFindType()

clear

public void clear()

setupContents

private void setupContents()

registerLogListener

public void registerLogListener(Browser.LogListener loglistener)

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JComponent

searchInCurrentPage

private void searchInCurrentPage()

searchInPagesViewed

private void searchInPagesViewed()

searchInSpecifiedRange

private void searchInSpecifiedRange()

searchEntireTextbook

private void searchEntireTextbook()

conductSearch

private void conductSearch(java.util.HashMap indexed)

highlightContent

public void highlightContent(java.lang.String argument)
highlights the document at the position indicated (caused by navigating to a search result)

Parameters:
argument - the string specifying the addresses for highlighting

highlightSelections

public void highlightSelections(java.util.ArrayList<SelectionAddress> allAddresses)

highlightSelection

public void highlightSelection(java.lang.String start,
                               java.lang.String end)

removeSearchingHighlights

public void removeSearchingHighlights()

repaintHighlights

public void repaintHighlights()

getSearchTerms

public java.util.List<java.lang.String> getSearchTerms()

getTabbedContentPane

public TabbedContentPane getTabbedContentPane()

setExactSearch

public void setExactSearch(boolean isExact)
Allows control of whether or not the exact search checkbox is selected

Parameters:
isExact -