diff options
author | Roman Kennke <roman@kennke.org> | 2006-11-19 19:37:36 +0000 |
---|---|---|
committer | Roman Kennke <roman@kennke.org> | 2006-11-19 19:37:36 +0000 |
commit | cbf4afe9bb3f1617c04612b18fce873e7ca725c7 (patch) | |
tree | 6b981e458b5f76492c481f69fe2f42a68c02880b /javax/swing/text/html/HTMLDocument.java | |
parent | b1d0c928622637949dfb9158cdc3f75851850992 (diff) | |
download | classpath-cbf4afe9bb3f1617c04612b18fce873e7ca725c7.tar.gz |
2006-11-19 Roman Kennke <kennke@aicas.com>
* javax/swing/JEditorPane.java
(PageStream): New inner class.
(PageLoader): New inner class.
(loading): New field.
(setPage): Implemented asynchronous loading.
* javax/swing/text/DefaultStyledDocument.java
(ElementBuffer.create): New helper method.
(create): Use new ElementBuffer method instead of hack.
* javax/swing/text/html/HTMLDocument.java
(HTMLReader.flushImpl): New helper method.
(HTMLReader.addContent): Use flushImpl().
(HTMLReader.blockClose): Added null check.
(HTMLReader.flush): Use flushImpl().
* javax/swing/text/html/HTMLEditorKit.java
(createDefaultDocument): Set load priority to 4 and token threshold
to 100.
* javax/swing/text/html/TableView.java
(insertUpdate): Overridden to provide correct view factory.
(removeUpdate): Overridden to provide correct view factory.
(changedUpdate): Overridden to provide correct view factory.
Diffstat (limited to 'javax/swing/text/html/HTMLDocument.java')
-rw-r--r-- | javax/swing/text/html/HTMLDocument.java | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/javax/swing/text/html/HTMLDocument.java b/javax/swing/text/html/HTMLDocument.java index bbc2368c3..3ff40b437 100644 --- a/javax/swing/text/html/HTMLDocument.java +++ b/javax/swing/text/html/HTMLDocument.java @@ -1293,18 +1293,28 @@ public class HTMLDocument extends DefaultStyledDocument */ public void flush() throws BadLocationException { - DefaultStyledDocument.ElementSpec[] elements; - elements = new DefaultStyledDocument.ElementSpec[parseBuffer.size()]; - parseBuffer.copyInto(elements); - parseBuffer.removeAllElements(); - if (offset == 0) - create(elements); - else - insert(offset, elements); + flushImpl(); + } - offset += HTMLDocument.this.getLength() - offset; + /** + * Flushes the buffer and handle partial inserts. + * + */ + private void flushImpl() + throws BadLocationException + { + int oldLen = getLength(); + int size = parseBuffer.size(); + ElementSpec[] elems = new ElementSpec[size]; + parseBuffer.copyInto(elems); + if (oldLen == 0) + create(elems); + else + insert(offset, elems); + parseBuffer.removeAllElements(); + offset += getLength() - oldLen; } - + /** * This method is called by the parser to indicate a block of * text was encountered. Should insert the text appropriately. @@ -1535,9 +1545,10 @@ public class HTMLDocument extends DefaultStyledDocument // If the previous tag is a start tag then we insert a synthetic // content tag. DefaultStyledDocument.ElementSpec prev; - prev = (DefaultStyledDocument.ElementSpec) - parseBuffer.get(parseBuffer.size() - 1); - if (prev.getType() == DefaultStyledDocument.ElementSpec.StartTagType) + prev = parseBuffer.size() > 0 ? (DefaultStyledDocument.ElementSpec) + parseBuffer.get(parseBuffer.size() - 1) : null; + if (prev != null && + prev.getType() == DefaultStyledDocument.ElementSpec.StartTagType) { addContent(new char[]{' '}, 0, 1); } @@ -1603,7 +1614,7 @@ public class HTMLDocument extends DefaultStyledDocument { try { - flush(); + flushImpl(); } catch (BadLocationException ble) { |