All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fife.ui.rtextarea.RDocument Maven / Gradle / Ivy

/*
 * 06/30/2012
 *
 * RDocument.java - Document class used by RTextAreas.
 *
 * This library is distributed under a modified BSD license.  See the included
 * LICENSE file for details.
 */
package org.fife.ui.rtextarea;

import javax.swing.text.BadLocationException;
import javax.swing.text.GapContent;
import javax.swing.text.PlainDocument;


/**
 * The document implementation used by instances of RTextArea.
 *
 * @author Robert Futrell
 * @version 1.0
 */
public class RDocument extends PlainDocument {


	/**
	 * Constructor.
	 */
	public RDocument() {
		super(new RGapContent());
	}


	/**
	 * Returns the character in the document at the specified offset.
	 *
	 * @param offset The offset of the character.
	 * @return The character.
	 * @throws BadLocationException If the offset is invalid.
	 */
	public char charAt(int offset) throws BadLocationException {
		return ((RGapContent)getContent()).charAt(offset);
	}


	/**
	 * Document content that provides fast access to individual characters.
	 */
	private static class RGapContent extends GapContent {

		public char charAt(int offset) throws BadLocationException {
			if (offset<0 || offset>=length()) {
				throw new BadLocationException("Invalid offset", offset);
			}
			int g0 = getGapStart();
			char[] array = (char[]) getArray();
			if (offset




© 2015 - 2024 Weber Informatics LLC | Privacy Policy