mars.venus.editors.jeditsyntax
Class JEditBasedTextArea

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by mars.venus.editors.jeditsyntax.JEditTextArea
                  extended by 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.