org.fife.ui.search
Class AbstractSearchDialog

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Dialog
                  extended byjavax.swing.JDialog
                      extended byorg.fife.ui.EscapableDialog
                          extended byorg.fife.ui.search.AbstractSearchDialog
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants
Direct Known Subclasses:
AbstractFindReplaceDialog, FindInFilesDialog

public class AbstractSearchDialog
extends EscapableDialog
implements java.awt.event.ActionListener

Base class for all search dialogs (find, replace, find in files, etc.). This class is not useful on its own; you should use either FindDialog or ReplaceDialog, or extend this class to create your own search dialog.

Version:
0.1
Author:
Robert Futrell
See Also:
Serialized Form

Nested Class Summary
protected static class AbstractSearchDialog.EnableResult
          Returns the result of whether the "action" buttons such as "Find" and "Replace" should be enabled.
 
Nested classes inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JButton cancelButton
           
protected  javax.swing.JCheckBox caseCheckBox
           
protected  javax.swing.JComboBox findTextCombo
          The combo box where the user enters the text for which to search.
static java.lang.String MATCH_CASE_PROPERTY
           
static java.lang.String MATCH_WHOLE_WORD_PROPERTY
           
protected  javax.swing.JCheckBox regExpCheckBox
           
protected  javax.swing.JPanel searchConditionsPanel
           
static java.lang.String USE_REG_EX_PROPERTY
           
protected  javax.swing.JCheckBox wholeWordCheckBox
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AbstractSearchDialog(java.awt.Frame owner, java.util.ResourceBundle msg, boolean useRButtons)
          Constructor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Listens for actions in this search dialog.
protected  MaxWidthComboBox createSearchComboBox(boolean replace)
          Returns a combo box suitable for a "search in" or "replace with" field.
protected  javax.swing.border.Border createTitledBorder(java.lang.String title)
          Returns a titled border for panels on search dialogs.
protected  void escapePressed()
          Called when the Escape key is pressed in this dialog.
 java.lang.String getCancelButtonText()
          Returns the text on the Cancel button.
static java.awt.Image getContentAssistImage()
          Returns the image to display beside text components when content assist is available.
 java.lang.String getMatchCaseCheckboxText()
          Returns the text for the "Match Case" check box.
 java.lang.String getRegularExpressionCheckboxText()
          Returns the text for the "Regular Expression" check box.
 java.lang.String getSearchString()
          Returns the text to search for.
 java.util.Vector getSearchStrings()
          Returns the Strings contained in the "Find what" combo box.
protected static javax.swing.text.JTextComponent getTextComponent(javax.swing.JComboBox combo)
          Returns the text editor component for the specified combo box.
 java.lang.String getWholeWordCheckboxText()
          Returns the text for the "Whole Word" check box.
protected  void handleRegExCheckBoxClicked()
          Called when the regex checkbox is clicked.
protected  AbstractSearchDialog.EnableResult handleToggleButtons()
          Returns whether any action-related buttons (Find Next, Replace, etc.)
protected static boolean isPreJava6JRE()
          This method allows us to check if the current JRE is 1.4 or 1.5.
protected static boolean isWholeWord(java.lang.CharSequence searchIn, int offset, int len)
          Returns whether the characters on either side of substr(searchIn,startPos,startPos+searchStringLength) are whitespace.
 void setCancelButtonText(java.lang.String text)
          Sets the text on the Cancel button.
 void setMatchCaseCheckboxText(java.lang.String text)
          Sets the text for the "Match Case" check box.
 void setRegularExpressionCheckboxText(java.lang.String text)
          Sets the text for the "Regular Expression" check box.
 void setSearchString(java.lang.String newSearchString)
          Sets the java.lang.String to search for.
 void setVisible(boolean visible)
          
 void setWholeWordCheckboxText(java.lang.String text)
          Sets the text for the "Whole Word" check box.
 
Methods inherited from class org.fife.ui.EscapableDialog
setEscapeClosesDialog
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, dispose, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MATCH_CASE_PROPERTY

public static final java.lang.String MATCH_CASE_PROPERTY
See Also:
Constant Field Values

MATCH_WHOLE_WORD_PROPERTY

public static final java.lang.String MATCH_WHOLE_WORD_PROPERTY
See Also:
Constant Field Values

USE_REG_EX_PROPERTY

public static final java.lang.String USE_REG_EX_PROPERTY
See Also:
Constant Field Values

caseCheckBox

protected javax.swing.JCheckBox caseCheckBox

wholeWordCheckBox

protected javax.swing.JCheckBox wholeWordCheckBox

regExpCheckBox

protected javax.swing.JCheckBox regExpCheckBox

searchConditionsPanel

protected javax.swing.JPanel searchConditionsPanel

findTextCombo

protected javax.swing.JComboBox findTextCombo
The combo box where the user enters the text for which to search.


cancelButton

protected javax.swing.JButton cancelButton
Constructor Detail

AbstractSearchDialog

public AbstractSearchDialog(java.awt.Frame owner,
                            java.util.ResourceBundle msg,
                            boolean useRButtons)
Constructor. Does initializing for parts common to all search dialogs.

Parameters:
owner - The window that owns this search dialog.
msg - The resource bundle from which to get strings, etc.
useRButtons - If true, then org.fife.ui.RButtons will be used for all buttons defined here (currently just the Cancel button). Otherwise, regular JButtons are used.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Listens for actions in this search dialog.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

createSearchComboBox

protected MaxWidthComboBox createSearchComboBox(boolean replace)
Returns a combo box suitable for a "search in" or "replace with" field. Subclasses can override to provide combo boxes with enhanced functionality.

Parameters:
replace - Whether this is a "replace" combo box (as opposed to a "find" combo box). This affects what content assistance they receive.
Returns:
The combo box.

createTitledBorder

protected javax.swing.border.Border createTitledBorder(java.lang.String title)
Returns a titled border for panels on search dialogs.

Parameters:
title - The title for the border.
Returns:
The border.

escapePressed

protected void escapePressed()
Description copied from class: EscapableDialog
Called when the Escape key is pressed in this dialog. Subclasses can override to handle any custom "Cancel" logic. The default implementation hides the dialog (via setVisible(false);).

Overrides:
escapePressed in class EscapableDialog

getCancelButtonText

public final java.lang.String getCancelButtonText()
Returns the text on the Cancel button.

Returns:
The text on the Cancel button.
See Also:
setCancelButtonText(java.lang.String)

getContentAssistImage

public static java.awt.Image getContentAssistImage()
Returns the image to display beside text components when content assist is available.

Returns:
The image to use.

getMatchCaseCheckboxText

public final java.lang.String getMatchCaseCheckboxText()
Returns the text for the "Match Case" check box.

Returns:
The text for the "Match Case" check box.
See Also:
setMatchCaseCheckboxText(java.lang.String)

getRegularExpressionCheckboxText

public final java.lang.String getRegularExpressionCheckboxText()
Returns the text for the "Regular Expression" check box.

Returns:
The text for the "Regular Expression" check box.
See Also:
setRegularExpressionCheckboxText(java.lang.String)

getSearchString

public java.lang.String getSearchString()
Returns the text to search for.

Returns:
The text the user wants to search for.

getSearchStrings

public java.util.Vector getSearchStrings()
Returns the Strings contained in the "Find what" combo box.

Returns:
A java.util.Vector of strings found in the "Find what" combo box. If that combo box is empty, than a zero-length Vector is returned.

getTextComponent

protected static javax.swing.text.JTextComponent getTextComponent(javax.swing.JComboBox combo)
Returns the text editor component for the specified combo box.

Parameters:
combo - The combo box.
Returns:
The text component.

getWholeWordCheckboxText

public final java.lang.String getWholeWordCheckboxText()
Returns the text for the "Whole Word" check box.

Returns:
The text for the "Whole Word" check box.
See Also:
setWholeWordCheckboxText(java.lang.String)

handleRegExCheckBoxClicked

protected void handleRegExCheckBoxClicked()
Called when the regex checkbox is clicked. Subclasses can override to add custom behavior, but should call the super implementation.


handleToggleButtons

protected AbstractSearchDialog.EnableResult handleToggleButtons()
Returns whether any action-related buttons (Find Next, Replace, etc.) should be enabled. Subclasses can call this method when the "Find What" or "Replace With" text fields are modified. They can then enable/disable any components as appropriate.

Returns:
Whether the buttons should be enabled.

isPreJava6JRE

protected static boolean isPreJava6JRE()
This method allows us to check if the current JRE is 1.4 or 1.5. This is used to workaround some Java bugs, for example, pre 1.6, JComboBoxes would "swallow" enter key presses in them when their content changed. This causes the user to have to press Enter twice when entering text to search for in a "Find" dialog, so instead we detect if a JRE is old enough to have this behavior and, if so, programmitcally press the Find button.

Returns:
Whether this is a 1.4 or 1.5 JRE.

isWholeWord

protected static final boolean isWholeWord(java.lang.CharSequence searchIn,
                                           int offset,
                                           int len)
Returns whether the characters on either side of substr(searchIn,startPos,startPos+searchStringLength) are whitespace. While this isn't the best definition of "whole word", it's the one we're going to use for now.


setCancelButtonText

public final void setCancelButtonText(java.lang.String text)
Sets the text on the Cancel button.

Parameters:
text - The text for the Cancel button.
See Also:
getCancelButtonText()

setMatchCaseCheckboxText

public final void setMatchCaseCheckboxText(java.lang.String text)
Sets the text for the "Match Case" check box.

Parameters:
text - The text for the "Match Case" check box.
See Also:
getMatchCaseCheckboxText()

setRegularExpressionCheckboxText

public final void setRegularExpressionCheckboxText(java.lang.String text)
Sets the text for the "Regular Expression" check box.

Parameters:
text - The text for the "Regular Expression" check box.
See Also:
getRegularExpressionCheckboxText()

setSearchString

public void setSearchString(java.lang.String newSearchString)
Sets the java.lang.String to search for.

Parameters:
newSearchString - The java.lang.String to put into the search field.

setVisible

public void setVisible(boolean visible)


setWholeWordCheckboxText

public final void setWholeWordCheckboxText(java.lang.String text)
Sets the text for the "Whole Word" check box.

Parameters:
text - The text for the "Whole Word" check box.
See Also:
getWholeWordCheckboxText()