summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2006-12-04 21:20:30 +0000
committerMark Wielaard <mark@klomp.org>2006-12-04 21:20:30 +0000
commiteb607ac20168e93b3cd66df17117cdc0a7becf9d (patch)
treea0441926416d768a8fb7d6f01b7d19b6956c44a8
parent3c8afd2e2d8f20d98889e8b5abc5180d130d224c (diff)
downloadclasspath-eb607ac20168e93b3cd66df17117cdc0a7becf9d.tar.gz
* javax/swing/JEditorPane.java (PageLoader.in): Made a PageStream.
(PageLoader.page): Made package local. (PageLoader.run): Don't reset loader. (PageLoader.cancel): New method. (loading): Renamed to loader. (getPage): Return loader.page. (setPage): Always set loader. Never reset to null.
-rw-r--r--ChangeLog10
-rw-r--r--javax/swing/JEditorPane.java47
2 files changed, 29 insertions, 28 deletions
diff --git a/ChangeLog b/ChangeLog
index 21ca3de55..fa3939550 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-12-03 Mark Wielaard <mark@klomp.org>
+ * javax/swing/JEditorPane.java (PageLoader.in): Made a PageStream.
+ (PageLoader.page): Made package local.
+ (PageLoader.run): Don't reset loader.
+ (PageLoader.cancel): New method.
+ (loading): Renamed to loader.
+ (getPage): Return loader.page.
+ (setPage): Always set loader. Never reset to null.
+
+2006-12-03 Mark Wielaard <mark@klomp.org>
+
* javax/swing/plaf/basic/BasicTreeUI.java (paint): Check whether
path[k] is null.
(isLastChild): Return false when path is null.
diff --git a/javax/swing/JEditorPane.java b/javax/swing/JEditorPane.java
index 4007169bd..4f7ad7119 100644
--- a/javax/swing/JEditorPane.java
+++ b/javax/swing/JEditorPane.java
@@ -582,13 +582,13 @@ public class JEditorPane extends JTextComponent
implements Runnable
{
private Document doc;
- private InputStream in;
+ private PageStream in;
private URL old;
- private URL page;
- PageLoader(Document doc, InputStream in, int prio, URL old, URL page)
+ URL page;
+ PageLoader(Document doc, InputStream in, URL old, URL page)
{
this.doc = doc;
- this.in = in;
+ this.in = new PageStream(in);
this.old = old;
this.page = page;
}
@@ -598,10 +598,6 @@ public class JEditorPane extends JTextComponent
try
{
read(in, doc);
- synchronized (JEditorPane.this)
- {
- loading = null;
- }
}
catch (IOException ex)
{
@@ -621,7 +617,12 @@ public class JEditorPane extends JTextComponent
}
});
}
- }
+ }
+ }
+
+ void cancel()
+ {
+ in.cancel();
}
}
@@ -640,7 +641,7 @@ public class JEditorPane extends JTextComponent
/**
* The currently loading stream, if any.
*/
- private PageStream loading;
+ private PageLoader loader;
public JEditorPane()
{
@@ -885,7 +886,7 @@ public class JEditorPane extends JTextComponent
public URL getPage()
{
- return (URL) getDocument().getProperty(Document.StreamDescriptionProperty);
+ return loader != null ? loader.page : null;
}
protected InputStream getStream(URL page)
@@ -1075,15 +1076,10 @@ public class JEditorPane extends JTextComponent
Document doc = editorKit.createDefaultDocument();
doc.putProperty(Document.StreamDescriptionProperty, page);
- // Cancel loading stream, if there is any.
- synchronized (this)
- {
- if (loading != null)
- {
- loading.cancel();
- loading = null;
- }
- }
+ if (loader != null)
+ loader.cancel();
+ loader = new PageLoader(doc, in, old, page);
+
int prio = -1;
if (doc instanceof AbstractDocument)
{
@@ -1094,20 +1090,15 @@ public class JEditorPane extends JTextComponent
{
// Load asynchronously.
setDocument(doc);
- synchronized (this)
- {
- loading = new PageStream(in);
- }
- PageLoader loader = new PageLoader(doc, loading, prio, old,
- page);
- Thread loadThread = new Thread(loader);
+ Thread loadThread = new Thread(loader,
+ "JEditorPane.PageLoader");
+ loadThread.setDaemon(true);
loadThread.setPriority(prio);
loadThread.start();
}
else
{
// Load synchronously.
- PageLoader loader = new PageLoader(doc, in, prio, old, page);
loader.run();
setDocument(doc);
}