de.calcom.cclib.text
Class FindReplaceDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by de.calcom.cclib.text.FindReplaceDialog
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class FindReplaceDialog
extends javax.swing.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

Version:
1.5, April 27, 2003
Author:
Ulrich Hilger, CalCom, http://www.calcom.de, info@calcom.de
See Also:
Document, JEditorPane, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
static int MODE_DOCUMENT
           
static int MODE_PROJECT
           
static int OP_FIND
           
static int OP_NONE
           
static int OP_REPLACE
           
static int RO_ALL
           
static int RO_DONE
           
static int RO_NO
           
static int RO_YES
           
static boolean STATE_LOCKED
           
static boolean STATE_UNLOCKED
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
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
FindReplaceDialog()
          Construct a FindReplaceDialog.
FindReplaceDialog(java.awt.Frame owner, javax.swing.JEditorPane editor)
          Construct a FindReplaceDialog.
FindReplaceDialog(java.awt.Frame owner, javax.swing.JEditorPane editor, FindReplaceListener listener)
          Construct a FindReplaceDialog.
 
Method Summary
 void addFindReplaceListener(FindReplaceListener listener)
          add an event listener to this dialog.
 void centerDialog(java.awt.Frame owner)
          Center this dialog window relative to its owning Frame.
 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(javax.swing.JEditorPane editor)
          Set the JEditorPane holding the document to be searched
 void setMode(int mode)
          Set the mode.
 void terminateOperation()
          Terminate the current operation
 
Methods inherited from class javax.swing.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 java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, 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, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, 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, isMaximumSizeSet, isMinimumSizeSet, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

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 Detail

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(java.awt.Frame owner,
                         javax.swing.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 seach in
See Also:
JEditorPane, Document, Frame

FindReplaceDialog

public FindReplaceDialog(java.awt.Frame owner,
                         javax.swing.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 seach in
listener - listener for handling FindReplaceEvents
See Also:
JEditorPane, Document, Frame
Method Detail

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(javax.swing.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

Parameters:
mode - one of MODE_DOCUMENT and MODE_PROJECT

centerDialog

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

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