Class ACLTextArea

    • Field Detail

      • CENTER

        protected static String CENTER
      • RIGHT

        protected static String RIGHT
      • BOTTOM

        protected static String BOTTOM
      • focusedComponent

        protected static ACLTextArea focusedComponent
      • caretTimer

        protected static Timer caretTimer
      • scrollTimer

        protected Timer scrollTimer
      • caretEvent

        protected jade.tools.gui.ACLTextArea.MutableCaretEvent caretEvent
      • caretBlinks

        protected boolean caretBlinks
      • caretVisible

        protected boolean caretVisible
      • blink

        protected boolean blink
      • editable

        protected boolean editable
      • firstLine

        protected int firstLine
      • visibleLines

        protected int visibleLines
      • electricScroll

        protected int electricScroll
      • horizontalOffset

        protected int horizontalOffset
      • scrollBarsInitialized

        protected boolean scrollBarsInitialized
      • inputHandler

        protected jade.tools.gui.ACLTextArea.InputHandler inputHandler
      • documentHandler

        protected jade.tools.gui.ACLTextArea.DocumentHandler documentHandler
      • lineSegment

        protected Segment lineSegment
      • selectionStart

        protected int selectionStart
      • selectionStartLine

        protected int selectionStartLine
      • selectionEnd

        protected int selectionEnd
      • selectionEndLine

        protected int selectionEndLine
      • biasLeft

        protected boolean biasLeft
      • bracketPosition

        protected int bracketPosition
      • bracketLine

        protected int bracketLine
      • magicCaret

        protected int magicCaret
      • overwrite

        protected boolean overwrite
    • Constructor Detail

      • ACLTextArea

        public ACLTextArea()
        Creates a new JEditTextArea with the default settings.
    • Method Detail

      • isManagingFocus

        public final boolean isManagingFocus()
        Returns if this component can be traversed by pressing the Tab key. This returns false.
        Overrides:
        isManagingFocus in class JComponent
        Returns:
        The ManagingFocus value
      • getPainter

        public final ACLTextAreaPainter getPainter()
        Returns the object responsible for painting this text area.
        Returns:
        The Painter value
      • getInputHandler

        public final jade.tools.gui.ACLTextArea.InputHandler getInputHandler()
        Returns the input handler.
        Returns:
        The InputHandler value
      • isCaretBlinkEnabled

        public final boolean isCaretBlinkEnabled()
        Returns true if the caret is blinking, false otherwise.
        Returns:
        The CaretBlinkEnabled value
      • isCaretVisible

        public final boolean isCaretVisible()
        Returns true if the caret is visible, false otherwise.
        Returns:
        The CaretVisible value
      • getElectricScroll

        public final int getElectricScroll()
        Returns the number of lines from the top and button of the text area that are always visible.
        Returns:
        The ElectricScroll value
      • getFirstLine

        public final int getFirstLine()
        Returns the line displayed at the text area's origin.
        Returns:
        The FirstLine value
      • getVisibleLines

        public final int getVisibleLines()
        Returns the number of lines visible in this text area.
        Returns:
        The VisibleLines value
      • getHorizontalOffset

        public final int getHorizontalOffset()
        Returns the horizontal offset of drawn lines.
        Returns:
        The HorizontalOffset value
      • getDocument

        public final ACLSyntaxDocument getDocument()
        Returns the document this text area is editing.
        Returns:
        The Document value
      • getTokenMarker

        public final ACLSLTokenMarker getTokenMarker()
        Returns the document's token marker. Equivalent to calling getDocument().getTokenMarker() .
        Returns:
        The TokenMarker value
      • getDocumentLength

        public final int getDocumentLength()
        Returns the length of the document. Equivalent to calling getDocument().getLength() .
        Returns:
        The DocumentLength value
      • getLineCount

        public final int getLineCount()
        Returns the number of lines in the document.
        Returns:
        The LineCount value
      • getLineOfOffset

        public final int getLineOfOffset​(int offset)
        Returns the line containing the specified offset.
        Parameters:
        offset - The offset
        Returns:
        The LineOfOffset value
      • getText

        public final String getText​(int start,
                                    int len)
        Returns the specified substring of the document.
        Parameters:
        start - The start offset
        len - The length of the substring
        Returns:
        The substring, or null if the offsets are invalid
      • getText

        public final void getText​(int start,
                                  int len,
                                  Segment segment)
        Copies the specified substring of the document into a segment. If the offsets are invalid, the segment will contain a null string.
        Parameters:
        start - The start offset
        len - The length of the substring
        segment - The segment
      • getLineText

        public final String getLineText​(int lineIndex)
        Returns the text on the specified line.
        Parameters:
        lineIndex - The line
        Returns:
        The text, or null if the line is invalid
      • getLineText

        public final void getLineText​(int lineIndex,
                                      Segment segment)
        Copies the text on the specified line into a segment. If the line is invalid, the segment will contain a null string.
        Parameters:
        lineIndex - The line
        segment - Description of Parameter
      • getSelectionStart

        public final int getSelectionStart()
        Returns the selection start offset.
        Returns:
        The SelectionStart value
      • getSelectionStartLine

        public final int getSelectionStartLine()
        Returns the selection start line.
        Returns:
        The SelectionStartLine value
      • getSelectionEnd

        public final int getSelectionEnd()
        Returns the selection end offset.
        Returns:
        The SelectionEnd value
      • getSelectionEndLine

        public final int getSelectionEndLine()
        Returns the selection end line.
        Returns:
        The SelectionEndLine value
      • getCaretPosition

        public final int getCaretPosition()
        Returns the caret position. This will either be the selection start or the selection end, depending on which direction the selection was made in.
        Returns:
        The CaretPosition value
      • getCaretLine

        public final int getCaretLine()
        Returns the caret line.
        Returns:
        The CaretLine value
      • getMarkPosition

        public final int getMarkPosition()
        Returns the mark position. This will be the opposite selection bound to the caret position.
        Returns:
        The MarkPosition value
        See Also:
        getCaretPosition()
      • getMarkLine

        public final int getMarkLine()
        Returns the mark line.
        Returns:
        The MarkLine value
      • getSelectedText

        public final String getSelectedText()
        Returns the selected text, or null if no selection is active.
        Returns:
        The SelectedText value
      • isEditable

        public final boolean isEditable()
        Returns true if this text area is editable, false otherwise.
        Returns:
        The Editable value
      • getRightClickPopup

        public final JPopupMenu getRightClickPopup()
        Returns the right click popup menu.
        Returns:
        The RightClickPopup value
      • getMagicCaretPosition

        public final int getMagicCaretPosition()
        Returns the `magic' caret position. This can be used to preserve the column position when moving up and down lines.
        Returns:
        The MagicCaretPosition value
      • isOverwriteEnabled

        public final boolean isOverwriteEnabled()
        Returns true if overwrite mode is enabled, false otherwise.
        Returns:
        The OverwriteEnabled value
      • getBracketPosition

        public final int getBracketPosition()
        Returns the position of the highlighted bracket (the bracket matching the one before the caret)
        Returns:
        The BracketPosition value
      • getBracketLine

        public final int getBracketLine()
        Returns the line of the highlighted bracket (the bracket matching the one before the caret)
        Returns:
        The BracketLine value
      • setElectricScroll

        public final void setElectricScroll​(int electricScroll)
        Sets the number of lines from the top and bottom of the text area that are always visible
        Parameters:
        electricScroll - The number of lines always visible from the top or bottom
      • setTokenMarker

        public final void setTokenMarker​(ACLSLTokenMarker tokenMarker)
        Sets the document's token marker. Equivalent to caling getDocument().setTokenMarker() .
        Parameters:
        tokenMarker - The token marker
      • setSelectionStart

        public final void setSelectionStart​(int selectionStart)
        Sets the selection start. The new selection will be the new selection start and the old selection end.
        Parameters:
        selectionStart - The selection start
        See Also:
        select(int,int)
      • setSelectionEnd

        public final void setSelectionEnd​(int selectionEnd)
        Sets the selection end. The new selection will be the old selection start and the bew selection end.
        Parameters:
        selectionEnd - The selection end
        See Also:
        select(int,int)
      • setCaretPosition

        public final void setCaretPosition​(int caret)
        Sets the caret position. The new selection will consist of the caret position only (hence no text will be selected)
        Parameters:
        caret - The caret position
        See Also:
        select(int,int)
      • setEditable

        public final void setEditable​(boolean editable)
        Sets if this component is editable.
        Parameters:
        editable - True if this text area should be editable, false otherwise
      • setRightClickPopup

        public final void setRightClickPopup​(JPopupMenu popup)
        Sets the right click popup menu.
        Parameters:
        popup - The popup
      • setMagicCaretPosition

        public final void setMagicCaretPosition​(int magicCaret)
        Sets the `magic' caret position. This can be used to preserve the column position when moving up and down lines.
        Parameters:
        magicCaret - The magic caret position
      • setOverwriteEnabled

        public final void setOverwriteEnabled​(boolean overwrite)
        Sets if overwrite mode should be enabled.
        Parameters:
        overwrite - True if overwrite mode should be enabled, false otherwise.
      • blinkCaret

        public final void blinkCaret()
        Blinks the caret.
      • recalculateVisibleLines

        public final void recalculateVisibleLines()
        Recalculates the number of visible lines. This should not be called directly.
      • selectAll

        public final void selectAll()
        Selects all text in the document.
      • addCaretListener

        public final void addCaretListener​(CaretListener listener)
        Adds a caret change listener to this text area.
        Parameters:
        listener - The listener
      • removeCaretListener

        public final void removeCaretListener​(CaretListener listener)
        Removes a caret change listener from this text area.
        Parameters:
        listener - The listener
      • getLineStartOffset

        public int getLineStartOffset​(int line)
        Returns the start offset of the specified line.
        Parameters:
        line - The line
        Returns:
        The start offset of the specified line, or -1 if the line is invalid
      • getLineEndOffset

        public int getLineEndOffset​(int line)
        Returns the end offset of the specified line.
        Parameters:
        line - The line
        Returns:
        The end offset of the specified line, or -1 if the line is invalid.
      • getLineLength

        public int getLineLength​(int line)
        Returns the length of the specified line.
        Parameters:
        line - The line
        Returns:
        The LineLength value
      • getText

        public String getText()
        Returns the entire text of this text area.
        Returns:
        The Text value
      • setInputHandler

        public void setInputHandler​(jade.tools.gui.ACLTextArea.InputHandler inputHandler)
        Sets the input handler.
        Parameters:
        inputHandler - The new input handler
      • setCaretBlinkEnabled

        public void setCaretBlinkEnabled​(boolean caretBlinks)
        Toggles caret blinking.
        Parameters:
        caretBlinks - True if the caret should blink, false otherwise
      • setCaretVisible

        public void setCaretVisible​(boolean caretVisible)
        Sets if the caret should be visible.
        Parameters:
        caretVisible - True if the caret should be visible, false otherwise
      • setFirstLine

        public void setFirstLine​(int firstLine)
        Sets the line displayed at the text area's origin without updating the scroll bars.
        Parameters:
        firstLine - The new FirstLine value
      • setHorizontalOffset

        public void setHorizontalOffset​(int horizontalOffset)
        Sets the horizontal offset of drawn lines. This can be used to implement horizontal scrolling.
        Parameters:
        horizontalOffset - offset The new horizontal offset
      • setOrigin

        public boolean setOrigin​(int firstLine,
                                 int horizontalOffset)
        A fast way of changing both the first line and horizontal offset.
        Parameters:
        firstLine - The new first line
        horizontalOffset - The new horizontal offset
        Returns:
        True if any of the values were changed, false otherwise
      • setDocument

        public void setDocument​(ACLSyntaxDocument document)
        Sets the document this text area is editing.
        Parameters:
        document - The document
      • setText

        public void setText​(String text)
        Sets the entire text of this text area.
        Parameters:
        text - The new Text value
      • setSelectedText

        public void setSelectedText​(String selectedText)
        Replaces the selection with the specified text.
        Parameters:
        selectedText - The replacement text for the selection
      • update

        public void update()
      • register

        public void register​(Object arg,
                             String fieldName)
        Description of the Method
        Parameters:
        arg - Description of Parameter
        fieldName - Description of Parameter
      • unregister

        public void unregister​(Object arg,
                               String str)
        Description of the Method
        Parameters:
        arg - Description of Parameter
        str - Description of Parameter
      • focusLost

        public void focusLost​(FocusEvent e)
        Description of the Method
        Parameters:
        e - Description of Parameter
      • updateScrollBars

        public void updateScrollBars()
        Updates the state of the scroll bars. This should be called if the number of lines in the document changes, or when the size of the text are changes.
      • scrollToCaret

        public boolean scrollToCaret()
        Ensures that the caret is visible by scrolling the text area if necessary.
        Returns:
        True if scrolling was actually performed, false if the caret was already visible
      • scrollTo

        public boolean scrollTo​(int line,
                                int offset)
        Ensures that the specified line and offset is visible by scrolling the text area if necessary.
        Parameters:
        line - The line to scroll to
        offset - The offset in the line to scroll to
        Returns:
        True if scrolling was actually performed, false if the line and offset was already visible
      • lineToY

        public int lineToY​(int line)
        Converts a line index to a y co-ordinate.
        Parameters:
        line - The line
        Returns:
        Description of the Returned Value
      • yToLine

        public int yToLine​(int y)
        Converts a y co-ordinate to a line index.
        Parameters:
        y - The y co-ordinate
        Returns:
        Description of the Returned Value
      • offsetToX

        public int offsetToX​(int line,
                             int offset)
        Converts an offset in a line into an x co-ordinate.
        Parameters:
        line - The line
        offset - The offset, from the start of the line
        Returns:
        Description of the Returned Value
      • xToOffset

        public int xToOffset​(int line,
                             int x)
        Converts an x co-ordinate to an offset within a line.
        Parameters:
        line - The line
        x - The x co-ordinate
        Returns:
        Description of the Returned Value
      • xyToOffset

        public int xyToOffset​(int x,
                              int y)
        Converts a point to an offset, from the start of the text.
        Parameters:
        x - The x co-ordinate of the point
        y - The y co-ordinate of the point
        Returns:
        Description of the Returned Value
      • select

        public void select​(int start,
                           int end)
        Selects from the start offset to the end offset. This is the general selection method used by all other selecting methods. The caret position will be start if start < end, and end if end > start.
        Parameters:
        start - The start offset
        end - The end offset
      • overwriteSetSelectedText

        public void overwriteSetSelectedText​(String str)
        Similar to setSelectedText(), but overstrikes the appropriate number of characters if overwrite mode is enabled.
        Parameters:
        str - The string
        See Also:
        setSelectedText(String), isOverwriteEnabled()
      • cut

        public void cut()
        Deletes the selected text from the text area and places it into the clipboard.
      • copy

        public void copy()
        Places the selected text into the clipboard.
      • paste

        public void paste()
        Inserts the clipboard contents into the text.
      • removeNotify

        public void removeNotify()
        Called by the AWT when this component is removed from it's parent. This stops any autoscrolling and clears the currently focused component.
        Overrides:
        removeNotify in class JComponent
      • processFocusEvent

        protected void processFocusEvent​(FocusEvent e)
        Description of the Method
        Overrides:
        processFocusEvent in class Component
        Parameters:
        e - Description of Parameter
      • fireCaretEvent

        protected void fireCaretEvent()
      • updateBracketHighlight

        protected void updateBracketHighlight​(int newCaretPosition)
      • documentChanged

        protected void documentChanged​(DocumentEvent evt)