Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx.search
Class RecentSearches

    java.lang.Object
      org.jdesktop.swingx.search.RecentSearches

All Implemented Interfaces:
  java.awt.event.ActionListener, java.util.EventListener

    public class RecentSearches

extends java.lang.Object
implements java.awt.event.ActionListener

Maintains a list of recent searches and persists this list automatically using `Preferences`. A recent searches popup menu can be installed on a `JXSearchField` using `#install(JXSearchField)`.

Author:
  Peter Weishapl

Nested Class Summary
`static class` | `RecentSearches.RecentSearchesPopup` The popup menu returned by `RecentSearches#createPopupMenu(JXSearchField)`.

Constructor Summary
`RecentSearches(java.util.prefs.Preferences prefs, java.lang.String saveName)` Creates a list of recent searches and uses `saveName` to persist this list under the `prefs` node.
`RecentSearches(java.lang.String saveName)` Creates a list of recent searches and uses `saveName` to persist this list under the `Preferences` user root node.

Method Summary
`void` | `actionPerformed(java.awt.event.ActionEvent e)` Calls `put(String)` with the `ActionEvent`s action command as the search string.
`void` | `addChangeListener(javax.swing.event.ChangeListener l)` Add a change listener.
`protected javax.swing.JPopupMenu` | `createPopupMenu(javax.swing.JTextField searchField)` Creates the recent searches popup menu which will be used by `#install(JXSearchField)` to set a search popup menu on `searchField`.
`javax.swing.event.ChangeListener[]` | `getChangeListeners()` Returns all registered `ChangeListener`s.
`int` | `getLength()` The number of recent searches.
`int` | `getMaxRecents()` Returns the maximum number of recent searches.
`java.lang.String[]` | `getRecentSearches()` Returns all recent searches in this list.
`void` | `install(javax.swing.JTextField searchField)` Install a recent the searches popup menu returned by `#createPopupMenu(JXSearchField)` on `searchField`.
`void` | `put(java.lang.String searchString)` Add a search string as the first element.
`void` | `removeAll()` Remove all recent searches.
`void` | `removeChangeListener(javax.swing.event.ChangeListener l)` Remove a change listener.
`void` | `setMaxRecents(int maxRecents)` Set the maximum number of recent searches.
`void` | `uninstall(JXSearchField searchField)` Remove the recent searches popup from `searchField` when installed and stop listening for `ActionEvent`s fired by the search field.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RecentSearches

    public RecentSearches(java.lang.String saveName)

  Creates a list of recent searches and uses `saveName` to persist this list under the `Preferences` user root node. Existing entries will be loaded automatically.

  Parameters:
    `saveName` - a unique name for saving this list of recent searches

### RecentSearches

    public RecentSearches(java.util.prefs.Preferences prefs,
                          java.lang.String saveName)

  Creates a list of recent searches and uses `saveName` to persist this list under the `prefs` node. Existing entries will be loaded automatically.

  Parameters:
    `prefsNode` - the preferences node under which this list will be persisted. If prefsNode is `null` the preferences node will be set to the user root node
    `saveName` - a unique name for saving this list of recent searches. If saveName is `null`, the list will not be persisted

Method Detail

### put

    public void put(java.lang.String searchString)

  Add a search string as the first element. If the search string is `null` or empty nothing will be added. If the search string already exists, the old element will be removed. The modified list will automatically be persisted. If the number of elements exceeds the maximum number of entries, the last entry will be removed.

  Parameters:
    `searchString` - the search string to add
  See Also:
    `getMaxRecents()`

### getRecentSearches

    public java.lang.String[] getRecentSearches()

  Returns all recent searches in this list.

  Returns:
    the recent searches

### getLength

    public int getLength()

  The number of recent searches.

  Returns:
    number of recent searches

### removeAll

    public void removeAll()

  Remove all recent searches.

### getMaxRecents

    public int getMaxRecents()

  Returns the maximum number of recent searches.

  Returns:
    the maximum number of recent searches
  See Also:
    `put(String)`

### setMaxRecents

    public void setMaxRecents(int maxRecents)

  Set the maximum number of recent searches.

  Parameters:
    `maxRecents` - maximum number of recent searches
  See Also:
    `put(String)`

### addChangeListener

    public void addChangeListener(javax.swing.event.ChangeListener l)

  Add a change listener. A `ChangeEvent` will be fired whenever a search is added or removed.

  Parameters:
    `l` - the `ChangeListener`

### removeChangeListener

    public void removeChangeListener(javax.swing.event.ChangeListener l)

  Remove a change listener.

  Parameters:
    `l` - a registered `ChangeListener`

### getChangeListeners

    public javax.swing.event.ChangeListener[] getChangeListeners()

  Returns all registered `ChangeListener`s.

  Returns:
    all registered `ChangeListener`s

### createPopupMenu

    protected javax.swing.JPopupMenu createPopupMenu(javax.swing.JTextField searchField)

  Creates the recent searches popup menu which will be used by `#install(JXSearchField)` to set a search popup menu on `searchField`. Override to return a custom popup menu.

  Parameters:
    `searchField` - the search field the returned popup menu will be installed on
  Returns:
    the recent searches popup menu

### install

    public void install(javax.swing.JTextField searchField)

  Install a recent the searches popup menu returned by `#createPopupMenu(JXSearchField)` on `searchField`. Also registers an `ActionListener` on `searchField` and adds the search string to the list of recent searches whenever a `ActionEvent` is received. Uses `NativeSearchFieldSupport` to achieve compatibility with the native search field support provided by the Mac Look And Feel since Mac OS 10.5.

  Parameters:
    `searchField` - the search field to install a recent searches popup menu on

### uninstall

    public void uninstall(JXSearchField searchField)

  Remove the recent searches popup from `searchField` when installed and stop listening for `ActionEvent`s fired by the search field.

  Parameters:
    `searchField` - uninstall recent searches popup menu

### actionPerformed

    public void actionPerformed(java.awt.event.ActionEvent e)

  Calls `put(String)` with the `ActionEvent`s action command as the search string.

  Specified by:
    `actionPerformed` in interface `java.awt.event.ActionListener`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.