edu.rice.cs.drjava.ui
Class FindReplaceDialog

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--edu.rice.cs.drjava.ui.TabbedPanel
                                |
                                +--edu.rice.cs.drjava.ui.FindReplaceDialog
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, OptionConstants, Serializable

class FindReplaceDialog
extends TabbedPanel
implements OptionConstants

The tabbed panel that handles requests for finding and replacing text. (Used to be a dialog box, hence the name.)

Version:
$Id: FindReplaceDialog.java,v 1.36 2002/09/02 21:24:12 csreis Exp $
See Also:
Serialized Form

Inner Class Summary
(package private)  class FindReplaceDialog.MatchCaseListener
           
 
Inner classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.AWTTreeLock
 
Field Summary
private  boolean _caretChanged
           
private  CaretListener _caretListener
          Listens for changes to the cursor position in order to reset the start position
private  DefinitionsPane _defPane
           
private  JTextField _findField
           
private  Action _findNextAction
           
private  JButton _findNextButton
           
private  JPanel _labelPanel
           
private  FindReplaceMachine _machine
           
private  JCheckBox _matchCase
           
private  JPanel _matchCaseAndClosePanel
           
private  JLabel _message
           
private  SingleDisplayModel _model
           
private  JOptionPane _optionPane
           
private  Action _replaceAction
           
private  Action _replaceAllAction
           
private  JButton _replaceAllButton
           
private  JButton _replaceButton
           
private  JTextField _replaceField
           
private  Action _replaceFindAction
           
private  JButton _replaceFindButton
           
private  JPanel _rightPanel
           
 
Fields inherited from class edu.rice.cs.drjava.ui.TabbedPanel
_closeButton, _closeListener, _closePanel, _displayed, _frame, _mainPanel, _name
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, actionMap, ACTIONMAP_CREATED, alignmentX, alignmentY, ANCESTOR_INPUTMAP_CREATED, ANCESTOR_USING_BUFFER, ancestorInputMap, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, CREATED_DOUBLE_BUFFER, flags, FOCUS_INPUTMAP_CREATED, focusInputMap, HAS_FOCUS, htmlKey, htmlView, inputVerifier, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, IS_PRINTING, IS_PRINTING_ALL, KEY_EVENTS_ENABLED, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, paintingChild, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, verifyInputWhenFocusTarget, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, WHEN_IN_FOCUSED_WINDOW_BINDINGS, WIF_INPUTMAP_CREATED, windowInputMap
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, needsPaint, printing, printingThreads, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface edu.rice.cs.drjava.config.OptionConstants
COMPILER_ERROR_COLOR, DEBUG_BREAKPOINT_COLOR, DEBUG_SHOW_THREADS, DEBUG_SOURCEPATH, DEBUG_STEP_DRJAVA, DEBUG_STEP_INTERPRETER, DEBUG_STEP_JAVA, DEBUG_THREAD_COLOR, DEFINITIONS_BACKGROUND_COLOR, DEFINITIONS_COMMENT_COLOR, DEFINITIONS_DOUBLE_QUOTED_COLOR, DEFINITIONS_KEYWORD_COLOR, DEFINITIONS_MATCH_COLOR, DEFINITIONS_NORMAL_COLOR, DEFINITIONS_NUMBER_COLOR, DEFINITIONS_SINGLE_QUOTED_COLOR, DEFINITIONS_TYPE_COLOR, EXTRA_CLASSPATH, FONT_DOCLIST, FONT_MAIN, FONT_TOOLBAR, HISTORY_MAX_SIZE, INDENT_LEVEL, INTERACTIONS_EXIT_PROMPT, JAVAC_ALLOW_ASSERT, JAVAC_LOCATION, JSR14_COLLECTIONSPATH, JSR14_LOCATION, KEY_BACKWARD, KEY_BEGIN_DOCUMENT, KEY_BEGIN_LINE, KEY_CLOSE_FILE, KEY_COMPILE, KEY_COMPILE_ALL, KEY_COPY, KEY_CUT, KEY_CUT_LINE, KEY_DEBUG_BREAKPOINT_TOGGLE, KEY_DEBUG_MODE_TOGGLE, KEY_DEBUG_RESUME, KEY_DEBUG_STEP_INTO, KEY_DEBUG_STEP_OUT, KEY_DEBUG_STEP_OVER, KEY_DELETE_NEXT, KEY_DELETE_PREVIOUS, KEY_DOWN, KEY_END_DOCUMENT, KEY_END_LINE, KEY_FIND_NEXT, KEY_FIND_REPLACE, KEY_FORWARD, KEY_GOTO_LINE, KEY_NEW_FILE, KEY_NEXT_DOCUMENT, KEY_NEXT_WORD, KEY_OPEN_FILE, KEY_PAGE_DOWN, KEY_PAGE_UP, KEY_PASTE, KEY_PREVIOUS_DOCUMENT, KEY_PREVIOUS_WORD, KEY_PRINT, KEY_PRINT_PREVIEW, KEY_QUIT, KEY_REDO, KEY_SAVE_FILE, KEY_SAVE_FILE_AS, KEY_SELECT_ALL, KEY_UNDO, KEY_UP, LINEENUM_ENABLED, mask, QUIT_PROMPT, RECENT_FILES, RECENT_FILES_MAX_SIZE, TOOLBAR_ICONS_ENABLED, TOOLBAR_TEXT_ENABLED, WORKING_DIRECTORY
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FindReplaceDialog(MainFrame frame, SingleDisplayModel model)
          Constructor.
 
Method Summary
protected  void _close()
          behavior that subclasses of TabbedPanel generally have
private  void _doFind()
          Abstracted out since this is called from find and replace/find
private  void _selectFoundItem(int from, int to)
          Will select the searched-for text.
private  void _updateMachine()
           
private static void addComp(Container p, JComponent child, GridBagConstraints c, GridBagLayout gbl, int row, int col, float weightx, float weighty, int gridw, int ipady)
           
 void beginListeningTo(DefinitionsPane defPane)
          Called from MainFrame upon opening this Dialog or changes in the active document
 void findNext()
          Called when the user presses the key assigned to find next
private static void hookComponents(Container parent, JComponent q1, JComponent q2, JComponent q4)
          consider a parent container.
 void requestFocus()
           
 void setFieldFont(Font f)
          Sets the font of the find and replace fields to f.
 void stopListening()
          Called from MainFrame upon closing this Dialog or changes in the active document
private static Container wrap(JComponent comp)
           
 
Methods inherited from class edu.rice.cs.drjava.ui.TabbedPanel
_setUpPanes, getName, isDisplayed, setDisplayed
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, checkIfChildObscuredBySibling, clearFocusOwners, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

_optionPane

private JOptionPane _optionPane

_findNextButton

private JButton _findNextButton

_replaceButton

private JButton _replaceButton

_replaceFindButton

private JButton _replaceFindButton

_replaceAllButton

private JButton _replaceAllButton

_findField

private JTextField _findField

_replaceField

private JTextField _replaceField

_message

private JLabel _message

_labelPanel

private JPanel _labelPanel

_matchCase

private JCheckBox _matchCase

_matchCaseAndClosePanel

private JPanel _matchCaseAndClosePanel

_rightPanel

private JPanel _rightPanel

_machine

private FindReplaceMachine _machine

_model

private SingleDisplayModel _model

_defPane

private DefinitionsPane _defPane

_caretChanged

private boolean _caretChanged

_caretListener

private CaretListener _caretListener
Listens for changes to the cursor position in order to reset the start position

_findNextAction

private Action _findNextAction

_replaceAction

private Action _replaceAction

_replaceFindAction

private Action _replaceFindAction

_replaceAllAction

private Action _replaceAllAction
Constructor Detail

FindReplaceDialog

public FindReplaceDialog(MainFrame frame,
                         SingleDisplayModel model)
Constructor.
Parameters:
Frame - frame the overall enclosing window
DefinitionsPane - defPane the definitions pane which contains the document text being searched over
Method Detail

requestFocus

public void requestFocus()
Overrides:
requestFocus in class JComponent

findNext

public void findNext()
Called when the user presses the key assigned to find next

beginListeningTo

public void beginListeningTo(DefinitionsPane defPane)
Called from MainFrame upon opening this Dialog or changes in the active document

stopListening

public void stopListening()
Called from MainFrame upon closing this Dialog or changes in the active document

_doFind

private void _doFind()
Abstracted out since this is called from find and replace/find

_close

protected void _close()
Description copied from class: TabbedPanel
behavior that subclasses of TabbedPanel generally have
Overrides:
_close in class TabbedPanel

setFieldFont

public void setFieldFont(Font f)
Sets the font of the find and replace fields to f.

wrap

private static Container wrap(JComponent comp)

hookComponents

private static void hookComponents(Container parent,
                                   JComponent q1,
                                   JComponent q2,
                                   JComponent q4)
consider a parent container. Change its layout to GridBagLayout with 2 columns, 2 rows. Consider them quadrants in a coordinate plain. put the arguments in their corresponding quadrants, ignoring q3.

addComp

private static void addComp(Container p,
                            JComponent child,
                            GridBagConstraints c,
                            GridBagLayout gbl,
                            int row,
                            int col,
                            float weightx,
                            float weighty,
                            int gridw,
                            int ipady)

_updateMachine

private void _updateMachine()

_selectFoundItem

private void _selectFoundItem(int from,
                              int to)
Will select the searched-for text. Originally highlighted the text, but we ran into problems with the document remove method changing the view to where the cursor was located, resulting in replace constantly jumping from the replaced text back to the cursor. There was a removePreviousHighlight method which was removed since selections are removed automatically upon a caret change.