Package org.jdesktop.swingx.search
Class RecentSearches
- java.lang.Object
-
- org.jdesktop.swingx.search.RecentSearches
-
- All Implemented Interfaces:
ActionListener
,EventListener
public class RecentSearches extends Object implements ActionListener
Maintains a list of recent searches and persists this list automatically usingPreferences
. A recent searches popup menu can be installed on aJXSearchField
using#install(JXSearchField)
.- Author:
- Peter Weishapl
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RecentSearches.RecentSearchesPopup
The popup menu returned byRecentSearches#createPopupMenu(JXSearchField)
.
-
Constructor Summary
Constructors Constructor Description RecentSearches(String saveName)
Creates a list of recent searches and usessaveName
to persist this list under thePreferences
user root node.RecentSearches(Preferences prefs, String saveName)
Creates a list of recent searches and usessaveName
to persist this list under theprefs
node.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(ActionEvent e)
Callsput(String)
with theActionEvent
s action command as the search string.void
addChangeListener(ChangeListener l)
Add a change listener.protected JPopupMenu
createPopupMenu(JTextField searchField)
Creates the recent searches popup menu which will be used by#install(JXSearchField)
to set a search popup menu onsearchField
.ChangeListener[]
getChangeListeners()
Returns all registeredChangeListener
s.int
getLength()
The number of recent searches.int
getMaxRecents()
Returns the maximum number of recent searches.String[]
getRecentSearches()
Returns all recent searches in this list.void
install(JTextField searchField)
Install a recent the searches popup menu returned by#createPopupMenu(JXSearchField)
onsearchField
.void
put(String searchString)
Add a search string as the first element.void
removeAll()
Remove all recent searches.void
removeChangeListener(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 fromsearchField
when installed and stop listening forActionEvent
s fired by the search field.
-
-
-
Constructor Detail
-
RecentSearches
public RecentSearches(String saveName)
Creates a list of recent searches and usessaveName
to persist this list under thePreferences
user root node. Existing entries will be loaded automatically.- Parameters:
saveName
- a unique name for saving this list of recent searches
-
RecentSearches
public RecentSearches(Preferences prefs, String saveName)
Creates a list of recent searches and usessaveName
to persist this list under theprefs
node. Existing entries will be loaded automatically.- Parameters:
prefsNode
- the preferences node under which this list will be persisted. If prefsNode isnull
the preferences node will be set to the user root nodesaveName
- a unique name for saving this list of recent searches. If saveName isnull
, the list will not be persisted
-
-
Method Detail
-
put
public void put(String searchString)
Add a search string as the first element. If the search string isnull
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 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(ChangeListener l)
Add a change listener. AChangeEvent
will be fired whenever a search is added or removed.- Parameters:
l
- theChangeListener
-
removeChangeListener
public void removeChangeListener(ChangeListener l)
Remove a change listener.- Parameters:
l
- a registeredChangeListener
-
getChangeListeners
public ChangeListener[] getChangeListeners()
Returns all registeredChangeListener
s.- Returns:
- all registered
ChangeListener
s
-
createPopupMenu
protected JPopupMenu createPopupMenu(JTextField searchField)
Creates the recent searches popup menu which will be used by#install(JXSearchField)
to set a search popup menu onsearchField
. 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(JTextField searchField)
Install a recent the searches popup menu returned by#createPopupMenu(JXSearchField)
onsearchField
. Also registers anActionListener
onsearchField
and adds the search string to the list of recent searches whenever aActionEvent
is received. UsesNativeSearchFieldSupport
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 fromsearchField
when installed and stop listening forActionEvent
s fired by the search field.- Parameters:
searchField
- uninstall recent searches popup menu
-
actionPerformed
public void actionPerformed(ActionEvent e)
Callsput(String)
with theActionEvent
s action command as the search string.- Specified by:
actionPerformed
in interfaceActionListener
-
-