Package docking.widgets.filter

# Class FilterTextField

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
docking.widgets.filter.FilterTextField

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`

public class FilterTextField extends JPanel
A text field that is meant to be used in conjunction with tables that allow filter text. This text field will change its background color when it contains text. Additionally, this text field will flash its background color when the associated component gains focus. This is done to remind the user that there is a filter applied.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.JPanel

  `JPanel.AccessibleJPanel`

  ## Nested classes/interfaces inherited from class javax.swing.JComponent

  `JComponent.AccessibleJComponent`

  ## Nested classes/interfaces inherited from class java.awt.Container

  `Container.AccessibleAWTContainer`

  ## Nested classes/interfaces inherited from class java.awt.Component

  `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  ### 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`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FilterTextField(Component component)`
  Constructs this text field with the given component.
  `FilterTextField(Component component, int columns)`
  Constructs this text field with the given component and the preferred visible column width.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addEnterListener(Callback callback)`
  Adds the listener to this filter field that will be called when the user presses the enter key.
  `void`
  `addFilterListener(FilterListener l)`
  Adds the filter listener to this filter field that will be called when the filter contents change.
  `void`
  `alert()`
  This method will signal to the users if a filter is currently applied (has text).
  `void`
  `alert(boolean forceAlert)`
  This is the same as `alert()` with the exception that a `true` value for `forceAlter` will guarantee that the alert will happen.
  `String`
  `getText()`
  `boolean`
  `isEditable()`
  `boolean`
  `isEnabled()`
  `void`
  `removeEnterListener(Callback callback)`
  `void`
  `removeFilterListener(FilterListener l)`
  `void`
  `requestFocus()`
  `void`
  `setEditable(boolean b)`
  `void`
  `setEnabled(boolean enabled)`
  `void`
  `setFocusComponent(Component component)`
  `void`
  `setText(String text)`

  ### Methods inherited from class javax.swing.JPanel

  `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

  ### 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, 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`

- ## Constructor Details

  - ### FilterTextField

    public FilterTextField(Component component)
    Constructs this text field with the given component. `component` may be null, but then this field will be unable to flash in response to focus events (see the header documentation).
    Parameters:
      `component` - The component needed to listen for focus changes, may be null.

  - ### FilterTextField

    public FilterTextField(Component component, int columns)
    Constructs this text field with the given component and the preferred visible column width. `component` may be null, but then this field will be able to flash in response to focus events (see the header documentation).
    Parameters:
      `component` - The component needed to listen for focus changes, may be null.
      `columns` - The number of preferred visible columns (see JTextField)

- ## Method Details

  - ### setFocusComponent

    public void setFocusComponent(Component component)

  - ### alert

    public void alert()
    This method will signal to the users if a filter is currently applied (has text). For example, the default implementation will 'flash' the filter by changing its background color multiple times.

    Note: this method will not perform the alert if the minimum time between alerts has not passed. To force the alter to take place, call `alert(boolean)` with a value of `true`.

  - ### alert

    public void alert(boolean forceAlert)
    This is the same as `alert()` with the exception that a `true` value for `forceAlter` will guarantee that the alert will happen. A `false` value will not perform the alert if the minimum time between alerts has not passed.
    Parameters:
      `forceAlert` - true signals to force the alter to take place.
    See Also:
      - `alert()`

  - ### isEditable

    public boolean isEditable()

  - ### setEditable

    public void setEditable(boolean b)

  - ### getText

    public String getText()

  - ### setText

    public void setText(String text)

  - ### addEnterListener

    public void addEnterListener(Callback callback)
    Adds the listener to this filter field that will be called when the user presses the enter key.

    Note: this listener cannot be anonymous, as the underlying storage mechanism may be using a weak data structure. This means that you will need to store the listener in a field inside of your class.

    Parameters:
      `callback` - the listener

  - ### removeEnterListener

    public void removeEnterListener(Callback callback)

  - ### addFilterListener

    public void addFilterListener(FilterListener l)
    Adds the filter listener to this filter field that will be called when the filter contents change.

    Note: this listener cannot be anonymous, as the underlying storage mechanism may be using a weak data structure. This means that you will need to store the listener in a field inside of your class.

    Parameters:
      `l` - the listener

  - ### removeFilterListener

    public void removeFilterListener(FilterListener l)

  - ### setEnabled

    public void setEnabled(boolean enabled)
    Overrides:
      `setEnabled` in class `JComponent`

  - ### isEnabled

    public boolean isEnabled()
    Overrides:
      `isEnabled` in class `Component`

  - ### requestFocus

    public void requestFocus()
    Overrides:
      `requestFocus` in class `JComponent`