home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / image / renderable / RenderableImageOp.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.5 KB  |  144 lines

  1. package java.awt.image.renderable;
  2.  
  3. import java.awt.RenderingHints;
  4. import java.awt.geom.AffineTransform;
  5. import java.awt.geom.Rectangle2D;
  6. import java.awt.image.RenderedImage;
  7. import java.util.Vector;
  8.  
  9. public class RenderableImageOp implements RenderableImage {
  10.    ParameterBlock paramBlock;
  11.    ContextualRenderedImageFactory myCRIF;
  12.    Rectangle2D boundingBox;
  13.  
  14.    public RenderableImageOp(ContextualRenderedImageFactory var1, ParameterBlock var2) {
  15.       this.myCRIF = var1;
  16.       this.paramBlock = (ParameterBlock)var2.clone();
  17.    }
  18.  
  19.    public Vector getSources() {
  20.       return this.getRenderableSources();
  21.    }
  22.  
  23.    private Vector getRenderableSources() {
  24.       Vector var1 = null;
  25.       if (this.paramBlock.getNumSources() > 0) {
  26.          var1 = new Vector();
  27.  
  28.          for(int var2 = 0; var2 < this.paramBlock.getNumSources(); ++var2) {
  29.             Object var3 = this.paramBlock.getSource(var2);
  30.             if (!(var3 instanceof RenderableImage)) {
  31.                break;
  32.             }
  33.  
  34.             var1.add((RenderableImage)var3);
  35.          }
  36.       }
  37.  
  38.       return var1;
  39.    }
  40.  
  41.    public Object getProperty(String var1) {
  42.       return this.myCRIF.getProperty(this.paramBlock, var1);
  43.    }
  44.  
  45.    public String[] getPropertyNames() {
  46.       return this.myCRIF.getPropertyNames();
  47.    }
  48.  
  49.    public boolean isDynamic() {
  50.       return this.myCRIF.isDynamic();
  51.    }
  52.  
  53.    public float getWidth() {
  54.       if (this.boundingBox == null) {
  55.          this.boundingBox = this.myCRIF.getBounds2D(this.paramBlock);
  56.       }
  57.  
  58.       return (float)this.boundingBox.getWidth();
  59.    }
  60.  
  61.    public float getHeight() {
  62.       if (this.boundingBox == null) {
  63.          this.boundingBox = this.myCRIF.getBounds2D(this.paramBlock);
  64.       }
  65.  
  66.       return (float)this.boundingBox.getHeight();
  67.    }
  68.  
  69.    public float getMinX() {
  70.       if (this.boundingBox == null) {
  71.          this.boundingBox = this.myCRIF.getBounds2D(this.paramBlock);
  72.       }
  73.  
  74.       return (float)this.boundingBox.getMinX();
  75.    }
  76.  
  77.    public float getMinY() {
  78.       if (this.boundingBox == null) {
  79.          this.boundingBox = this.myCRIF.getBounds2D(this.paramBlock);
  80.       }
  81.  
  82.       return (float)this.boundingBox.getMinY();
  83.    }
  84.  
  85.    public ParameterBlock setParameterBlock(ParameterBlock var1) {
  86.       ParameterBlock var2 = this.paramBlock;
  87.       this.paramBlock = (ParameterBlock)var1.clone();
  88.       return var2;
  89.    }
  90.  
  91.    public ParameterBlock getParameterBlock() {
  92.       return this.paramBlock;
  93.    }
  94.  
  95.    public RenderedImage createScaledRendering(int var1, int var2, RenderingHints var3) {
  96.       double var4 = (double)var1 / (double)this.getWidth();
  97.       double var6 = (double)var2 / (double)this.getHeight();
  98.       if (Math.abs(var4 / var6 - (double)1.0F) < 0.01) {
  99.          var4 = var6;
  100.       }
  101.  
  102.       AffineTransform var8 = AffineTransform.getScaleInstance(var4, var6);
  103.       RenderContext var9 = new RenderContext(var8, var3);
  104.       return this.createRendering(var9);
  105.    }
  106.  
  107.    public RenderedImage createDefaultRendering() {
  108.       AffineTransform var1 = new AffineTransform();
  109.       RenderContext var2 = new RenderContext(var1);
  110.       return this.createRendering(var2);
  111.    }
  112.  
  113.    public RenderedImage createRendering(RenderContext var1) {
  114.       Object var2 = null;
  115.       Object var3 = null;
  116.       ParameterBlock var4 = (ParameterBlock)this.paramBlock.clone();
  117.       Vector var5 = this.getRenderableSources();
  118.  
  119.       try {
  120.          if (var5 != null) {
  121.             Vector var6 = new Vector();
  122.  
  123.             for(int var7 = 0; var7 < var5.size(); ++var7) {
  124.                RenderContext var10 = this.myCRIF.mapRenderContext(var7, var1, this.paramBlock, this);
  125.                RenderedImage var8 = ((RenderableImage)var5.elementAt(var7)).createRendering(var10);
  126.                if (var8 == null) {
  127.                   return null;
  128.                }
  129.  
  130.                var6.addElement(var8);
  131.             }
  132.  
  133.             if (var6.size() > 0) {
  134.                var4.setSources(var6);
  135.             }
  136.          }
  137.  
  138.          return this.myCRIF.create(var1, var4);
  139.       } catch (ArrayIndexOutOfBoundsException var9) {
  140.          return null;
  141.       }
  142.    }
  143. }
  144.