org.pentaho.reporting.engine.classic.core.modules.gui.commonswing
Class LengthLimitingDocument

java.lang.Object
  extended by javax.swing.text.AbstractDocument
      extended by javax.swing.text.PlainDocument
          extended by org.pentaho.reporting.engine.classic.core.modules.gui.commonswing.LengthLimitingDocument
All Implemented Interfaces:
Serializable, Document

public class LengthLimitingDocument
extends PlainDocument

This Document restricts the size of the contained plain text to the given number of characters.

Author:
Thomas Morgner
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, 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
LengthLimitingDocument()
          Creates a new LengthLimitingDocument, with no limitation.
LengthLimitingDocument(int maxlen)
          Creates a new LengthLimitingDocument with the given limitation.
 
Method Summary
 int getMaxLength()
          Returns the defined maximum number characters for this document.
 void insertString(int offs, String str, AttributeSet a)
          Inserts the string into the document.
 void setMaxLength(int maxlen)
          Sets the maximum number of characters for this document.
 
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, remove, 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

LengthLimitingDocument

public LengthLimitingDocument()
Creates a new LengthLimitingDocument, with no limitation.


LengthLimitingDocument

public LengthLimitingDocument(int maxlen)
Creates a new LengthLimitingDocument with the given limitation. No more than maxlen characters can be added to the document. If maxlen is negative, then no length check is performed.

Parameters:
maxlen - the maximum number of elements in this document
Method Detail

setMaxLength

public void setMaxLength(int maxlen)
Sets the maximum number of characters for this document. Existing characters are not removed.

Parameters:
maxlen - the maximum number of characters in this document.

getMaxLength

public int getMaxLength()
Returns the defined maximum number characters for this document.

Returns:
the maximum number of characters

insertString

public void insertString(int offs,
                         String str,
                         AttributeSet a)
                  throws BadLocationException
Inserts the string into the document. If the length of the document would violate the maximum characters restriction, then the string is cut down so that

Specified by:
insertString in interface Document
Overrides:
insertString in class PlainDocument
Parameters:
offs - the offset, where the string should be inserted into the document
str - the string that should be inserted
a - the attribute set assigned for the document
Throws:
BadLocationException - if the offset is not correct