com.japisoft.xmlpad.bean
Class XMLDocument

java.lang.Object
  extended byjavax.swing.text.AbstractDocument
      extended byjavax.swing.text.PlainDocument
          extended bycom.japisoft.xmlpad.bean.XMLDocument
All Implemented Interfaces:
javax.swing.text.Document, java.io.Serializable

public class XMLDocument
extends javax.swing.text.PlainDocument

(c) 2003 JAPISoft / Alexandre Brillant Main document for the XMLEditor bean

Version:
1.3
See Also:
Serialized Form

Nested Class Summary
 class XMLDocument.XMLDocumentListener
          An implementation of DocumentListener that inserts and deletes lines from the token marker's state.remove
 
Nested classes 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 inherited from class javax.swing.text.PlainDocument
lineLimitAttribute, tabSizeAttribute
 
Fields inherited from class javax.swing.text.AbstractDocument
BidiElementName, ContentElementName, ElementNameAttribute, ParagraphElementName, SectionElementName
 
Fields inherited from interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
 
Constructor Summary
XMLDocument(XMLEditor editor)
          Creates a new DefaultXMLDocument instance.
 
Method Summary
 void enableStructureDamagedSupport(boolean structure)
          Support notification for an XML structure tree change like adding or removing a tag
 boolean forceLocation()
          For inner usage only.
 java.lang.Integer[] getCommentDelimiters(int offset)
          The starting and stopping comment position or null if no comment is found
 XMLContainer getContainer()
           
 XMLEditor getEditor()
           
 java.awt.Point getLastDTDLocation()
           
 java.lang.String getWordAt(int from)
          Extract a word at this location
 com.japisoft.fastparser.node.SimpleNode getXMLPath(int location)
           
 void insertString(int offset, java.lang.String str, javax.swing.text.AttributeSet a)
           
 boolean isAutoCloseTag()
          by default true
 boolean isEnableStructureDamagedSupport()
          Support notification for an XML structure tree change like adding or removing a tag
 boolean isInsideTag(int offset)
           
 boolean isInsideTag(int offset, boolean exceptAttributeValue, boolean exceptEndTag)
           
 boolean isSyntaxPopup()
          Enable a popup for < and &, by default true
 int nextTag(int from)
          Find the location of the next tag
 boolean parseDTD()
          Search and parse document DTD on the current document
 boolean parseSchema()
          Search and parse an XML on the current document schema
 void remove(int offs, int len)
           
 void setAutoCloseTag(boolean autoClose)
          Support for automatically closing the current inserted tag
 void setEditor(XMLEditor editor)
           
 void setStructureDamagedListener(StructureDamagedListener listener)
          Listener for XML tree changes
 void setSyntaxPopup(boolean popup)
          Enable a popup while entering < or &
 java.awt.Point updateElement(java.lang.String startElement, java.lang.String endElement, int startOffset, int endOffset)
          Used mainly by the elementView for updating the element content
 
Methods inherited from class javax.swing.text.PlainDocument
getDefaultRootElement, getParagraphElement
 
Methods inherited from class javax.swing.text.AbstractDocument
addDocumentListener, addUndoableEditListener, createPosition, dump, getAsynchronousLoadPriority, getBidiRootElement, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, putProperty, readLock, readUnlock, removeDocumentListener, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMLDocument

public XMLDocument(XMLEditor editor)
Creates a new DefaultXMLDocument instance.

Method Detail

getEditor

public XMLEditor getEditor()
Returns:
the editor using this document

setEditor

public void setEditor(XMLEditor editor)

getContainer

public XMLContainer getContainer()
Returns:
the main container for this document

setStructureDamagedListener

public void setStructureDamagedListener(StructureDamagedListener listener)
Listener for XML tree changes


nextTag

public int nextTag(int from)
Find the location of the next tag


getWordAt

public java.lang.String getWordAt(int from)
Extract a word at this location


getXMLPath

public com.japisoft.fastparser.node.SimpleNode getXMLPath(int location)
Returns:
the XMLPath from the caret location

enableStructureDamagedSupport

public void enableStructureDamagedSupport(boolean structure)
Support notification for an XML structure tree change like adding or removing a tag


isEnableStructureDamagedSupport

public boolean isEnableStructureDamagedSupport()
Support notification for an XML structure tree change like adding or removing a tag


setAutoCloseTag

public void setAutoCloseTag(boolean autoClose)
Support for automatically closing the current inserted tag


isAutoCloseTag

public boolean isAutoCloseTag()
by default true


setSyntaxPopup

public void setSyntaxPopup(boolean popup)
Enable a popup while entering < or &


isSyntaxPopup

public boolean isSyntaxPopup()
Enable a popup for < and &, by default true


isInsideTag

public boolean isInsideTag(int offset)
Returns:
true if the offset is inside a tag and not in an attribute value

isInsideTag

public boolean isInsideTag(int offset,
                           boolean exceptAttributeValue,
                           boolean exceptEndTag)

getCommentDelimiters

public java.lang.Integer[] getCommentDelimiters(int offset)
The starting and stopping comment position or null if no comment is found

Parameters:
offset - Current document location
Returns:
start and stop location

insertString

public void insertString(int offset,
                         java.lang.String str,
                         javax.swing.text.AttributeSet a)
                  throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException

forceLocation

public boolean forceLocation()
For inner usage only. Don't call it


parseSchema

public boolean parseSchema()
Search and parse an XML on the current document schema


parseDTD

public boolean parseDTD()
Search and parse document DTD on the current document


getLastDTDLocation

public java.awt.Point getLastDTDLocation()
Returns:
the last DTD declaration location

remove

public void remove(int offs,
                   int len)
            throws javax.swing.text.BadLocationException
Throws:
javax.swing.text.BadLocationException

updateElement

public java.awt.Point updateElement(java.lang.String startElement,
                                    java.lang.String endElement,
                                    int startOffset,
                                    int endOffset)
Used mainly by the elementView for updating the element content