Package org.jdesktop.swingx
Class JXSearchPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jdesktop.swingx.JXPanel
-
- org.jdesktop.swingx.AbstractPatternPanel
-
- org.jdesktop.swingx.JXSearchPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.Scrollable
,AlphaPaintable
,BackgroundPaintable
@JavaBean public class JXSearchPanel extends AbstractPatternPanel
JXSearchPanel
provides complex searching features. Users are able to specify searching rules, enter searching text (including regular expressions), and toggle case-sensitivity.One of the main features that
JXSearchPanel
provides is the ability to updatePatternMatcher
s. To highlight text with aHighlighter
, you need to update the highlighter via a pattern matcher.public class PatternHandler implements PatternMatcher { private Highlighter highlighter; private Pattern pattern; public void setPattern(Pattern pattern) { this.pattern = pattern; highlighter.setHighlightPredicate(new PatternPredicate(pattern)); } }
TODO: allow custom PatternModel and/or access to configuration of bound PatternModel.
TODO: fully support control of multiple PatternMatchers.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
MATCH_RULE_ACTION_COMMAND
The action command key.private java.util.List<PatternMatcher>
patternMatchers
private JXComboBox
searchCriteria
-
Fields inherited from class org.jdesktop.swingx.AbstractPatternPanel
MATCH_ACTION_COMMAND, matchCheck, patternModel, SEARCH_FIELD_LABEL, SEARCH_FIELD_MNEMONIC, SEARCH_TITLE, searchField, searchLabel
-
Fields inherited from class org.jdesktop.swingx.JXPanel
fakeTransparent
-
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
-
-
Constructor Summary
Constructors Constructor Description JXSearchPanel()
Creates a search panel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPatternMatcher(PatternMatcher matcher)
Adds a pattern matcher.protected void
bind()
bind the components to the patternModel/actions.private void
build()
build container by adding all components.private StringValue
createStringValue(java.util.Locale locale)
java.lang.String
getFieldName()
returns the label of the search combo.java.util.regex.Pattern
getPattern()
returns the current compiled Pattern.private java.util.List<PatternMatcher>
getPatternMatchers()
protected void
initComponents()
create contained components.protected void
initExecutables()
creates and registers all "executable" actions.void
match()
Updates the pattern matchers.void
setFieldName(java.lang.String name)
set the label of the search combo.protected void
updateFieldName(PatternMatcher matcher)
protected void
updateLocaleState(java.util.Locale locale)
Updates locale-dependent state.void
updateMatchRule()
set's the PatternModel's MatchRule to the selected in combo.-
Methods inherited from class org.jdesktop.swingx.AbstractPatternPanel
bindSearchLabel, createBoundAction, createModelStateAction, createPatternModel, getAction, getActionContainerFactory, getPatternModel, getPatternModelListener, getSearchFieldListener, getSearchFieldWidth, getUIString, getUIString, initActions, initPatternActions, refreshDocumentFromModel, refreshEmptyFromModel, refreshModelFromDocument, refreshPatternFromModel, setLocale
-
Methods inherited from class org.jdesktop.swingx.JXPanel
getAlpha, getBackgroundPainter, getEffectiveAlpha, getPainterChangeListener, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableHeightHint, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollableWidthHint, installRepaintManager, isAlpha, isInheritAlpha, isOpaque, isOpaquePatch, isPaintBorderInsets, isPaintingBackground, isPaintingOrigin, isPatch, isTransparentBackground, paint, paintComponent, paintComponentPatch, setAlpha, setBackgroundPainter, setInheritAlpha, setOpaque, setOpaquePatch, setPaintBorderInsets, setScrollableHeightHint, setScrollableTracksViewportHeight, setScrollableTracksViewportWidth, setScrollableWidthHint, uninstallRepaintManager
-
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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
MATCH_RULE_ACTION_COMMAND
public static final java.lang.String MATCH_RULE_ACTION_COMMAND
The action command key.- See Also:
- Constant Field Values
-
searchCriteria
private JXComboBox searchCriteria
-
patternMatchers
private java.util.List<PatternMatcher> patternMatchers
-
-
Method Detail
-
addPatternMatcher
public void addPatternMatcher(PatternMatcher matcher)
Adds a pattern matcher.- Parameters:
matcher
- the matcher to add.
-
setFieldName
public void setFieldName(java.lang.String name)
set the label of the search combo.- Parameters:
name
- the label
-
getFieldName
public java.lang.String getFieldName()
returns the label of the search combo.
-
getPattern
public java.util.regex.Pattern getPattern()
returns the current compiled Pattern.- Returns:
- the current compiled
Pattern
-
updateFieldName
protected void updateFieldName(PatternMatcher matcher)
- Parameters:
matcher
-
-
match
public void match()
Updates the pattern matchers.- Specified by:
match
in classAbstractPatternPanel
-
updateMatchRule
public void updateMatchRule()
set's the PatternModel's MatchRule to the selected in combo. NOTE: this is public as an implementation side-effect! No need to ever call directly.
-
getPatternMatchers
private java.util.List<PatternMatcher> getPatternMatchers()
-
initExecutables
protected void initExecutables()
Description copied from class:AbstractPatternPanel
creates and registers all "executable" actions. Meaning: the actions bound to a callback method on this. PENDING: not quite correctly factored? Name?- Overrides:
initExecutables
in classAbstractPatternPanel
-
bind
protected void bind()
bind the components to the patternModel/actions.- Overrides:
bind
in classAbstractPatternPanel
-
createStringValue
private StringValue createStringValue(java.util.Locale locale)
-
updateLocaleState
protected void updateLocaleState(java.util.Locale locale)
Updates locale-dependent state. Here: updates registered column actions' locale-dependent state.PENDING: Try better to find all column actions including custom additions? Or move to columnControl?
- Overrides:
updateLocaleState
in classAbstractPatternPanel
- See Also:
AbstractPatternPanel.setLocale(Locale)
-
build
private void build()
build container by adding all components. PRE: all components created.
-
initComponents
protected void initComponents()
create contained components.- Overrides:
initComponents
in classAbstractPatternPanel
-
-