## mars.venus.editors.jeditsyntax
Class JEditBasedTextArea

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  mars.venus.editors.jeditsyntax.JEditTextArea
                      mars.venus.editors.jeditsyntax.JEditBasedTextArea

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable, EventListener, CaretListener, MARSTextEditingArea

    public class JEditBasedTextArea

extends JEditTextArea
implements MARSTextEditingArea, CaretListener

Adaptor subclass for JEditTextArea Provides those methods required by the MARSTextEditingArea interface that are not defined by JEditTextArea. This permits JEditTextArea to be used within MARS largely without modification. DPS 4-20-2010

Since:
  4.0
Author:
  Pete Sanderson
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes/interfaces inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary

Fields inherited from class mars.venus.editors.jeditsyntax.JEditTextArea

`biasLeft, blink, BOTTOM, bracketLine, bracketPosition, caretBlinkRate, caretBlinks, caretEvent, caretTimer, caretVisible, CENTER, document, documentHandler, editable, electricScroll, firstLine, focusedComponent, horizontal, horizontalOffset, inputHandler, LEFT_OF_SCROLLBAR, lineSegment, listenerList, magicCaret, overwrite, painter, popup, rectSelect, RIGHT, scrollBarsInitialized, selectionEnd, selectionEndLine, selectionStart, selectionStartLine, unredoing, vertical, visibleLines`

Fields inherited from class javax.swing.JComponent
`accessibleContext, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface mars.venus.editors.MARSTextEditingArea
`TEXT_FOUND, TEXT_NOT_FOUND, TEXT_REPLACED_FOUND_NEXT, TEXT_REPLACED_NOT_FOUND_NEXT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`JEditBasedTextArea(EditPane editPain, JComponent lineNumbers)`

Method Summary
`void` `caretUpdate(CaretEvent e)` Display caret position on the edit pane.
`void` `discardAllUndoableEdits()` Get rid of any accumulated undoable edits.
`int` `doFindText(String find, boolean caseSensitive)` Finds next occurrence of text in a forward search of a string.
`int` `doReplace(String find, String replace, boolean caseSensitive)` Finds and replaces next occurrence of text in a string in a forward search.
`int` `doReplaceAll(String find, String replace, boolean caseSensitive)` Finds and replaces ALL occurrences of text in a string in a forward search.
`Font` `getFont()`
`Component` `getOuterComponent()`
`UndoManager` `getUndoManager()` Returns the undo manager for this editing area
`int` `nextIndex(String input, String find, int start, boolean caseSensitive)` Returns next posn of word in text - forward search.
`void` `redo()` Redo previous edit
`void` `replaceSelection(String replacementText)` Same as setSelectedText but named for compatibility with JTextComponent method replaceSelection.
`void` `setCaretBlinkRate(int rate)` Set the caret blinking rate in milliseconds.
`void` `setFont(Font f)`
`void` `setLineHighlightEnabled(boolean highlight)` Use for highlighting the line currently being edited.
`void` `setSelectionVisible(boolean vis)`
`void` `setSourceCode(String s, boolean editable)`
`void` `setTabSize(int chars)` Set the number of characters a tab will expand to.
`void` `undo()` Undo previous edit
`void` `updateSyntaxStyles()` Update the syntax style table, which is obtained from SyntaxUtilities.

Methods inherited from class mars.venus.editors.jeditsyntax.JEditTextArea

`_offsetToX, addCaretListener, blinkCaret, copy, cut, documentChanged, fireCaretEvent, getAutoIndent, getBracketLine, getBracketPosition, getCaretLine, getCaretPosition, getDocument, getDocumentLength, getElectricScroll, getFirstLine, getHorizontalOffset, getInputHandler, getLeadingWhiteSpace, getLineCount, getLineEndOffset, getLineLength, getLineOfOffset, getLineStartOffset, getLineText, getLineText, getMagicCaretPosition, getMarkLine, getMarkPosition, getPainter, getRightClickPopup, getSelectedText, getSelectionEnd, getSelectionEnd, getSelectionEndLine, getSelectionStart, getSelectionStart, getSelectionStartLine, getSyntaxSensitiveToolTipText, getText, getText, getText, getTokenMarker, getVisibleLines, isCaretBlinkEnabled, isCaretVisible, isEditable, isOverwriteEnabled, isSelectionRectangular, lineToY, offsetToX, overwriteSetSelectedText, paste, processKeyEvent, recalculateVisibleLines, removeCaretListener, removeNotify, scrollTo, scrollToCaret, select, selectAll, selectNone, setCaretBlinkEnabled, setCaretPosition, setCaretVisible, setDocument, setEditable, setElectricScroll, setFirstLine, setHorizontalOffset, setInputHandler, setMagicCaretPosition, setOrigin, setOverwriteEnabled, setRightClickPopup, setSelectedText, setSelectionEnd, setSelectionRectangular, setSelectionStart, setText, setTokenMarker, updateBracketHighlight, updateScrollBars, xToOffset, xyToOffset, yToLine`

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI`

Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface mars.venus.editors.MARSTextEditingArea
`copy, cut, getCaretPosition, getDocument, getFontMetrics, getSelectedText, getSelectionEnd, getSelectionStart, getText, grabFocus, paste, requestFocusInWindow, revalidate, select, selectAll, setBackground, setCaretPosition, setCaretVisible, setEditable, setEnabled, setSelectionEnd, setSelectionStart, setText`

Constructor Detail

### JEditBasedTextArea

    public JEditBasedTextArea(EditPane editPain,
                              JComponent lineNumbers)

Method Detail

### setFont

    public void setFont(Font f)

  Specified by:
    `setFont` in interface `MARSTextEditingArea`
  Overrides:
    `setFont` in class `JComponent`

### getFont

    public Font getFont()

  Specified by:
    `getFont` in interface `MenuContainer`
  Specified by:
    `getFont` in interface `MARSTextEditingArea`
  Overrides:
    `getFont` in class `Component`

### setLineHighlightEnabled

    public void setLineHighlightEnabled(boolean highlight)

  Use for highlighting the line currently being edited.

  Specified by:
    `setLineHighlightEnabled` in interface `MARSTextEditingArea`
  Parameters:
    `highlight` - true to enable line highlighting, false to disable.

### setCaretBlinkRate

    public void setCaretBlinkRate(int rate)

  Set the caret blinking rate in milliseconds. If rate is 0 will disable blinking. If negative, do nothing.

  Specified by:
    `setCaretBlinkRate` in interface `MARSTextEditingArea`
  Parameters:
    `rate` - blinking rate in milliseconds

### setTabSize

    public void setTabSize(int chars)

  Set the number of characters a tab will expand to.

  Specified by:
    `setTabSize` in interface `MARSTextEditingArea`
  Parameters:
    `chars` - number of characters

### updateSyntaxStyles

    public void updateSyntaxStyles()

  Update the syntax style table, which is obtained from SyntaxUtilities.

  Specified by:
    `updateSyntaxStyles` in interface `MARSTextEditingArea`

### getOuterComponent

    public Component getOuterComponent()

  Specified by:
    `getOuterComponent` in interface `MARSTextEditingArea`

### discardAllUndoableEdits

    public void discardAllUndoableEdits()

  Get rid of any accumulated undoable edits. It is useful to call this method after opening a file into the text area. The act of setting its text content upon reading the file will generate an undoable edit. Normally you don't want a freshly-opened file to appear with its Undo action enabled. But it will unless you call this after setting the text.

  Specified by:
    `discardAllUndoableEdits` in interface `MARSTextEditingArea`

### caretUpdate

    public void caretUpdate(CaretEvent e)

  Display caret position on the edit pane.

  Specified by:
    `caretUpdate` in interface `CaretListener`
  Parameters:
    `e` - A CaretEvent

### replaceSelection

    public void replaceSelection(String replacementText)

  Same as setSelectedText but named for compatibility with JTextComponent method replaceSelection. DPS, 14 Apr 2010

  Specified by:
    `replaceSelection` in interface `MARSTextEditingArea`
  Parameters:
    `replacementText` - The replacement text for the selection

### setSelectionVisible

    public void setSelectionVisible(boolean vis)

  Specified by:
    `setSelectionVisible` in interface `MARSTextEditingArea`

### setSourceCode

    public void setSourceCode(String s,
                              boolean editable)

  Specified by:
    `setSourceCode` in interface `MARSTextEditingArea`

### getUndoManager

    public UndoManager getUndoManager()

  Returns the undo manager for this editing area

  Specified by:
    `getUndoManager` in interface `MARSTextEditingArea`
  Returns:
    the undo manager

### undo

    public void undo()

  Undo previous edit

  Specified by:
    `undo` in interface `MARSTextEditingArea`

### redo

    public void redo()

  Redo previous edit

  Specified by:
    `redo` in interface `MARSTextEditingArea`

### doFindText

    public int doFindText(String find,
                          boolean caseSensitive)

  Finds next occurrence of text in a forward search of a string. Search begins at the current cursor location, and wraps around when the end of the string is reached.

  Specified by:
    `doFindText` in interface `MARSTextEditingArea`
  Parameters:
    `find` - the text to locate in the string
    `caseSensitive` - true if search is to be case-sensitive, false otherwise
  Returns:
    TEXT_FOUND or TEXT_NOT_FOUND, depending on the result.

### nextIndex

    public int nextIndex(String input,
                         String find,
                         int start,
                         boolean caseSensitive)

  Returns next posn of word in text - forward search. If end of string is reached during the search, will wrap around to the beginning one time.

  Parameters:
    `input` - the string to search
    `find` - the string to find
    `start` - the character position to start the search
    `caseSensitive` - true for case sensitive. false to ignore case
  Returns:
    next indexed position of found text or -1 if not found

### doReplace

    public int doReplace(String find,
                         String replace,
                         boolean caseSensitive)

  Finds and replaces next occurrence of text in a string in a forward search. If cursor is initially at end of matching selection, will immediately replace then find and select the next occurrence if any. Otherwise it performs a find operation. The replace can be undone with one undo operation.

  Specified by:
    `doReplace` in interface `MARSTextEditingArea`
  Parameters:
    `find` - the text to locate in the string
    `replace` - the text to replace the find text with - if the find text exists
    `caseSensitive` - true for case sensitive. false to ignore case
  Returns:
    Returns TEXT_FOUND if not initially at end of selected match and matching occurrence is found. Returns TEXT_NOT_FOUND if the text is not matched. Returns TEXT_REPLACED_NOT_FOUND_NEXT if replacement is successful but there are no additional matches. Returns TEXT_REPLACED_FOUND_NEXT if reaplacement is successful and there is at least one additional match.

### doReplaceAll

    public int doReplaceAll(String find,
                            String replace,
                            boolean caseSensitive)

  Finds and replaces ALL occurrences of text in a string in a forward search. All replacements are bundled into one CompoundEdit, so one Undo operation will undo all of them.

  Specified by:
    `doReplaceAll` in interface `MARSTextEditingArea`
  Parameters:
    `find` - the text to locate in the string
    `replace` - the text to replace the find text with - if the find text exists
    `caseSensitive` - true for case sensitive. false to ignore case
  Returns:
    the number of occurrences that were matched and replaced.