home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / SyntheticImage.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  1.9 KB  |  98 lines

  1. package com.sun.java.swing;
  2.  
  3. import java.awt.image.ColorModel;
  4. import java.awt.image.ImageConsumer;
  5. import java.awt.image.ImageProducer;
  6.  
  7. public abstract class SyntheticImage implements ImageProducer {
  8.    private SyntheticImageGenerator root;
  9.    protected int width = 10;
  10.    protected int height = 100;
  11.    // $FF: renamed from: cm java.awt.image.ColorModel
  12.    static final ColorModel field_0 = ColorModel.getRGBdefault();
  13.    public static final int pixMask = 255;
  14.    private Thread runner;
  15.  
  16.    protected SyntheticImage() {
  17.    }
  18.  
  19.    protected SyntheticImage(int var1, int var2) {
  20.       this.width = var1;
  21.       this.height = var2;
  22.    }
  23.  
  24.    protected void computeRow(int var1, int[] var2) {
  25.       int var3 = 255 - 255 * var1 / (this.height - 1);
  26.       var3 = -16777216 | var3 << 16 | var3 << 8 | var3;
  27.       int var4 = var2.length;
  28.  
  29.       while(true) {
  30.          --var4;
  31.          if (var4 < 0) {
  32.             return;
  33.          }
  34.  
  35.          var2[var4] = var3;
  36.       }
  37.    }
  38.  
  39.    public synchronized void addConsumer(ImageConsumer var1) {
  40.       for(SyntheticImageGenerator var2 = this.root; var2 != null; var2 = var2.next) {
  41.          if (var2.ic == var1) {
  42.             return;
  43.          }
  44.       }
  45.  
  46.       this.root = new SyntheticImageGenerator(var1, this.root, this);
  47.    }
  48.  
  49.    public synchronized boolean isConsumer(ImageConsumer var1) {
  50.       for(SyntheticImageGenerator var2 = this.root; var2 != null; var2 = var2.next) {
  51.          if (var2.ic == var1) {
  52.             return true;
  53.          }
  54.       }
  55.  
  56.       return false;
  57.    }
  58.  
  59.    public synchronized void removeConsumer(ImageConsumer var1) {
  60.       Object var2 = null;
  61.  
  62.       for(SyntheticImageGenerator var3 = this.root; var3 != null; var3 = var3.next) {
  63.          if (var3.ic == var1) {
  64.             var3.useful = false;
  65.             if (var2 != null) {
  66.                ((SyntheticImageGenerator)var2).next = var3.next;
  67.                return;
  68.             }
  69.  
  70.             this.root = var3.next;
  71.             return;
  72.          }
  73.       }
  74.  
  75.    }
  76.  
  77.    public synchronized void startProduction(ImageConsumer var1) {
  78.       this.addConsumer(var1);
  79.  
  80.       for(SyntheticImageGenerator var2 = this.root; var2 != null; var2 = var2.next) {
  81.          if (var2.useful && !((Thread)var2).isAlive()) {
  82.             ((Thread)var2).start();
  83.          }
  84.       }
  85.  
  86.    }
  87.  
  88.    protected boolean isStatic() {
  89.       return true;
  90.    }
  91.  
  92.    public void nextFrame(int var1) {
  93.    }
  94.  
  95.    public void requestTopDownLeftRightResend(ImageConsumer var1) {
  96.    }
  97. }
  98.