Class JavaDocument

  • All Implemented Interfaces:
    java.io.Serializable, javax.swing.text.Document, javax.swing.text.StyledDocument

    public class JavaDocument
    extends javax.swing.text.DefaultStyledDocument
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.text.DefaultStyledDocument

        javax.swing.text.DefaultStyledDocument.AttributeUndoableEdit, javax.swing.text.DefaultStyledDocument.ElementBuffer, javax.swing.text.DefaultStyledDocument.ElementSpec, javax.swing.text.DefaultStyledDocument.SectionElement
      • Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument

        javax.swing.text.AbstractDocument.AbstractElement, javax.swing.text.AbstractDocument.AttributeContext, javax.swing.text.AbstractDocument.BranchElement, javax.swing.text.AbstractDocument.Content, javax.swing.text.AbstractDocument.DefaultDocumentEvent, javax.swing.text.AbstractDocument.ElementEdit, javax.swing.text.AbstractDocument.LeafElement
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.swing.text.MutableAttributeSet _comment  
      private javax.swing.text.MutableAttributeSet _error  
      private javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> _errorHandler  
      private javax.swing.text.MutableAttributeSet _keyword  
      private java.util.Set<java.lang.String> _keywords  
      private boolean _multiLineComment  
      private javax.swing.text.Element _root  
      private javax.swing.text.MutableAttributeSet _stringLiteral  
      private javax.swing.text.MutableAttributeSet _warning  
      private javax.swing.text.MutableAttributeSet _word  
      • Fields inherited from class javax.swing.text.DefaultStyledDocument

        buffer, BUFFER_SIZE_DEFAULT
      • Fields inherited from class javax.swing.text.AbstractDocument

        BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
      • Fields inherited from interface javax.swing.text.Document

        StreamDescriptionProperty, TitleProperty
    • Constructor Summary

      Constructors 
      Constructor Description
      JavaDocument()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String addMatchingBrace​(int offset)  
      protected java.lang.String addMatchingQuotationMark()  
      protected java.lang.String addParenthesis()  
      protected java.lang.String addWhiteSpace​(int offset)  
      private void applyHighlighting​(java.lang.String content, int line)  
      private void checkForTokens​(java.lang.String content, int startOffset, int endOffset)  
      private void commentLinesAfter​(java.lang.String content, int line)  
      private boolean commentLinesBefore​(java.lang.String content, int line)  
      private boolean endingMultiLineComment​(java.lang.String content, int startOffset, int endOffset)  
      java.lang.String findErrorMessage​(int iPos)  
      protected void fireInsertUpdate​(javax.swing.event.DocumentEvent evt)  
      protected void fireRemoveUpdate​(javax.swing.event.DocumentEvent evt)  
      protected java.lang.String getEndDelimiter()  
      javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> getErrorHandler()  
      private java.lang.String getLine​(java.lang.String content, int offset)  
      private int getOtherToken​(java.lang.String content, int startOffset, int endOffset)  
      private int getQuoteToken​(java.lang.String content, int startOffset, int endOffset)  
      protected java.lang.String getSingleLineDelimiter()  
      protected java.lang.String getStartDelimiter()  
      private void highlightLinesAfter​(java.lang.String content, int line)  
      private int indexOf​(java.lang.String content, java.lang.String needle, int offset)  
      void insertString​(int offset, java.lang.String str, javax.swing.text.AttributeSet a)
      Override to apply syntax highlighting after the document has been updated
      protected boolean isCharQuoteDelimiter​(java.lang.String character)  
      protected boolean isDelimiter​(java.lang.String character)  
      private boolean isError​(int iPos)  
      private boolean isError​(int iPos, int iLength)  
      protected boolean isKeyword​(java.lang.String token)  
      private boolean isMultiLineComment()  
      protected boolean isQuoteDelimiter​(java.lang.String character)  
      private boolean isWarning​(int iPos)  
      private boolean isWarning​(int iPos, int iLength)  
      private int lastIndexOf​(java.lang.String content, java.lang.String needle, int offset)  
      private void processChangedLines​(int offset, int length)  
      private void processIssues​(javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> errorHandler)  
      void remove​(int offset, int length)  
      void setErrorHandler​(javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> errorHandler)  
      private void setMultiLineComment​(boolean value)  
      private boolean startingMultiLineComment​(java.lang.String content, int startOffset, int endOffset)  
      • Methods inherited from class javax.swing.text.DefaultStyledDocument

        addDocumentListener, addStyle, create, createDefaultRoot, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, insert, insertUpdate, removeDocumentListener, removeElement, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, setParagraphAttributes, styleChanged
      • Methods inherited from class javax.swing.text.AbstractDocument

        addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, postRemoveUpdate, putProperty, readLock, readUnlock, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.swing.text.Document

        addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, putProperty, removeUndoableEditListener, render
    • Field Detail

      • _root

        private javax.swing.text.Element _root
      • _word

        private javax.swing.text.MutableAttributeSet _word
      • _keyword

        private javax.swing.text.MutableAttributeSet _keyword
      • _error

        private javax.swing.text.MutableAttributeSet _error
      • _warning

        private javax.swing.text.MutableAttributeSet _warning
      • _comment

        private javax.swing.text.MutableAttributeSet _comment
      • _stringLiteral

        private javax.swing.text.MutableAttributeSet _stringLiteral
      • _multiLineComment

        private boolean _multiLineComment
      • _keywords

        private java.util.Set<java.lang.String> _keywords
      • _errorHandler

        private javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> _errorHandler
    • Constructor Detail

      • JavaDocument

        public JavaDocument()
    • Method Detail

      • insertString

        public void insertString​(int offset,
                                 java.lang.String str,
                                 javax.swing.text.AttributeSet a)
                          throws javax.swing.text.BadLocationException
        Override to apply syntax highlighting after the document has been updated
        Specified by:
        insertString in interface javax.swing.text.Document
        Overrides:
        insertString in class javax.swing.text.AbstractDocument
        Throws:
        javax.swing.text.BadLocationException
      • remove

        public void remove​(int offset,
                           int length)
                    throws javax.swing.text.BadLocationException
        Specified by:
        remove in interface javax.swing.text.Document
        Overrides:
        remove in class javax.swing.text.AbstractDocument
        Throws:
        javax.swing.text.BadLocationException
      • processChangedLines

        private void processChangedLines​(int offset,
                                         int length)
                                  throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • commentLinesBefore

        private boolean commentLinesBefore​(java.lang.String content,
                                           int line)
      • commentLinesAfter

        private void commentLinesAfter​(java.lang.String content,
                                       int line)
      • highlightLinesAfter

        private void highlightLinesAfter​(java.lang.String content,
                                         int line)
                                  throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • applyHighlighting

        private void applyHighlighting​(java.lang.String content,
                                       int line)
                                throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • startingMultiLineComment

        private boolean startingMultiLineComment​(java.lang.String content,
                                                 int startOffset,
                                                 int endOffset)
                                          throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • endingMultiLineComment

        private boolean endingMultiLineComment​(java.lang.String content,
                                               int startOffset,
                                               int endOffset)
                                        throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • isMultiLineComment

        private boolean isMultiLineComment()
      • setMultiLineComment

        private void setMultiLineComment​(boolean value)
      • checkForTokens

        private void checkForTokens​(java.lang.String content,
                                    int startOffset,
                                    int endOffset)
      • getQuoteToken

        private int getQuoteToken​(java.lang.String content,
                                  int startOffset,
                                  int endOffset)
      • getOtherToken

        private int getOtherToken​(java.lang.String content,
                                  int startOffset,
                                  int endOffset)
      • fireInsertUpdate

        protected void fireInsertUpdate​(javax.swing.event.DocumentEvent evt)
        Overrides:
        fireInsertUpdate in class javax.swing.text.AbstractDocument
      • fireRemoveUpdate

        protected void fireRemoveUpdate​(javax.swing.event.DocumentEvent evt)
        Overrides:
        fireRemoveUpdate in class javax.swing.text.AbstractDocument
      • indexOf

        private int indexOf​(java.lang.String content,
                            java.lang.String needle,
                            int offset)
      • lastIndexOf

        private int lastIndexOf​(java.lang.String content,
                                java.lang.String needle,
                                int offset)
      • getLine

        private java.lang.String getLine​(java.lang.String content,
                                         int offset)
      • isDelimiter

        protected boolean isDelimiter​(java.lang.String character)
      • isQuoteDelimiter

        protected boolean isQuoteDelimiter​(java.lang.String character)
      • isCharQuoteDelimiter

        protected boolean isCharQuoteDelimiter​(java.lang.String character)
      • isKeyword

        protected boolean isKeyword​(java.lang.String token)
      • getStartDelimiter

        protected java.lang.String getStartDelimiter()
      • getEndDelimiter

        protected java.lang.String getEndDelimiter()
      • getSingleLineDelimiter

        protected java.lang.String getSingleLineDelimiter()
      • addMatchingQuotationMark

        protected java.lang.String addMatchingQuotationMark()
                                                     throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • addMatchingBrace

        protected java.lang.String addMatchingBrace​(int offset)
                                             throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • addWhiteSpace

        protected java.lang.String addWhiteSpace​(int offset)
                                          throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • addParenthesis

        protected java.lang.String addParenthesis()
                                           throws javax.swing.text.BadLocationException
        Throws:
        javax.swing.text.BadLocationException
      • getErrorHandler

        public javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> getErrorHandler()
      • setErrorHandler

        public void setErrorHandler​(javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> errorHandler)
      • processIssues

        private void processIssues​(javax.tools.DiagnosticCollector<javax.tools.JavaFileObject> errorHandler)
      • isError

        private boolean isError​(int iPos)
      • isError

        private boolean isError​(int iPos,
                                int iLength)
      • isWarning

        private boolean isWarning​(int iPos)
      • isWarning

        private boolean isWarning​(int iPos,
                                  int iLength)
      • findErrorMessage

        public java.lang.String findErrorMessage​(int iPos)