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)

Reply via email to