home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.text;
-
- import java.util.Vector;
-
- public class PlainDocument extends AbstractDocument {
- public static final String tabSizeAttribute = "tabSize";
- public static final String lineLimitAttribute = "lineLimit";
- private AbstractDocument.AbstractElement defaultRoot;
- private Vector added;
- private Vector removed;
-
- public PlainDocument() {
- this(new StringContent());
- }
-
- protected PlainDocument(AbstractDocument.Content var1) {
- super(var1);
- this.added = new Vector();
- this.removed = new Vector();
- ((AbstractDocument)this).putProperty("tabSize", new Integer(8));
- this.defaultRoot = this.createDefaultRoot();
- }
-
- public Element getDefaultRootElement() {
- return this.defaultRoot;
- }
-
- protected AbstractDocument.AbstractElement createDefaultRoot() {
- this.getClass();
- AbstractDocument.BranchElement var1 = new AbstractDocument.BranchElement(this, (Element)null, (AttributeSet)null);
- this.getClass();
- AbstractDocument.LeafElement var2 = new AbstractDocument.LeafElement(this, var1, (AttributeSet)null, 0, 1);
- Element[] var3 = new Element[]{var2};
- var1.replace(0, 0, var3);
- return var1;
- }
-
- protected void insertUpdate(AbstractDocument.DefaultDocumentEvent var1, AttributeSet var2) {
- this.removed.removeAllElements();
- this.added.removeAllElements();
- AbstractDocument.BranchElement var3 = (AbstractDocument.BranchElement)this.getDefaultRootElement();
- int var4 = var1.getOffset();
- int var5 = var1.getLength();
- if (var4 > 0) {
- --var4;
- ++var5;
- }
-
- int var6 = var3.getElementIndex(var4);
- Element var7 = var3.getElement(var6);
- int var8 = var7.getStartOffset();
- int var9 = var7.getEndOffset();
- int var10 = var8;
-
- try {
- String var11 = ((AbstractDocument)this).getText(var4, var5);
- boolean var12 = false;
-
- for(int var13 = 0; var13 < var5; ++var13) {
- char var14 = var11.charAt(var13);
- if (var14 == '\n') {
- int var15 = var4 + var13 + 1;
- Vector var10000 = this.added;
- this.getClass();
- var10000.addElement(new AbstractDocument.LeafElement(this, var3, (AttributeSet)null, var10, var15));
- var10 = var15;
- var12 = true;
- }
- }
-
- if (var12) {
- int var19 = 1;
- this.removed.addElement(var7);
- if (var4 + var5 == var9 && var10 != var9 && var6 + 1 < var3.getElementCount()) {
- ++var19;
- Element var21 = var3.getElement(var6 + 1);
- this.removed.addElement(var21);
- var9 = var21.getEndOffset();
- }
-
- if (var10 < var9) {
- Vector var23 = this.added;
- this.getClass();
- var23.addElement(new AbstractDocument.LeafElement(this, var3, (AttributeSet)null, var10, var9));
- }
-
- Element[] var22 = new Element[this.added.size()];
- this.added.copyInto(var22);
- Element[] var16 = new Element[this.removed.size()];
- this.removed.copyInto(var16);
- AbstractDocument.ElementEdit var17 = new AbstractDocument.ElementEdit(var3, var6, var16, var22);
- var1.addEdit(var17);
- var3.replace(var6, var16.length, var22);
- }
- } catch (BadLocationException var18) {
- throw new Error("Internal error: " + ((Throwable)var18).toString());
- }
- }
-
- protected void removeUpdate(AbstractDocument.DefaultDocumentEvent var1) {
- this.removed.removeAllElements();
- AbstractDocument.BranchElement var2 = (AbstractDocument.BranchElement)this.getDefaultRootElement();
- int var3 = var1.getOffset();
- int var4 = var1.getLength();
- int var5 = var2.getElementIndex(var3);
- int var6 = var2.getElementIndex(var3 + var4);
- if (var5 != var6) {
- for(int var7 = var5; var7 <= var6; ++var7) {
- this.removed.addElement(var2.getElement(var7));
- }
-
- int var8 = var2.getElement(var5).getStartOffset();
- int var9 = var2.getElement(var6).getEndOffset();
- Element[] var10 = new Element[1];
- this.getClass();
- var10[0] = new AbstractDocument.LeafElement(this, var2, (AttributeSet)null, var8, var9);
- Element[] var11 = new Element[this.removed.size()];
- this.removed.copyInto(var11);
- AbstractDocument.ElementEdit var12 = new AbstractDocument.ElementEdit(var2, var5, var11, var10);
- var1.addEdit(var12);
- var2.replace(var5, var11.length, var10);
- }
-
- }
- }
-