com.alee.extended.tree
Class WebTreeFilterField<E extends UniqueNode>

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JTextField
                      extended by com.alee.laf.text.WebTextField
                          extended by com.alee.extended.tree.WebTreeFilterField<E>
Type Parameters:
E - filtered node type
All Implemented Interfaces:
LanguageMethods, SettingsMethods, ToolTipMethods, ShapeProvider, DocumentEventMethods, EventMethods, FontMethods<WebTextField>, SizeMethods<WebTextField>, SwingMethods, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable, javax.swing.SwingConstants

public class WebTreeFilterField<E extends UniqueNode>
extends WebTextField

Special filter field that can be attached to any WebAsyncTree.

Author:
Mikle Garin
See Also:
Serialized Form

Nested Class Summary
 
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
protected  java.beans.PropertyChangeListener dataProviderChangeListener
          Data provider change listener.
protected  boolean defaultTreeStateBehavior
          Whether should automatically handle tree state on filter changes or not.
protected  javax.swing.text.Document document
          Currently listened field document.
protected  javax.swing.event.DocumentListener documentListener
          Special document listener that notifies about filter changes.
protected  StructuredTreeNodesFilter<E> filter
          Nodes filter used by this field.
protected  java.beans.PropertyChangeListener filterChangeListener
          Tree filter change listener.
protected  WebImage filterIcon
          UI elements.
static javax.swing.ImageIcon matchCaseIcon
           
protected  WebCheckBoxMenuItem matchCaseItem
           
static javax.swing.ImageIcon searchFromStartIcon
           
protected  WebCheckBoxMenuItem searchFromStartItem
           
static javax.swing.ImageIcon settingsIcon
          Used icons.
protected  WebPopupMenu settingsMenu
           
protected  java.lang.ref.WeakReference<WebTree<E>> tree
          Async tree to which this field should apply filtering.
protected  TreeState treeState
          Last saved tree state.
static javax.swing.ImageIcon useSpaceAsSeparatorIcon
           
protected  WebCheckBoxMenuItem useSpaceAsSeparatorItem
           
protected  java.awt.Rectangle visibleRect
           
 
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
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 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
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WebTreeFilterField()
          Constructs new tree filter field.
WebTreeFilterField(TextProvider<E> textProvider)
          Constructs new tree filter field.
WebTreeFilterField(WebTree<E> tree)
          Constructs new tree filter field.
WebTreeFilterField(WebTree<E> tree, TextProvider<E> textProvider)
          Constructs new tree filter field.
 
Method Summary
protected  void applyFieldFilter()
          Applies field tree filter.
protected  void checkTree(WebTree<E> tree)
          Checks whether provided tree type is correct or not.
 StructuredTreeNodesFilter<E> getFilter()
          Returns nodes filter.
 TextProvider<E> getTextProvider()
          Returns node text provider.
 WebTree<E> getTree()
          Returns tree to which this field applies filtering.
protected  void initDefaultFilter()
          Initializes default field tree filter.
protected  void initField()
          Initializes filter field.
protected  void initFilterIcon()
          Initializes filter icon.
protected  void initListeners()
          Initializes listeners.
protected  void initSettingsMenu()
          Initializes settings menu.
 boolean isDefaultTreeStateBehavior()
          Returns whether should automatically handle tree state on filter changes or not.
 boolean isEmpty()
          Returns whether this tree filter field is empty or not.
protected  void removeFieldFilter()
          Removes field tree filter.
 void setDefaultTreeStateBehavior(boolean defaultTreeStateBehavior)
          Sets whether should automatically handle tree state on filter changes or not.
 void setFilter(StructuredTreeNodesFilter<E> filter)
          Sets nodes filter.
 void setTextProvider(TextProvider<E> textProvider)
          Sets node text provider.
 void setTree(WebTree<E> tree)
          Sets tree to which this field applies filtering.
protected  void updateDocumentListener()
          Updates field document listener.
 void updateFiltering()
          Updates tree filtering.
 void updateNodeAcceptance(E node)
          Performs node acceptance re-check.
 
Methods inherited from class com.alee.laf.text.WebTextField
addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, addToolTip, changeFontSize, clear, createWebTextField, createWebTextField, createWebTextField, createWebTextField, getFieldMargin, getFontName, getFontSize, getInputPrompt, getInputPromptFont, getInputPromptForeground, getInputPromptPosition, getLeadingComponent, getMaximumHeight, getMaximumWidth, getMinimumHeight, getMinimumWidth, getPainter, getPreferredHeight, getPreferredSize, getPreferredWidth, getRound, getShadeWidth, getTrailingComponent, getWebUI, isBoldFont, isDrawBackground, isDrawBorder, isDrawFocus, isDrawShade, isHideInputPromptOnFocus, isItalicFont, isLanguageSet, isPlainFont, isWebColored, loadSettings, onChange, onDoubleClick, onFocusGain, onFocusLoss, onKeyPress, onKeyPress, onKeyRelease, onKeyRelease, onKeyType, onKeyType, onMenuTrigger, onMouseClick, onMouseClick, onMouseDrag, onMouseDrag, onMouseEnter, onMouseExit, onMousePress, onMousePress, provideShape, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, registerSettings, removeLanguage, removeLanguageUpdater, removeToolTip, removeToolTips, removeToolTips, removeToolTips, saveSettings, setBoldFont, setBoldFont, setDrawBackground, setDrawBorder, setDrawFocus, setDrawShade, setFieldMargin, setFieldMargin, setFieldMargin, setFontName, setFontSize, setFontSizeAndStyle, setFontSizeAndStyle, setFontStyle, setFontStyle, setHideInputPromptOnFocus, setInputPrompt, setInputPromptFont, setInputPromptForeground, setInputPromptPosition, setItalicFont, setItalicFont, setLanguage, setLanguageUpdater, setLeadingComponent, setMargin, setMargin, setMaximumHeight, setMaximumWidth, setMinimumHeight, setMinimumWidth, setPainter, setPlainFont, setPlainFont, setPreferredHeight, setPreferredSize, setPreferredWidth, setRound, setShadeWidth, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setToolTip, setTrailingComponent, setWebColored, unregisterSettings, updateLanguage, updateLanguage, updateUI
 
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, 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, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, viewToModel, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, setEnabled, 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, transferFocusBackward, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, 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
 

Field Detail

settingsIcon

public static final javax.swing.ImageIcon settingsIcon
Used icons.


matchCaseIcon

public static final javax.swing.ImageIcon matchCaseIcon

useSpaceAsSeparatorIcon

public static final javax.swing.ImageIcon useSpaceAsSeparatorIcon

searchFromStartIcon

public static final javax.swing.ImageIcon searchFromStartIcon

tree

protected java.lang.ref.WeakReference<WebTree<E extends UniqueNode>> tree
Async tree to which this field should apply filtering.


filter

protected StructuredTreeNodesFilter<E extends UniqueNode> filter
Nodes filter used by this field.


document

protected javax.swing.text.Document document
Currently listened field document.


documentListener

protected javax.swing.event.DocumentListener documentListener
Special document listener that notifies about filter changes.


dataProviderChangeListener

protected java.beans.PropertyChangeListener dataProviderChangeListener
Data provider change listener.


filterChangeListener

protected java.beans.PropertyChangeListener filterChangeListener
Tree filter change listener.


defaultTreeStateBehavior

protected boolean defaultTreeStateBehavior
Whether should automatically handle tree state on filter changes or not.


treeState

protected TreeState treeState
Last saved tree state.


visibleRect

protected java.awt.Rectangle visibleRect

filterIcon

protected WebImage filterIcon
UI elements.


settingsMenu

protected WebPopupMenu settingsMenu

matchCaseItem

protected WebCheckBoxMenuItem matchCaseItem

useSpaceAsSeparatorItem

protected WebCheckBoxMenuItem useSpaceAsSeparatorItem

searchFromStartItem

protected WebCheckBoxMenuItem searchFromStartItem
Constructor Detail

WebTreeFilterField

public WebTreeFilterField()
Constructs new tree filter field.


WebTreeFilterField

public WebTreeFilterField(WebTree<E> tree)
Constructs new tree filter field.

Parameters:
tree - tree to which this field applies filtering

WebTreeFilterField

public WebTreeFilterField(TextProvider<E> textProvider)
Constructs new tree filter field.

Parameters:
textProvider - node text provider

WebTreeFilterField

public WebTreeFilterField(WebTree<E> tree,
                          TextProvider<E> textProvider)
Constructs new tree filter field.

Parameters:
tree - tree to which this field applies filtering
textProvider - node text provider
Method Detail

checkTree

protected void checkTree(WebTree<E> tree)
Checks whether provided tree type is correct or not.

Parameters:
tree - tree to check

initDefaultFilter

protected void initDefaultFilter()
Initializes default field tree filter.


initField

protected void initField()
Initializes filter field.


initFilterIcon

protected void initFilterIcon()
Initializes filter icon.


initSettingsMenu

protected void initSettingsMenu()
Initializes settings menu.


initListeners

protected void initListeners()
Initializes listeners.


updateDocumentListener

protected void updateDocumentListener()
Updates field document listener.


setTree

public void setTree(WebTree<E> tree)
Sets tree to which this field applies filtering.

Parameters:
tree - tree to which this field applies filtering

getFilter

public StructuredTreeNodesFilter<E> getFilter()
Returns nodes filter.

Returns:
nodes filter

setFilter

public void setFilter(StructuredTreeNodesFilter<E> filter)
Sets nodes filter.

Parameters:
filter - new nodes filter

applyFieldFilter

protected void applyFieldFilter()
Applies field tree filter.


removeFieldFilter

protected void removeFieldFilter()
Removes field tree filter.


getTextProvider

public TextProvider<E> getTextProvider()
Returns node text provider.

Returns:
node text provider

setTextProvider

public void setTextProvider(TextProvider<E> textProvider)
Sets node text provider.

Parameters:
textProvider - new node text provider

isDefaultTreeStateBehavior

public boolean isDefaultTreeStateBehavior()
Returns whether should automatically handle tree state on filter changes or not.

Returns:
true if should automatically handle tree state on filter changes, false otherwise

setDefaultTreeStateBehavior

public void setDefaultTreeStateBehavior(boolean defaultTreeStateBehavior)
Sets whether should automatically handle tree state on filter changes or not.

Parameters:
defaultTreeStateBehavior - whether should automatically handle tree state on filter changes or not

updateFiltering

public void updateFiltering()
Updates tree filtering.


updateNodeAcceptance

public void updateNodeAcceptance(E node)
Performs node acceptance re-check. Might be useful if external tree updates are applied.

Parameters:
node - node that should be re-checked

getTree

public WebTree<E> getTree()
Returns tree to which this field applies filtering.

Returns:
tree to which this field applies filtering

isEmpty

public boolean isEmpty()
Returns whether this tree filter field is empty or not.

Returns:
true if this tree filter field is empty, false otherwise