diff options
Diffstat (limited to 'libjava/javax/swing/text/PlainDocument.java')
-rw-r--r-- | libjava/javax/swing/text/PlainDocument.java | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/libjava/javax/swing/text/PlainDocument.java b/libjava/javax/swing/text/PlainDocument.java index 22808700a03..64e9c8ab3f4 100644 --- a/libjava/javax/swing/text/PlainDocument.java +++ b/libjava/javax/swing/text/PlainDocument.java @@ -35,6 +35,7 @@ this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ + package javax.swing.text; import java.util.ArrayList; @@ -61,7 +62,7 @@ public class PlainDocument extends AbstractDocument rootElement = createDefaultRoot(); } - protected void reindex() + private void reindex() { Element[] lines; try @@ -70,24 +71,23 @@ public class PlainDocument extends AbstractDocument ArrayList elts = new ArrayList(); int j = 0; - for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i+1)) + for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i + 1)) { - elts.add(createLeafElement(rootElement, null, j, i)); - j = i; + elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, i + 1)); + j = i + 1; } if (j < content.length()) - elts.add(createLeafElement(rootElement, null, j, content.length())); + elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, content.length())); lines = new Element[elts.size()]; for (int i = 0; i < elts.size(); ++i) lines[i] = (Element) elts.get(i); - } catch (BadLocationException e) { lines = new Element[1]; - lines[0] = createLeafElement(rootElement, null, 0, 1); + lines[0] = createLeafElement(rootElement, SimpleAttributeSet.EMPTY, 0, 1); } ((BranchElement) rootElement).replace(0, rootElement.getElementCount(), lines); @@ -95,19 +95,28 @@ public class PlainDocument extends AbstractDocument protected AbstractDocument.AbstractElement createDefaultRoot() { - rootElement = createBranchElement(null, null); - reindex(); - return (AbstractElement) rootElement; + BranchElement root = + (BranchElement) createBranchElement(null, SimpleAttributeSet.EMPTY); + + Element[] array = new Element[1]; + array[0] = createLeafElement(root, SimpleAttributeSet.EMPTY, 0, 1); + root.replace(0, 0, array); + + return root; } - protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) + protected void insertUpdate(DefaultDocumentEvent event, AttributeSet attributes) { reindex(); + + super.insertUpdate(event, attributes); } - protected void removeUpdate(DefaultDocumentEvent chng) + protected void removeUpdate(DefaultDocumentEvent event) { reindex(); + + super.removeUpdate(event); } public Element getDefaultRootElement() @@ -117,6 +126,7 @@ public class PlainDocument extends AbstractDocument public Element getParagraphElement(int pos) { - return null; + Element root = getDefaultRootElement(); + return root.getElement(root.getElementIndex(pos)); } } |