Class PatternModel

java.lang.Object
org.jdesktop.swingx.search.PatternModel

public class PatternModel extends Object
Presentation Model for Find/Filter Widgets.

Compiles and holds a Pattern from rawText. There are different predefined strategies to control the compilation:

  • TODO: list and explain
Holds state for controlling the match process for both find and filter (TODO - explain). Relevant in all
  • caseSensitive -
  • empty - true if there's no searchString
  • incremental - a hint to clients to react immediately to pattern changes.
Relevant in find contexts:
  • backwards - search direction if used in a find context
  • wrapping - wrap over the end/start if not found
  • foundIndex - storage for last found index
  • autoAdjustFoundIndex - flag to indicate auto-incr/decr of foundIndex on setting. Here the property correlates to !isIncremental() - to simplify batch vs. incremental search ui.
JW: Work-in-progress - Anchors will be factored into AnchoredSearchMode Anchors By default, the scope of the pattern relative to strings being tested are unanchored, ie, the pattern will match any part of the tested string. Traditionally, special characters ('^' and '$') are used to describe patterns that match the beginning (or end) of a string. If those characters are included in the pattern, the regular expression will honor them. However, for ease of use, two properties are included in this model that will determine how the pattern will be evaluated when these characters are omitted.

The StartAnchored property determines if the pattern must match from the beginning of tested strings, or if the pattern can appear anywhere in the tested string. Likewise, the EndAnchored property determines if the pattern must match to the end of the tested string, or if the end of the pattern can appear anywhere in the tested string. The default values (false in both cases) correspond to the common database 'LIKE' operation, where the pattern is considered to be a match if any part of the tested string matches the pattern.

Author:
Jeanette Winzenburg, David Hall
  • Field Details

  • Constructor Details

    • PatternModel

      public PatternModel()
  • Method Details

    • getFoundIndex

      public int getFoundIndex()
    • setFoundIndex

      public void setFoundIndex(int foundIndex)
    • updateFoundIndex

      protected void updateFoundIndex(int newFoundIndex)
      Parameters:
      newFoundIndex -
    • isAutoAdjustFoundIndex

      public boolean isAutoAdjustFoundIndex()
    • isBackwards

      public boolean isBackwards()
    • setBackwards

      public void setBackwards(boolean backwards)
    • isWrapping

      public boolean isWrapping()
    • setWrapping

      public void setWrapping(boolean wrapping)
    • setIncremental

      public void setIncremental(boolean incremental)
    • isIncremental

      public boolean isIncremental()
    • isCaseSensitive

      public boolean isCaseSensitive()
    • setCaseSensitive

      public void setCaseSensitive(boolean caseSensitive)
    • getPattern

      public Pattern getPattern()
    • getRawText

      public String getRawText()
    • setRawText

      public void setRawText(String findText)
    • isEmpty

      public boolean isEmpty()
    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener l)
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener l)
    • firePropertyChange

      protected void firePropertyChange(String name, Object oldValue, Object newValue)
    • setRegexCreatorKey

      public void setRegexCreatorKey(String mode)
      Set the strategy to use for compiling a pattern from rawtext. NOTE: This is imcomplete (in fact it wasn't implemented at all) - only recognizes REGEX_ANCHORED, every other value results in REGEX_MATCH_RULES.
      Parameters:
      mode - the String key of the match strategy to use.
    • createRegexCreator

      protected void createRegexCreator(String mode)
      Creates and sets the strategy to use for compiling a pattern from rawtext. NOTE: This is imcomplete (in fact it wasn't implemented at all) - only recognizes REGEX_ANCHORED, every other value results in REGEX_MATCH_RULES.
      Parameters:
      mode - the String key of the match strategy to use.
    • getRegexCreatorKey

      public String getRegexCreatorKey()
    • setRegexCreator

      public void setRegexCreator(PatternModel.RegexCreator regexCreator)
      This is a quick-fix to allow custom strategies for compiling rawtext to patterns.
      Parameters:
      regexCreator - the strategy to use for compiling text into pattern.
    • setMatchRule

      public void setMatchRule(String category)
    • getMatchRule

      public String getMatchRule()
    • getMatchRules

      public List<String> getMatchRules()