I'm checking this in.
This implements the easy parts of
java.awt.image.renderable.RenderableImageProducer.
Tom
2006-04-06 Tom Tromey <[EMAIL PROTECTED]>
* java/awt/image/renderable/RenderableImageProducer.java
(image, context, consumers): New fields.
(RenderableImageProducer): Implemented.
(setRenderContext): Likewise.
(addConsumer): Likewise.
(isConsumer): Likewise.
(removeConsumer): Likewise.
(startProduction): Likewise.
Index: java/awt/image/renderable/RenderableImageProducer.java
===================================================================
RCS file:
/cvsroot/classpath/classpath/java/awt/image/renderable/RenderableImageProducer.java,v
retrieving revision 1.3
diff -u -r1.3 RenderableImageProducer.java
--- java/awt/image/renderable/RenderableImageProducer.java 22 Mar 2006
19:15:25 -0000 1.3
+++ java/awt/image/renderable/RenderableImageProducer.java 6 Apr 2006
23:44:47 -0000
@@ -42,39 +42,54 @@
import java.awt.image.ImageConsumer;
import java.awt.image.ImageProducer;
+import java.util.ArrayList;
public class RenderableImageProducer implements ImageProducer, Runnable
{
+ private RenderableImage image;
+ private RenderContext context;
+ private ArrayList consumers = new ArrayList();
+
public RenderableImageProducer(RenderableImage image, RenderContext context)
- throws NotImplementedException
{
- throw new Error("not implemented");
+ this.image = image;
+ this.context = context;
}
public void setRenderContext(RenderContext context)
- throws NotImplementedException
{
+ this.context = context;
}
public void addConsumer(ImageConsumer consumer)
- throws NotImplementedException
{
+ synchronized (consumers)
+ {
+ if (! consumers.contains(consumer))
+ consumers.add(consumer);
+ }
}
public boolean isConsumer(ImageConsumer consumer)
- throws NotImplementedException
{
- return false;
+ synchronized (consumers)
+ {
+ return consumers.contains(consumer);
+ }
}
public void removeConsumer(ImageConsumer consumer)
- throws NotImplementedException
{
+ synchronized (consumers)
+ {
+ consumers.remove(consumer);
+ }
}
public void startProduction(ImageConsumer consumer)
- throws NotImplementedException
{
+ Thread t = new Thread(this, "RenderableImageProducerWorker");
+ t.start();
}
public void requestTopDownLeftRightResend(ImageConsumer consumer)