JIDE 3.5.15

com.jidesoft.list
Class QuickListFilterField

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.jidesoft.swing.LabeledTextField
                      extended by com.jidesoft.grid.QuickFilterField
                          extended by com.jidesoft.list.QuickListFilterField
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible
Direct Known Subclasses:
LuceneQuickListFilterField, QuickGroupableListFilterField

public class QuickListFilterField
extends QuickFilterField

QuickListFilterField works along with any ListModel to provide searching feature.

It is very simple to use it.

 QuickListFilterField filterField = new QuickListFilterField(anyListModel);
Later on, when you display the list, instead using your original list model, use getDisplayListModel().
 JList list = new JList(quickSearchField.getDisplayListModel());
 filterField.setList(list); // optional. Only if you want the selection to be kept before and
 after filtering. The selection could not be kept if the selected row was filtered out.
 
Usually you place QuickListFilterField somewhere close to the JList in the user interface. User can type in any text in the text field, you will see the JList automatically display the data that matches with the text.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.jidesoft.grid.QuickFilterField
QuickFilterField.FieldFilter
 
Nested classes/interfaces inherited from class com.jidesoft.swing.LabeledTextField
LabeledTextField.PopupMenuCustomizer
 
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 com.jidesoft.grid.QuickFilterField
_filter, _searchingText, PROPERTY_CASE_SENSITIVE, PROPERTY_FROM_END, PROPERTY_FROM_START, PROPERTY_REGEX_ENABLED, PROPERTY_SEARCH_TEXT, PROPERTY_WILDCARD_ENABLED
 
Fields inherited from class com.jidesoft.swing.LabeledTextField
_button, _contextMenuKeyStroke, _customizer, _hintLabel, _hintText, _icon, _label, _labelText, _showHintTextWhenFocused, _textField
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
QuickListFilterField()
          Creates an empty QuickSearchField.
QuickListFilterField(ListModel listModel)
          Creates a QuickSearchField using the specified listModel.
 
Method Summary
 void applyFilter(String text)
          Applies the filter.
protected  FilterableListModel createDisplayListModel(ListModel listModel)
           
 FilterableListModel getDisplayListModel()
          Gets the display table model.
 JList getList()
          Gets the list that is using the displayListModel.
 ListModel getListModel()
          Gets the table model.
protected  void prepareQuery(String text)
          prepare other query based on the input text.
 void setList(JList list)
          Sets the list that is using the displayListModel.
 void setListModel(ListModel listModel)
          Sets the table model used by this component.
 
Methods inherited from class com.jidesoft.grid.QuickFilterField
adjustMismatchColor, applyFilter, compare, compare, convertElementToString, createButton, createContextMenu, createFilter, getDefaultFilterIcon, getDefaultResetIcon, getDefaultResetRolloverIcon, getFilter, getFilterIcon, getMismatchColor, getResetIcon, getResetRolloverIcon, getResourceString, getSearchingDelay, getSearchingText, getWildcardSupport, initComponent, installListeners, isCaseSensitive, isConfigurationChanged, isFromEnd, isFromStart, isRegexEnabled, isShowMismatchColor, isWildcardEnabled, matches, setCaseSensitive, setConfigurationChanged, setDefaultFilterIcon, setDefaultResetIcon, setDefaultResetRolloverIcon, setFilterIcon, setFromEnd, setFromStart, setMismatchColor, setRegexEnabled, setResetIcon, setResetRolloverIcon, setSearchingDelay, setSearchingText, setShowMismatchColor, setWildcardEnabled, setWildcardSupport, uninstallListeners
 
Methods inherited from class com.jidesoft.swing.LabeledTextField
calculateContextMenuLocation, createLabel, createTextField, customizePopupMenu, getBaseline, getButton, getContextMenuKeyStroke, getHintText, getIcon, getLabel, getLabelText, getPopupMenuCustomizer, getText, getTextField, initLayout, isShowHintTextWhenFocused, setColumns, setContextMenuKeyStroke, setEnabled, setHintText, setIcon, setLabelText, setPopupMenuCustomizer, setShowHintTextWhenFocused, setText, showContextMenu, updateUI
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
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, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QuickListFilterField

public QuickListFilterField()
Creates an empty QuickSearchField. This method is useless since QuickSearchField has to have a table model in order to work correctly. So we have this method in place mainly to make it JavaBean compatible. You must call setListModel(ListModel) after you create QuickSearchField using this constructor.


QuickListFilterField

public QuickListFilterField(ListModel listModel)
Creates a QuickSearchField using the specified listModel.

Parameters:
listModel - the ListModel
Method Detail

applyFilter

public void applyFilter(String text)
Applies the filter.

Specified by:
applyFilter in class QuickFilterField
Parameters:
text - the searching text.

prepareQuery

protected void prepareQuery(String text)
prepare other query based on the input text.

By default, the implementation is null. You can update your information if you subclass this class.

Parameters:
text - the input text

setListModel

public void setListModel(ListModel listModel)
Sets the table model used by this component. It could be any table model, not necessarily be a FilterableListModel.

Parameters:
listModel - the ListModel

createDisplayListModel

protected FilterableListModel createDisplayListModel(ListModel listModel)

getListModel

public ListModel getListModel()
Gets the table model.

Returns:
the table model.

getDisplayListModel

public FilterableListModel getDisplayListModel()
Gets the display table model. QuickSearchField doesn't modify the table model that you passed in but wrap it in FilterableListModel. So if you want to display the result after being filtered, you should use this method to get the display table model and set it to your table.

Returns:
the table model to be displayed.

getList

public JList getList()
Gets the list that is using the displayListModel.

Returns:
the list that is using the displayListModel.

setList

public void setList(JList list)
Sets the list that is using the displayListModel. The only reason we want to know the list is to keep the selection during filtering. For example, if node A is selected before filtering, and since it matches with the searching text, the selection should be kept after filtering. If you didn't call this method to let QuickListFilterField what the list is, the selection will be gone.

Please note, this method will be set displayListModel onto the list. You still need to call getDisplayListModel() to get the model and set it to the list.

Please note, even calling this method will not be able to keep selection in the following scenario. Node A is selected before filtering. However, it does not match with the searching text and is filtered out. After clearing the searching text, the node A come back but without selection.

Parameters:
list - the JList

JIDE 3.5.15