Class JXSearchField

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable, javax.swing.SwingConstants

    @JavaBean
    public class JXSearchField
    extends JXTextField
    A text field with a find icon in which the user enters text that identifies items to search for. JXSearchField almost looks and behaves like a native Windows Vista search box, a Mac OS X search field, or a search field like the one used in Mozilla Thunderbird 2.0 - depending on the current look and feel. JXSearchField is a text field that contains a find button and a cancel button. The find button normally displays a lens icon appropriate for the current look and feel. The cancel button is used to clear the text and therefore only visible when text is present. It normally displays a 'x' like icon. Text can also be cleared, using the 'Esc' key. The position of the find and cancel buttons can be customized by either changing the search fields (text) margin or button margin, or by changing the JXSearchField.LayoutStyle. JXSearchField supports two different search modes: JXSearchField.SearchMode.INSTANT and JXSearchField.SearchMode.REGULAR. A search can be performed by registering an ActionListener. The ActionEvents command property contains the text to search for. The search should be cancelled, when the command text is empty or null.
    See Also:
    RecentSearches, Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) class  JXSearchField.ClearAction
      Invoked when the the cancel button or the 'Esc' key is pressed.
      class  JXSearchField.FindAction
      Invoked when the find button is pressed.
      static class  JXSearchField.LayoutStyle
      Defines, how the find and cancel button are layouted.
      static class  JXSearchField.SearchMode
      Defines when action events are posted.
      • Nested classes/interfaces inherited from class javax.swing.JTextField

        javax.swing.JTextField.AccessibleJTextField
      • Nested classes/interfaces inherited from class javax.swing.text.JTextComponent

        javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
      • 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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static javax.swing.KeyStroke CANCEL_KEY
      The key used to invoke the cancel action.
      private javax.swing.JButton cancelButton  
      private static int DEFAULT_INSTANT_SEARCH_DELAY
      The default instant search delay.
      private javax.swing.JButton findButton  
      private int instantSearchDelay  
      private javax.swing.Timer instantSearchTimer  
      private JXSearchField.LayoutStyle layoutStyle  
      private boolean layoutStyleSet  
      private javax.swing.JButton popupButton  
      private boolean promptFontStyleSet  
      private RecentSearches recentSearches  
      private java.lang.String recentSearchesSaveKey  
      private JXSearchField.SearchMode searchMode  
      private boolean useSeperatePopupButton  
      private boolean useSeperatePopupButtonSet  
      • Fields inherited from class javax.swing.JTextField

        notifyAction
      • Fields inherited from class javax.swing.text.JTextComponent

        DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
      • 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

        accessibleContext, 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
      • Fields inherited from interface javax.swing.SwingConstants

        BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected javax.swing.JButton createCancelButton()
      Creates and returns the cancel button.
      protected javax.swing.JButton createFindButton()
      Creates and returns the find button.
      protected javax.swing.JButton createPopupButton()
      Creates and returns the popup button.
      void customSetUIProperty​(java.lang.String propertyName, java.lang.Object value)
      Hack to enable the UI delegate to set default values depending on the current Look and Feel, without overriding custom values.
      void customSetUIProperty​(java.lang.String propertyName, java.lang.Object value, boolean override)
      Hack to enable the UI delegate to set default values depending on the current Look and Feel, without overriding custom values.
      java.awt.event.ActionListener getCancelAction()
      Returns the cancel action, or an instance of JXSearchField.ClearAction, if none has been set.
      javax.swing.JButton getCancelButton()
      Returns the cancel button.
      java.awt.event.ActionListener getFindAction()
      Returns the action that is invoked when the enter key is pressed or the find button is clicked.
      javax.swing.JButton getFindButton()
      Returns the find button.
      javax.swing.JPopupMenu getFindPopupMenu()
      Returns the find popup menu.
      int getInstantSearchDelay()
      Get the instant search delay in milliseconds.
      javax.swing.Timer getInstantSearchTimer()
      Returns the Timer used to delay the firing of action events in instant search mode when the user enters text.
      JXSearchField.LayoutStyle getLayoutStyle()
      Get the current JXSearchField.LayoutStyle.
      javax.swing.JButton getPopupButton()
      Returns the popup button.
      RecentSearches getRecentSearches()
      TODO
      java.lang.String getRecentSearchesSaveKey()
      Returns the key used to persist recent searches.
      JXSearchField.SearchMode getSearchMode()
      Returns the current JXSearchField.SearchMode.
      boolean hasFocus()
      Returns true if this search field is the focus owner or the find popup menu is visible.
      boolean isInstantSearchMode()
      boolean isMacLayoutStyle()
      boolean isManagingRecentSearches()
      TODO
      boolean isRegularSearchMode()
      boolean isUseNativeSearchFieldIfPossible()  
      boolean isUseSeperatePopupButton()
      Returns true if the popup button should be visible and used for displaying the find popup menu.
      private boolean isValidRecentSearchesKey​(java.lang.String key)  
      boolean isVistaLayoutStyle()
      void postActionEvent()
      Overriden to prevent any delayed ActionEvents from being sent after posting this action.
      void setCancelAction​(java.awt.event.ActionListener cancelAction)
      Sets the action that is invoked, when the user presses the 'Esc' key or clicks the cancel button.
      void setEditable​(boolean b)
      Updates the cancel, find and popup buttons enabled state in addition to setting the search fields editable state.
      void setEnabled​(boolean enabled)
      Updates the cancel, find and popup buttons enabled state in addition to setting the search fields enabled state.
      void setFindAction​(java.awt.event.ActionListener findAction)
      Sets the action that is invoked when the enter key is pressed or the find button is clicked.
      void setFindPopupMenu​(javax.swing.JPopupMenu findPopupMenu)
      Sets the popup menu that will be displayed when the popup button is clicked.
      void setInstantSearchDelay​(int instantSearchDelay)
      Set the instant search delay in milliseconds.
      void setLayoutStyle​(JXSearchField.LayoutStyle layoutStyle)
      Set the current JXSearchField.LayoutStyle.
      void setMargin​(java.awt.Insets m)
      Set the margin space around the search field's text.
      void setPromptFontStyle​(java.lang.Integer fontStyle)
      Hack to enable the UI delegate to set default values depending on the current Look and Feel, without overriding custom values.
      void setRecentSearchesSaveKey​(java.lang.String recentSearchesSaveKey)
      Installs and manages a recent searches popup menu as the find popup menu, if recentSearchesSaveKey is not null.
      void setSearchMode​(JXSearchField.SearchMode searchMode)
      Sets the current search mode.
      void setUseNativeSearchFieldIfPossible​(boolean useNativeSearchFieldIfPossible)  
      void setUseSeperatePopupButton​(boolean useSeperatePopupButton)
      Set if the popup button should be used for displaying the find popup menu.
      protected void updateButtonState()
      Enables the cancel action if this search field is editable and enabled, otherwise it will be disabled.
      void updateUI()
      Overriden to also update the find popup menu if set.
      • Methods inherited from class javax.swing.JTextField

        actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
      • Methods inherited from class javax.swing.text.JTextComponent

        addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setFocusAccelerator, setHighlighter, setKeymap, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, viewToModel, viewToModel2D, write
      • 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, 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, 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, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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

      • DEFAULT_INSTANT_SEARCH_DELAY

        private static final int DEFAULT_INSTANT_SEARCH_DELAY
        The default instant search delay.
        See Also:
        Constant Field Values
      • CANCEL_KEY

        private static final javax.swing.KeyStroke CANCEL_KEY
        The key used to invoke the cancel action.
      • findButton

        private javax.swing.JButton findButton
      • cancelButton

        private javax.swing.JButton cancelButton
      • popupButton

        private javax.swing.JButton popupButton
      • useSeperatePopupButton

        private boolean useSeperatePopupButton
      • useSeperatePopupButtonSet

        private boolean useSeperatePopupButtonSet
      • layoutStyleSet

        private boolean layoutStyleSet
      • instantSearchDelay

        private int instantSearchDelay
      • promptFontStyleSet

        private boolean promptFontStyleSet
      • instantSearchTimer

        private javax.swing.Timer instantSearchTimer
      • recentSearchesSaveKey

        private java.lang.String recentSearchesSaveKey
    • Constructor Detail

      • JXSearchField

        public JXSearchField()
        Creates a new search field with a default prompt.
      • JXSearchField

        public JXSearchField​(java.lang.String prompt)
        Creates a new search field with the given prompt and JXSearchField.SearchMode.INSTANT.
        Parameters:
        prompt -
    • Method Detail

      • getInstantSearchDelay

        public int getInstantSearchDelay()
        Get the instant search delay in milliseconds. The default delay is 50 Milliseconds.
        Returns:
        the instant search delay in milliseconds
      • setInstantSearchDelay

        public void setInstantSearchDelay​(int instantSearchDelay)
        Set the instant search delay in milliseconds. In JXSearchField.SearchMode.INSTANT, when the user changes the text, an action event will be fired after the specified instant search delay. It is recommended to use a instant search delay to avoid the firing of unnecessary events. For example when the user replaces the whole text with a different text the search fields underlying Document typically fires 2 document events. The first one, because the old text is removed and the second one because the new text is inserted. If the instant search delay is 0, this would result in 2 action events being fired. When a instant search delay is used, the first document event typically is ignored, because the second one is fired before the delay is over, which results in a correct behavior because only the last and only relevant event will be delivered.
        Parameters:
        instantSearchDelay -
      • setMargin

        public void setMargin​(java.awt.Insets m)
        Set the margin space around the search field's text.
        Overrides:
        setMargin in class javax.swing.text.JTextComponent
        See Also:
        JTextComponent.setMargin(java.awt.Insets)
      • getCancelAction

        public final java.awt.event.ActionListener getCancelAction()
        Returns the cancel action, or an instance of JXSearchField.ClearAction, if none has been set.
        Returns:
        the cancel action
      • setCancelAction

        public final void setCancelAction​(java.awt.event.ActionListener cancelAction)
        Sets the action that is invoked, when the user presses the 'Esc' key or clicks the cancel button.
        Parameters:
        cancelAction -
      • getCancelButton

        public final javax.swing.JButton getCancelButton()
        Returns the cancel button. Calls createCancelButton() to create the cancel button and registers an ActionListener that delegates actions to the ActionListener returned by getCancelAction(), if needed.
        Returns:
        the cancel button
      • createCancelButton

        protected javax.swing.JButton createCancelButton()
        Creates and returns the cancel button. Override to use a custom cancel button.
        Returns:
        the cancel button
        See Also:
        getCancelButton()
      • getFindAction

        public final java.awt.event.ActionListener getFindAction()
        Returns the action that is invoked when the enter key is pressed or the find button is clicked. If no action has been set, a new instance of JXSearchField.FindAction will be returned.
        Returns:
        the find action
      • setFindAction

        public final void setFindAction​(java.awt.event.ActionListener findAction)
        Sets the action that is invoked when the enter key is pressed or the find button is clicked.
      • getFindButton

        public final javax.swing.JButton getFindButton()
        Returns the find button. Calls createFindButton() to create the find button and registers an ActionListener that delegates actions to the ActionListener returned by getFindAction(), if needed.
        Returns:
        the find button
      • createFindButton

        protected javax.swing.JButton createFindButton()
        Creates and returns the find button. The buttons action is set to the action returned by #getSearchAction(). Override to use a custom find button.
        Returns:
        the find button
        See Also:
        getFindButton()
      • getPopupButton

        public final javax.swing.JButton getPopupButton()
        Returns the popup button. If a find popup menu is set, it will be displayed when this button is clicked. This button will only be visible, if isUseSeperatePopupButton() returns true. Otherwise the popup menu will be displayed when the find button is clicked.
        Returns:
        the popup button
      • createPopupButton

        protected javax.swing.JButton createPopupButton()
        Creates and returns the popup button. Override to use a custom popup button.
        Returns:
        the popup button
        See Also:
        getPopupButton()
      • isUseSeperatePopupButton

        public boolean isUseSeperatePopupButton()
        Returns true if the popup button should be visible and used for displaying the find popup menu. Otherwise, the find popup menu will be displayed when the find button is clicked.
        Returns:
        true if the popup button should be used
      • setUseSeperatePopupButton

        public void setUseSeperatePopupButton​(boolean useSeperatePopupButton)
        Set if the popup button should be used for displaying the find popup menu.
        Parameters:
        useSeperatePopupButton -
      • isUseNativeSearchFieldIfPossible

        public boolean isUseNativeSearchFieldIfPossible()
      • setUseNativeSearchFieldIfPossible

        public void setUseNativeSearchFieldIfPossible​(boolean useNativeSearchFieldIfPossible)
      • setEditable

        public void setEditable​(boolean b)
        Updates the cancel, find and popup buttons enabled state in addition to setting the search fields editable state.
        Overrides:
        setEditable in class javax.swing.text.JTextComponent
        See Also:
        updateButtonState(), JTextComponent.setEditable(boolean)
      • setEnabled

        public void setEnabled​(boolean enabled)
        Updates the cancel, find and popup buttons enabled state in addition to setting the search fields enabled state.
        Overrides:
        setEnabled in class javax.swing.JComponent
        See Also:
        updateButtonState(), JComponent.setEnabled(boolean)
      • updateButtonState

        protected void updateButtonState()
        Enables the cancel action if this search field is editable and enabled, otherwise it will be disabled. Enabled the search action and popup button if this search field is enabled, otherwise it will be disabled.
      • setFindPopupMenu

        public void setFindPopupMenu​(javax.swing.JPopupMenu findPopupMenu)
        Sets the popup menu that will be displayed when the popup button is clicked. If a find popup menu is set and isUseSeperatePopupButton() returns false, the popup button will be displayed instead of the find button. Otherwise the popup button will be displayed in addition to the find button. The find popup menu is managed using NativeSearchFieldSupport to achieve compatibility with the native search field support provided by the Mac Look And Feel since Mac OS 10.5. If a recent searches save key has been set and therefore a recent searches popup menu is installed, this method does nothing. You must first remove the recent searches save key, by calling setRecentSearchesSaveKey(String) with a null parameter.
        Parameters:
        findPopupMenu - the popup menu, which will be displayed when the popup button is clicked
        See Also:
        setRecentSearchesSaveKey(String), RecentSearches
      • getFindPopupMenu

        public javax.swing.JPopupMenu getFindPopupMenu()
        Returns the find popup menu.
        Returns:
        the find popup menu
        See Also:
        setFindPopupMenu(JPopupMenu)
      • isManagingRecentSearches

        public final boolean isManagingRecentSearches()
        TODO
        Returns:
      • isValidRecentSearchesKey

        private boolean isValidRecentSearchesKey​(java.lang.String key)
      • getRecentSearchesSaveKey

        public java.lang.String getRecentSearchesSaveKey()
        Returns the key used to persist recent searches.
        Returns:
        See Also:
        setRecentSearchesSaveKey(String)
      • setRecentSearchesSaveKey

        public void setRecentSearchesSaveKey​(java.lang.String recentSearchesSaveKey)
        Installs and manages a recent searches popup menu as the find popup menu, if recentSearchesSaveKey is not null. Otherwise, removes the popup menu and stops managing recent searches.
        Parameters:
        recentSearchesSaveKey - this key is used to persist the recent searches.
        See Also:
        setFindAction(ActionListener), isManagingRecentSearches(), RecentSearches
      • getRecentSearches

        public RecentSearches getRecentSearches()
        TODO
        Returns:
      • getInstantSearchTimer

        public javax.swing.Timer getInstantSearchTimer()
        Returns the Timer used to delay the firing of action events in instant search mode when the user enters text. This timer calls postActionEvent().
        Returns:
        the Timer used to delay the firing of action events
      • hasFocus

        public boolean hasFocus()
        Returns true if this search field is the focus owner or the find popup menu is visible. This is a hack to make the search field paint the focus indicator in Mac OS X Aqua when the find popup menu is visible.
        Overrides:
        hasFocus in class java.awt.Component
        Returns:
        true if this search field is the focus owner or the find popup menu is visible
      • updateUI

        public void updateUI()
        Overriden to also update the find popup menu if set.
        Overrides:
        updateUI in class javax.swing.text.JTextComponent
      • customSetUIProperty

        public void customSetUIProperty​(java.lang.String propertyName,
                                        java.lang.Object value)
        Hack to enable the UI delegate to set default values depending on the current Look and Feel, without overriding custom values.
        Parameters:
        propertyName - the name of the property to change
        value - the new value of the property
      • customSetUIProperty

        public void customSetUIProperty​(java.lang.String propertyName,
                                        java.lang.Object value,
                                        boolean override)
        Hack to enable the UI delegate to set default values depending on the current Look and Feel, without overriding custom values.
        Parameters:
        propertyName - the name of the property to change
        value - the new value of the property
        override - override custom values
      • postActionEvent

        public void postActionEvent()
        Overriden to prevent any delayed ActionEvents from being sent after posting this action. For example, if the current JXSearchField.SearchMode is JXSearchField.SearchMode.INSTANT and the instant search delay is greater 0. The user enters some text and presses enter. This method will be invoked immediately because the users presses enter. However, this method would be invoked after the instant search delay, if we would not prevent it here.
        Overrides:
        postActionEvent in class javax.swing.JTextField