|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
net.sourceforge.olduvai.treejuxtaposer.IncrementalSearch
public class IncrementalSearch
Incremental search functionality and GUI class. Typing letter by letter will search a cache of results and display matches. The cache grows over time without bound.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JFrame |
---|
javax.swing.JFrame.AccessibleJFrame |
Nested classes/interfaces inherited from class java.awt.Frame |
---|
java.awt.Frame.AccessibleAWTFrame |
Nested classes/interfaces inherited from class java.awt.Window |
---|
java.awt.Window.AccessibleAWTWindow |
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary | |
---|---|
private static java.lang.String |
initialText
Initial text in comment box searchStatus . |
private static boolean |
matchPrefixOnly
Set to true for just matching prefixes, false for matching anywhere in the string. |
private int |
numFound
The number of items in the list of results results . |
private java.util.Hashtable |
prefix
Cache of results, indexed by substrings of previously found. |
private javax.swing.JButton |
resetButton
Reset button |
private javax.swing.JTextField |
results
Text that is put into the results pane resultsPane . |
private javax.swing.JScrollPane |
resultsPane
Pane for picking results that can be scrolled. |
private static int |
returnThreshold
Highlight search results found if under (or equal to) this threshold |
private javax.swing.JList |
searchResults
List of results that can be picked that is put into the text field results . |
private javax.swing.JTextArea |
searchStatus
Comment box that displays the number of things that match a user selection. |
private javax.swing.JScrollPane |
statusPane
Pane for the search status searchStatus . |
private TreeJuxtaposer |
tj
The TJ for this set of found results, for calling updates to the drawers. |
Fields inherited from class javax.swing.JFrame |
---|
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled |
Fields inherited from class java.awt.Frame |
---|
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface javax.swing.WindowConstants |
---|
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
IncrementalSearch(TreeJuxtaposer tj)
Initialize the search box with default values. |
|
IncrementalSearch(TreeJuxtaposer tj,
java.util.ArrayList initialList)
Initialize the search box with a list of names. |
Method Summary | |
---|---|
void |
actionPerformed(java.awt.event.ActionEvent arg0)
Action Listener for the reset button. |
private void |
doUI()
Set up the user interface. |
void |
initializeList(java.util.ArrayList nameList)
Initialize nodes in the search list if the input is not null. |
void |
keyPressed(java.awt.event.KeyEvent e)
Stub function, use keyReleased(KeyEvent) events to fully support copy/paste/delete/typing. |
void |
keyReleased(java.awt.event.KeyEvent evt)
Triggers the search function after a key is released. |
void |
keyTyped(java.awt.event.KeyEvent e)
Stub function, use keyReleased(KeyEvent) events to fully support copy/paste/delete/typing. |
static void |
main(java.lang.String[] args)
Static test function, standalone testing on this class. |
private java.util.ArrayList |
partialResult()
Check cache for previous results that match text input. |
private java.util.ArrayList |
recursiveSearch(java.lang.String text)
Search hashtable ( prefix ) for the given text. |
void |
resetSearch()
Reset the search results to empty, redraws in all drawers. |
void |
valueChanged(javax.swing.event.ListSelectionEvent evt)
List change detection function. |
Methods inherited from class javax.swing.JFrame |
---|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update |
Methods inherited from class java.awt.Frame |
---|
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated |
Methods inherited from class java.awt.Window |
---|
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.awt.MenuContainer |
---|
getFont, postEvent |
Field Detail |
---|
private static java.lang.String initialText
searchStatus
.
private javax.swing.JScrollPane resultsPane
private javax.swing.JList searchResults
results
.
private javax.swing.JScrollPane statusPane
searchStatus
.
private javax.swing.JTextArea searchStatus
private javax.swing.JTextField results
resultsPane
.
private java.util.Hashtable prefix
private TreeJuxtaposer tj
private int numFound
results
.
private javax.swing.JButton resetButton
private static final int returnThreshold
private static boolean matchPrefixOnly
Constructor Detail |
---|
public IncrementalSearch(TreeJuxtaposer tj)
tj
- The TJ for this search box.public IncrementalSearch(TreeJuxtaposer tj, java.util.ArrayList initialList)
tj
- The TJ for this search box.initialList
- A list of names to use with search. Used mostly for testing.Method Detail |
---|
private void doUI()
public void initializeList(java.util.ArrayList nameList)
nameList
- List of names to put into the search dialog. If this is null, do nothing.
TJ (TreeJuxtaposer.addNamesToSearchList()
) will call this function again and set this list to the list of named nodes after laying out the tree.private java.util.ArrayList recursiveSearch(java.lang.String text)
prefix
) for the given text. If not in the hashtable, use result of
string except for last character and reduce that list with the full text input.
Recursion is done first, so all prefixes of the text should be in the hash table.
Called by
text
- Text string to search for in the hash, to recover a list of matches.
private java.util.ArrayList partialResult()
recursiveSearch(String)
, which will fill in the cache to
get a correct result. This is called by the keyReleased(KeyEvent)
event handler.
recursiveSearch(String)
if input text is not found).public void resetSearch()
public static void main(java.lang.String[] args)
args
- Input, not usedpublic void valueChanged(javax.swing.event.ListSelectionEvent evt)
searchStatus
).
valueChanged
in interface javax.swing.event.ListSelectionListener
evt
- List change event, on the list searchResults
. This is ignored in place of re-reading the list content.public void keyReleased(java.awt.event.KeyEvent evt)
keyReleased
in interface java.awt.event.KeyListener
evt
- Key release event.public void keyTyped(java.awt.event.KeyEvent e)
keyReleased(KeyEvent)
events to fully support copy/paste/delete/typing.
keyTyped
in interface java.awt.event.KeyListener
e
- Key typing event.public void keyPressed(java.awt.event.KeyEvent e)
keyReleased(KeyEvent)
events to fully support copy/paste/delete/typing.
keyPressed
in interface java.awt.event.KeyListener
e
- Key press event.public void actionPerformed(java.awt.event.ActionEvent arg0)
actionPerformed
in interface java.awt.event.ActionListener
arg0
- Event that triggered the reset button.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |