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 / sun / java2d / PeekGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  10.0 KB  |  505 lines

  1. package sun.java2d;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Composite;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Graphics2D;
  9. import java.awt.GraphicsConfiguration;
  10. import java.awt.Image;
  11. import java.awt.Paint;
  12. import java.awt.Rectangle;
  13. import java.awt.RenderingHints;
  14. import java.awt.Shape;
  15. import java.awt.Stroke;
  16. import java.awt.font.FontRenderContext;
  17. import java.awt.font.GlyphVector;
  18. import java.awt.font.TextLayout;
  19. import java.awt.geom.AffineTransform;
  20. import java.awt.geom.Line2D;
  21. import java.awt.geom.Rectangle2D;
  22. import java.awt.geom.RectangularShape;
  23. import java.awt.geom.RoundRectangle2D;
  24. import java.awt.image.BufferedImage;
  25. import java.awt.image.BufferedImageOp;
  26. import java.awt.image.ImageObserver;
  27. import java.awt.image.RenderedImage;
  28. import java.awt.image.renderable.RenderableImage;
  29. import java.awt.print.PrinterGraphics;
  30. import java.awt.print.PrinterJob;
  31. import java.text.AttributedCharacterIterator;
  32. import java.util.Map;
  33.  
  34. public class PeekGraphics extends Graphics2D implements PrinterGraphics, ImageObserver, Cloneable {
  35.    Graphics2D mGraphics;
  36.    PrinterJob mPrinterJob;
  37.    private Spans mDrawingArea = new Spans();
  38.    private PeekMetrics mPrintMetrics = new PeekMetrics();
  39.  
  40.    public PeekGraphics(Graphics2D var1, PrinterJob var2) {
  41.       this.mGraphics = var1;
  42.       this.mPrinterJob = var2;
  43.    }
  44.  
  45.    public Graphics2D getDelegate() {
  46.       return this.mGraphics;
  47.    }
  48.  
  49.    public void setDelegate(Graphics2D var1) {
  50.       this.mGraphics = var1;
  51.    }
  52.  
  53.    public PrinterJob getPrinterJob() {
  54.       return this.mPrinterJob;
  55.    }
  56.  
  57.    public Spans getDrawingArea() {
  58.       return this.mDrawingArea;
  59.    }
  60.  
  61.    public GraphicsConfiguration getDeviceConfiguration() {
  62.       return this.mGraphics.getDeviceConfiguration();
  63.    }
  64.  
  65.    public Graphics create() {
  66.       PeekGraphics var1 = null;
  67.  
  68.       try {
  69.          var1 = (PeekGraphics)this.clone();
  70.          var1.mGraphics = (Graphics2D)this.mGraphics.create();
  71.       } catch (CloneNotSupportedException var3) {
  72.       }
  73.  
  74.       return var1;
  75.    }
  76.  
  77.    public void translate(int var1, int var2) {
  78.       this.mGraphics.translate(var1, var2);
  79.    }
  80.  
  81.    public void translate(double var1, double var3) {
  82.       this.mGraphics.translate(var1, var3);
  83.    }
  84.  
  85.    public void rotate(double var1) {
  86.       this.mGraphics.rotate(var1);
  87.    }
  88.  
  89.    public void rotate(double var1, double var3, double var5) {
  90.       this.mGraphics.rotate(var1, var3, var5);
  91.    }
  92.  
  93.    public void scale(double var1, double var3) {
  94.       this.mGraphics.scale(var1, var3);
  95.    }
  96.  
  97.    public void shear(double var1, double var3) {
  98.       this.mGraphics.shear(var1, var3);
  99.    }
  100.  
  101.    public Color getColor() {
  102.       return this.mGraphics.getColor();
  103.    }
  104.  
  105.    public void setColor(Color var1) {
  106.       this.mGraphics.setColor(var1);
  107.    }
  108.  
  109.    public void setPaintMode() {
  110.       this.mGraphics.setPaintMode();
  111.    }
  112.  
  113.    public void setXORMode(Color var1) {
  114.       this.mGraphics.setXORMode(var1);
  115.    }
  116.  
  117.    public Font getFont() {
  118.       return this.mGraphics.getFont();
  119.    }
  120.  
  121.    public void setFont(Font var1) {
  122.       this.mGraphics.setFont(var1);
  123.    }
  124.  
  125.    public FontMetrics getFontMetrics(Font var1) {
  126.       return this.mGraphics.getFontMetrics(var1);
  127.    }
  128.  
  129.    public FontRenderContext getFontRenderContext() {
  130.       return this.mGraphics.getFontRenderContext();
  131.    }
  132.  
  133.    public Rectangle getClipBounds() {
  134.       return this.mGraphics.getClipBounds();
  135.    }
  136.  
  137.    public void clipRect(int var1, int var2, int var3, int var4) {
  138.       this.mGraphics.clipRect(var1, var2, var3, var4);
  139.    }
  140.  
  141.    public void setClip(int var1, int var2, int var3, int var4) {
  142.       this.mGraphics.setClip(var1, var2, var3, var4);
  143.    }
  144.  
  145.    public Shape getClip() {
  146.       return this.mGraphics.getClip();
  147.    }
  148.  
  149.    public void setClip(Shape var1) {
  150.       this.mGraphics.setClip(var1);
  151.    }
  152.  
  153.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  154.    }
  155.  
  156.    public void drawLine(int var1, int var2, int var3, int var4) {
  157.       this.addStrokeShape(new Line2D.Float((float)var1, (float)var2, (float)var3, (float)var4));
  158.       this.mPrintMetrics.draw(this);
  159.    }
  160.  
  161.    public void fillRect(int var1, int var2, int var3, int var4) {
  162.       this.addDrawingRect(new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4));
  163.       this.mPrintMetrics.fill(this);
  164.    }
  165.  
  166.    public void clearRect(int var1, int var2, int var3, int var4) {
  167.       Rectangle2D.Float var5 = new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4);
  168.       this.addDrawingRect(var5);
  169.       this.mPrintMetrics.clear(this);
  170.    }
  171.  
  172.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  173.       this.addStrokeShape(new RoundRectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4, (float)var5, (float)var6));
  174.       this.mPrintMetrics.draw(this);
  175.    }
  176.  
  177.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  178.       Rectangle2D.Float var7 = new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4);
  179.       this.addDrawingRect(var7);
  180.       this.mPrintMetrics.fill(this);
  181.    }
  182.  
  183.    public void drawOval(int var1, int var2, int var3, int var4) {
  184.       this.addStrokeShape(new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4));
  185.       this.mPrintMetrics.draw(this);
  186.    }
  187.  
  188.    public void fillOval(int var1, int var2, int var3, int var4) {
  189.       Rectangle2D.Float var5 = new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4);
  190.       this.addDrawingRect(var5);
  191.       this.mPrintMetrics.fill(this);
  192.    }
  193.  
  194.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  195.       this.addStrokeShape(new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4));
  196.       this.mPrintMetrics.draw(this);
  197.    }
  198.  
  199.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  200.       Rectangle2D.Float var7 = new Rectangle2D.Float((float)var1, (float)var2, (float)var3, (float)var4);
  201.       this.addDrawingRect(var7);
  202.       this.mPrintMetrics.fill(this);
  203.    }
  204.  
  205.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  206.       if (var3 > 0) {
  207.          int var4 = var1[0];
  208.          int var5 = var2[0];
  209.  
  210.          for(int var6 = 1; var6 < var3; ++var6) {
  211.             this.drawLine(var4, var5, var1[var6], var2[var6]);
  212.             var4 = var1[var6];
  213.             var5 = var2[var6];
  214.          }
  215.       }
  216.  
  217.    }
  218.  
  219.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  220.       if (var3 > 0) {
  221.          this.drawPolyline(var1, var2, var3);
  222.          this.drawLine(var1[var3 - 1], var2[var3 - 1], var1[0], var2[0]);
  223.       }
  224.  
  225.    }
  226.  
  227.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  228.       if (var3 > 0) {
  229.          int var4 = var1[0];
  230.          int var5 = var2[0];
  231.          int var6 = var1[0];
  232.          int var7 = var2[0];
  233.  
  234.          for(int var8 = 1; var8 < var3; ++var8) {
  235.             if (var1[var8] < var4) {
  236.                var4 = var1[var8];
  237.             } else if (var1[var8] > var6) {
  238.                var6 = var1[var8];
  239.             }
  240.  
  241.             if (var2[var8] < var5) {
  242.                var5 = var2[var8];
  243.             } else if (var2[var8] > var7) {
  244.                var7 = var2[var8];
  245.             }
  246.          }
  247.  
  248.          this.addDrawingRect((float)var4, (float)var5, (float)(var6 - var4), (float)(var7 - var5));
  249.       }
  250.  
  251.       this.mPrintMetrics.fill(this);
  252.    }
  253.  
  254.    public void drawString(String var1, int var2, int var3) {
  255.       if (var1.length() != 0) {
  256.          this.drawTextLayout(new TextLayout(var1, this.getFont(), this.getFontRenderContext()), (float)var2, (float)var3);
  257.       }
  258.    }
  259.  
  260.    public void drawString(AttributedCharacterIterator var1, int var2, int var3) {
  261.       if (var1 == null) {
  262.          throw new NullPointerException("attributedcharacteriterator is null");
  263.       } else {
  264.          this.drawTextLayout(new TextLayout(var1, this.getFontRenderContext()), (float)var2, (float)var3);
  265.       }
  266.    }
  267.  
  268.    public void drawString(AttributedCharacterIterator var1, float var2, float var3) {
  269.       if (var1 == null) {
  270.          throw new NullPointerException("attributedcharacteriterator is null");
  271.       } else {
  272.          this.drawTextLayout(new TextLayout(var1, this.getFontRenderContext()), var2, var3);
  273.       }
  274.    }
  275.  
  276.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  277.       ImageWaiter var5 = new ImageWaiter(this, var1);
  278.       this.addDrawingRect((float)var2, (float)var3, (float)var5.getWidth(), (float)var5.getHeight());
  279.       this.mPrintMetrics.drawImage(this, var1);
  280.       return this.mGraphics.drawImage(var1, var2, var3, var4);
  281.    }
  282.  
  283.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  284.       this.addDrawingRect((float)var2, (float)var3, (float)var4, (float)var5);
  285.       this.mPrintMetrics.drawImage(this, var1);
  286.       return this.mGraphics.drawImage(var1, var2, var3, var4, var5, var6);
  287.    }
  288.  
  289.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  290.       ImageWaiter var6 = new ImageWaiter(this, var1);
  291.       this.addDrawingRect((float)var2, (float)var3, (float)var6.getWidth(), (float)var6.getHeight());
  292.       this.mPrintMetrics.drawImage(this, var1);
  293.       return this.mGraphics.drawImage(var1, var2, var3, var4, var5);
  294.    }
  295.  
  296.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  297.       this.addDrawingRect((float)var2, (float)var3, (float)var4, (float)var5);
  298.       this.mPrintMetrics.drawImage(this, var1);
  299.       return this.mGraphics.drawImage(var1, var2, var3, var4, var5, var6, var7);
  300.    }
  301.  
  302.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  303.       int var11 = var4 - var2;
  304.       int var12 = var5 - var3;
  305.       this.addDrawingRect((float)var2, (float)var3, (float)var11, (float)var12);
  306.       this.mPrintMetrics.drawImage(this, var1);
  307.       return this.mGraphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  308.    }
  309.  
  310.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, Color var10, ImageObserver var11) {
  311.       int var12 = var4 - var2;
  312.       int var13 = var5 - var3;
  313.       this.addDrawingRect((float)var2, (float)var3, (float)var12, (float)var13);
  314.       this.mPrintMetrics.drawImage(this, var1);
  315.       return this.mGraphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  316.    }
  317.  
  318.    public void drawRenderedImage(RenderedImage var1, AffineTransform var2) {
  319.       this.mPrintMetrics.drawImage(this, var1);
  320.       this.mDrawingArea.addInfinite();
  321.    }
  322.  
  323.    public void drawRenderableImage(RenderableImage var1, AffineTransform var2) {
  324.       this.mPrintMetrics.drawImage(this, var1);
  325.       this.mDrawingArea.addInfinite();
  326.    }
  327.  
  328.    public void dispose() {
  329.       this.mGraphics.dispose();
  330.    }
  331.  
  332.    public void draw(Shape var1) {
  333.       this.addStrokeShape(var1);
  334.       this.mPrintMetrics.draw(this);
  335.    }
  336.  
  337.    public boolean drawImage(Image var1, AffineTransform var2, ImageObserver var3) {
  338.       this.mDrawingArea.addInfinite();
  339.       this.mPrintMetrics.drawImage(this, var1);
  340.       return this.mGraphics.drawImage(var1, var2, var3);
  341.    }
  342.  
  343.    public void drawImage(BufferedImage var1, BufferedImageOp var2, int var3, int var4) {
  344.       this.mPrintMetrics.drawImage(this, (RenderableImage)var1);
  345.       this.mDrawingArea.addInfinite();
  346.    }
  347.  
  348.    public void drawString(String var1, float var2, float var3) {
  349.       if (var1.length() != 0) {
  350.          this.drawTextLayout(new TextLayout(var1, this.getFont(), this.getFontRenderContext()), var2, var3);
  351.       }
  352.    }
  353.  
  354.    public void drawGlyphVector(GlyphVector var1, float var2, float var3) {
  355.       Rectangle2D var4 = var1.getLogicalBounds();
  356.       this.addDrawingRect(var4, var2, var3);
  357.       this.mPrintMetrics.drawText(this);
  358.    }
  359.  
  360.    void drawTextLayout(TextLayout var1, float var2, float var3) {
  361.       this.addDrawingRect(var1.getBounds(), var2, var3);
  362.       this.mPrintMetrics.drawText(this, var1);
  363.    }
  364.  
  365.    public void fill(Shape var1) {
  366.       this.addDrawingRect(var1.getBounds());
  367.       this.mPrintMetrics.fill(this);
  368.    }
  369.  
  370.    public boolean hit(Rectangle var1, Shape var2, boolean var3) {
  371.       return this.mGraphics.hit(var1, var2, var3);
  372.    }
  373.  
  374.    public void setComposite(Composite var1) {
  375.       this.mGraphics.setComposite(var1);
  376.    }
  377.  
  378.    public void setPaint(Paint var1) {
  379.       this.mGraphics.setPaint(var1);
  380.    }
  381.  
  382.    public void setStroke(Stroke var1) {
  383.       this.mGraphics.setStroke(var1);
  384.    }
  385.  
  386.    public void setRenderingHint(RenderingHints.Key var1, Object var2) {
  387.       this.mGraphics.setRenderingHint(var1, var2);
  388.    }
  389.  
  390.    public Object getRenderingHint(RenderingHints.Key var1) {
  391.       return this.mGraphics.getRenderingHint(var1);
  392.    }
  393.  
  394.    public void setRenderingHints(Map var1) {
  395.       this.mGraphics.setRenderingHints(var1);
  396.    }
  397.  
  398.    public void addRenderingHints(Map var1) {
  399.       this.mGraphics.addRenderingHints(var1);
  400.    }
  401.  
  402.    public RenderingHints getRenderingHints() {
  403.       return this.mGraphics.getRenderingHints();
  404.    }
  405.  
  406.    public void transform(AffineTransform var1) {
  407.       this.mGraphics.transform(var1);
  408.    }
  409.  
  410.    public void setTransform(AffineTransform var1) {
  411.       this.mGraphics.setTransform(var1);
  412.    }
  413.  
  414.    public AffineTransform getTransform() {
  415.       return this.mGraphics.getTransform();
  416.    }
  417.  
  418.    public Paint getPaint() {
  419.       return this.mGraphics.getPaint();
  420.    }
  421.  
  422.    public Composite getComposite() {
  423.       return this.mGraphics.getComposite();
  424.    }
  425.  
  426.    public void setBackground(Color var1) {
  427.       this.mGraphics.setBackground(var1);
  428.    }
  429.  
  430.    public Color getBackground() {
  431.       return this.mGraphics.getBackground();
  432.    }
  433.  
  434.    public Stroke getStroke() {
  435.       return this.mGraphics.getStroke();
  436.    }
  437.  
  438.    public void clip(Shape var1) {
  439.       this.mGraphics.clip(var1);
  440.    }
  441.  
  442.    public boolean hitsDrawingArea(Rectangle var1) {
  443.       return this.mDrawingArea.intersects((float)((RectangularShape)var1).getMinY(), (float)((RectangularShape)var1).getMaxY());
  444.    }
  445.  
  446.    public PeekMetrics getMetrics() {
  447.       return this.mPrintMetrics;
  448.    }
  449.  
  450.    private void addDrawingRect(Rectangle2D var1, float var2, float var3) {
  451.       this.addDrawingRect((float)(((RectangularShape)var1).getX() + (double)var2), (float)(((RectangularShape)var1).getY() + (double)var3), (float)((RectangularShape)var1).getWidth(), (float)((RectangularShape)var1).getHeight());
  452.    }
  453.  
  454.    private void addDrawingRect(float var1, float var2, float var3, float var4) {
  455.       Rectangle2D.Float var5 = new Rectangle2D.Float(var1, var2, var3, var4);
  456.       this.addDrawingRect(var5);
  457.    }
  458.  
  459.    private void addDrawingRect(Rectangle2D var1) {
  460.       Rectangle var2 = this.mGraphics.getClipBounds();
  461.       ((Rectangle2D)var2).createIntersection(var1);
  462.       AffineTransform var4 = this.getTransform();
  463.       Shape var5 = var4.createTransformedShape(var1);
  464.       Rectangle2D var6 = var5.getBounds2D();
  465.       this.mDrawingArea.add((float)((RectangularShape)var6).getMinY(), (float)((RectangularShape)var6).getMaxY());
  466.    }
  467.  
  468.    private void addStrokeShape(Shape var1) {
  469.       Shape var2 = this.getStroke().createStrokedShape(var1);
  470.       this.addDrawingRect(var2.getBounds2D());
  471.    }
  472.  
  473.    public synchronized boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  474.       boolean var7 = false;
  475.       if ((var2 & 3) != 0) {
  476.          var7 = true;
  477.          this.notify();
  478.       }
  479.  
  480.       return var7;
  481.    }
  482.  
  483.    private synchronized int getImageWidth(Image var1) {
  484.       while(var1.getWidth(this) == -1) {
  485.          try {
  486.             this.wait();
  487.          } catch (InterruptedException var3) {
  488.          }
  489.       }
  490.  
  491.       return var1.getWidth(this);
  492.    }
  493.  
  494.    private synchronized int getImageHeight(Image var1) {
  495.       while(var1.getHeight(this) == -1) {
  496.          try {
  497.             this.wait();
  498.          } catch (InterruptedException var3) {
  499.          }
  500.       }
  501.  
  502.       return var1.getHeight(this);
  503.    }
  504. }
  505.