# Class FindReplaceDialog

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
de.calcom.cclib.text.FindReplaceDialog

All Implemented Interfaces:
  `ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants`

public class FindReplaceDialog extends JDialog
Dialog to manage find and replace on a `Document` shown in a `JEditorPane`.

The component has a 'pluggable' interface about how to deal with the event that one document has been searched to the end. If it is constructed with a FindReplaceListener, it shows an additional checkbox 'Whole project' where the user can select, if a group of documents shall be searched instead of a single document.

If only one document is searched, the dialog searches only in the document currently shown in the editor.

By adding a FindReplaceListener listening for FindReplaceEvents, the FindReplaceDialog notifies other classes about the fact that a group of documents shall be searched instead of only the current one.

Initially FindReplaceDialog notifies the listener that the first document in the group shall be loaded into the editor.

After loading the first document and resuming the find or replace operation, the listener gets informed that the end of a document has been reached. A handling method for that event should cause the editor to load the next document in the group before it resumes the find or replace operation.

Example for an implementation of FindReplaceListener:

IMPORTANT: the methods of the FindReplaceListener need to call either resumeOperation() or terminateOperation() on the FindReplaceDialog, that fired the FindReplaceEvent. Otherwise the FindReplaceDialog could 'hang'.

      FindReplaceDialog frd = new FindReplaceDialog(aFrame,
                                myEditorPane, new MyFindReplaceListener());

      protected class MyFindReplaceListener implements FindReplaceListener {
        public void getNextDocument(FindReplaceEvent e) {
          if(documentsLeft()) { // documentsLeft() is a method coded somewhere else
            myEditorPane.setDocument(nextDocument()); // nextDocument() is a method coded somewhere else
            ((FindReplaceDialog) e.getSource()).resumeOperation();
          }
          else {
            ((FindReplaceDialog) e.getSource()).terminateOperation();
          }
        }

        public void getFirstDocument(FindReplaceEvent e) {
          myEditorPane.setDocument(firstDocument()); // firstDocument() is a method coded somewhere else
          ((FindReplaceDialog) e.getSource()).resumeOperation();
        }
      }

Added i18n support for application SimplyHTML in version 1.5

See Also:
  - `Document`
  - `JEditorPane`
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from class JDialog

`JDialog.AccessibleJDialog`

### Nested classes/interfaces inherited from class Dialog

`Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType`

### Nested classes/interfaces inherited from class Window

`Window.AccessibleAWTWindow, Window.Type`

### Nested classes/interfaces inherited from class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`MODE_DOCUMENT`
`static final int`
`MODE_PROJECT`
`static final int`
`OP_FIND`
`static final int`
`OP_NONE`
`static final int`
`OP_REPLACE`
`static final int`
`RO_ALL`
`static final int`
`RO_DONE`
`static final int`
`RO_NO`
`static final int`
`RO_YES`
`static final boolean`
`STATE_LOCKED`
`static final boolean`
`STATE_UNLOCKED`

### Fields inherited from class JDialog

`accessibleContext, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class Dialog

`DEFAULT_MODALITY_TYPE`

### Fields inherited from class Component

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Fields inherited from interface WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

## Constructor Summary

Constructors
Constructor
Description
`FindReplaceDialog()`
Construct a `FindReplaceDialog`.
`FindReplaceDialog(Frame owner, JEditorPane editor)`
Construct a `FindReplaceDialog`.
`FindReplaceDialog(Frame owner, JEditorPane editor, FindReplaceListener listener)`
Construct a `FindReplaceDialog`.

## Method Summary

Modifier and Type
Method
Description
`void`
`addFindReplaceListener(FindReplaceListener listener)`
add an event listener to this dialog.
`void`
`centerDialog(Frame owner)`
Center this dialog window relative to its owning `Frame`.
`static void`
`rememberSearchTerm(String searchTerm, JComboBox searchTermCombo)`
`void`
`removeFindReplaceListener(FindReplaceListener listener)`
remove an event listener from this dialog.
`void`
`resumeOperation()`
Resume the current operation after a getFirstDocument or getNextDocument event was fired
`void`
`setEditor(JEditorPane editor)`
Set the JEditorPane holding the document to be searched
`void`
`setMode(int mode)`
Set the mode.
`void`
`setSearchingBusyCursor()`
`void`
`setSearchingDefaultCursor()`
`void`
`terminateOperation()`
Terminate the current operation

### Methods inherited from class JDialog

`addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

### Methods inherited from class Dialog

`addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack`

### Methods inherited from class Window

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront`

### Methods inherited from class Container

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### STATE_LOCKED

public static final boolean STATE_LOCKED

See Also:
  - Constant Field Values

### STATE_UNLOCKED

public static final boolean STATE_UNLOCKED

See Also:
  - Constant Field Values

### RO_YES

public static final int RO_YES

See Also:
  - Constant Field Values

### RO_NO

public static final int RO_NO

See Also:
  - Constant Field Values

### RO_ALL

public static final int RO_ALL

See Also:
  - Constant Field Values

### RO_DONE

public static final int RO_DONE

See Also:
  - Constant Field Values

### MODE_DOCUMENT

public static final int MODE_DOCUMENT

See Also:
  - Constant Field Values

### MODE_PROJECT

public static final int MODE_PROJECT

See Also:
  - Constant Field Values

### OP_NONE

public static final int OP_NONE

See Also:
  - Constant Field Values

### OP_FIND

public static final int OP_FIND

See Also:
  - Constant Field Values

### OP_REPLACE

public static final int OP_REPLACE

See Also:
  - Constant Field Values

## Constructor Details

### FindReplaceDialog

public FindReplaceDialog()
Construct a `FindReplaceDialog`.

Does not show the dialog window, as fields 'editor' and 'doc' have to be set separately before the dialog is operable.

See Also:
  - `JEditorPane`
  - `Document`
  - `Frame`

### FindReplaceDialog

public FindReplaceDialog(Frame owner, JEditorPane editor)
Construct a `FindReplaceDialog`.

Shows the dialog window modal, packed and centered over the owning `Frame` after construction.

Using this constructor implies the dialog shall be used in mode MODE_DOCUMENT

Parameters:
  `owner` - the `Frame` that owns this dialog
  `editor` - `JEditorPane` displaying the `Document` to search in
See Also:
  - `JEditorPane`
  - `Document`
  - `Frame`

### FindReplaceDialog

public FindReplaceDialog(Frame owner, JEditorPane editor, FindReplaceListener listener)
Construct a `FindReplaceDialog`.

Shows the dialog window modal, packed and centered over the owning `Frame` after construction.

Using this constructor implies the dialog shall be used in mode MODE_PROJECT

Parameters:
  `owner` - the `Frame` that owns this dialog
  `editor` - `JEditorPane` displaying the `Document` to search in
  `listener` - listener for handling FindReplaceEvents
See Also:
  - `JEditorPane`
  - `Document`
  - `Frame`

## Method Details

### addFindReplaceListener

public void addFindReplaceListener(FindReplaceListener listener)
add an event listener to this dialog.

Parameters:
  `listener` - the event listener to add

### removeFindReplaceListener

public void removeFindReplaceListener(FindReplaceListener listener)
remove an event listener from this dialog.

Parameters:
  `listener` - the event listener to remove

### resumeOperation

public void resumeOperation()
Resume the current operation after a getFirstDocument or getNextDocument event was fired

### terminateOperation

public void terminateOperation()
Terminate the current operation

### setEditor

public void setEditor(JEditorPane editor)
Set the JEditorPane holding the document to be searched

Parameters:
  `editor` - the JEditorPane holding the document to be searched
See Also:
  - `JEditorPane`

### setMode

public void setMode(int mode)
Set the mode.

Switches between

- MODE_DOCUMENT: only the document currently viewed in the editor can be searched
- MODE_PROJECT: An additional check box allows to choose, whether or not the user likes to search a whole group of documents.

Parameters:
  `mode` - one of MODE_DOCUMENT and MODE_PROJECT

### setSearchingBusyCursor

public void setSearchingBusyCursor()

### setSearchingDefaultCursor

public void setSearchingDefaultCursor()

### centerDialog

public void centerDialog(Frame owner)
Center this dialog window relative to its owning `Frame`.

Parameters:
  `owner` - `Frame` owning this dialog
See Also:
  - `Frame`

### rememberSearchTerm

public static void rememberSearchTerm(String searchTerm, JComboBox searchTermCombo)