Class 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

    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, java.awt.Window.Type
      • 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

      Fields 
      Modifier and Type Field Description
      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 java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
      • Fields inherited from interface javax.swing.WindowConstants

        DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
    • Constructor Summary

      Constructors 
      Constructor Description
      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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      static void rememberSearchTerm​(java.lang.String searchTerm, javax.swing.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​(javax.swing.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 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, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, setVisible, show, toBack
      • Methods inherited from class java.awt.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 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, 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, 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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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

        • 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​(java.awt.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​(java.lang.String searchTerm,
                                              javax.swing.JComboBox searchTermCombo)