home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / awt / windows / WPrintGraphicsWrapper.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  7.9 KB  |  371 lines

  1. package sun.awt.windows;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Dimension;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.PrintGraphics;
  10. import java.awt.PrintJob;
  11. import java.awt.Rectangle;
  12. import java.awt.Shape;
  13. import java.awt.geom.AffineTransform;
  14. import java.awt.image.ImageObserver;
  15. import java.text.AttributedCharacterIterator;
  16. import sun.awt.Graphics2Delegate;
  17.  
  18. public class WPrintGraphicsWrapper extends Graphics implements PrintGraphics, Graphics2Delegate {
  19.    private WPrintGraphics target;
  20.    private double ratio = (double)1.0F;
  21.    // $FF: renamed from: sx double
  22.    private double field_0 = (double)1.0F;
  23.    // $FF: renamed from: sy double
  24.    private double field_1 = (double)1.0F;
  25.    WPrintJob pjob;
  26.  
  27.    public PrintJob getPrintJob() {
  28.       return this.pjob;
  29.    }
  30.  
  31.    public WPrintGraphicsWrapper(WPrintGraphics var1, WPrintJob var2) {
  32.       this.target = var1;
  33.       this.target.wrapper = this;
  34.       this.pjob = var2;
  35.       if (var2 != null) {
  36.          this.ratio = (double)var2.truePageResolution / (double)var2.pageResolution;
  37.       }
  38.  
  39.    }
  40.  
  41.    public Graphics create() {
  42.       return new WPrintGraphicsWrapper((WPrintGraphics)this.target.create(), this.pjob);
  43.    }
  44.  
  45.    Graphics create(int var1) {
  46.       return new WPrintGraphicsWrapper((WPrintGraphics)this.target.create(var1), this.pjob);
  47.    }
  48.  
  49.    public Graphics getTarget() {
  50.       return this.target;
  51.    }
  52.  
  53.    public double getRatio() {
  54.       return this.ratio;
  55.    }
  56.  
  57.    public double getScaleFactorX() {
  58.       return this.field_0;
  59.    }
  60.  
  61.    public double getScaleFactorY() {
  62.       return this.field_1;
  63.    }
  64.  
  65.    public void translate(int var1, int var2) {
  66.       this.target.translate(var1, var2);
  67.    }
  68.  
  69.    public Color getColor() {
  70.       return this.target.getColor();
  71.    }
  72.  
  73.    public void setColor(Color var1) {
  74.       this.target.setColor(var1);
  75.    }
  76.  
  77.    public void setBackground(Color var1) {
  78.       this.target.setBackground(var1);
  79.    }
  80.  
  81.    public void setPaintMode() {
  82.       this.target.setPaintMode();
  83.    }
  84.  
  85.    public void setXORMode(Color var1) {
  86.       this.target.setXORMode(var1);
  87.    }
  88.  
  89.    public Font getFont() {
  90.       return this.target.getFont();
  91.    }
  92.  
  93.    public void setFont(Font var1) {
  94.       this.target.setFont(var1);
  95.    }
  96.  
  97.    public FontMetrics getFontMetrics(Font var1) {
  98.       return this.target.getFontMetrics(var1);
  99.    }
  100.  
  101.    public Rectangle getClipBounds() {
  102.       return this.target.getClipBounds();
  103.    }
  104.  
  105.    public void clipRect(int var1, int var2, int var3, int var4) {
  106.       this.target.clipRect(var1, var2, var3, var4);
  107.    }
  108.  
  109.    public void setClip(int var1, int var2, int var3, int var4) {
  110.       this.target.setClip(var1, var2, var3, var4);
  111.    }
  112.  
  113.    public Shape getClip() {
  114.       return this.target.getClip();
  115.    }
  116.  
  117.    public void setClip(Shape var1) {
  118.       this.target.setClip(var1);
  119.    }
  120.  
  121.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  122.       this.target.copyArea(var1, var2, var3, var4, var5, var6);
  123.    }
  124.  
  125.    public void drawLine(int var1, int var2, int var3, int var4) {
  126.       this.target.drawLine(var1, var2, var3, var4);
  127.    }
  128.  
  129.    public void fillRect(int var1, int var2, int var3, int var4) {
  130.       this.target.fillRect(var1, var2, var3, var4);
  131.    }
  132.  
  133.    public void drawRect(int var1, int var2, int var3, int var4) {
  134.       this.target.drawRect(var1, var2, var3, var4);
  135.    }
  136.  
  137.    public void clearRect(int var1, int var2, int var3, int var4) {
  138.       this.target.clearRect(var1, var2, var3, var4);
  139.    }
  140.  
  141.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  142.       this.target.drawRoundRect(var1, var2, var3, var4, var5, var6);
  143.    }
  144.  
  145.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  146.       this.target.fillRoundRect(var1, var2, var3, var4, var5, var6);
  147.    }
  148.  
  149.    public void draw3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  150.       this.target.draw3DRect(var1, var2, var3, var4, var5);
  151.    }
  152.  
  153.    public void fill3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  154.       this.target.fill3DRect(var1, var2, var3, var4, var5);
  155.    }
  156.  
  157.    public void drawOval(int var1, int var2, int var3, int var4) {
  158.       this.target.drawOval(var1, var2, var3, var4);
  159.    }
  160.  
  161.    public void fillOval(int var1, int var2, int var3, int var4) {
  162.       this.target.fillOval(var1, var2, var3, var4);
  163.    }
  164.  
  165.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  166.       this.target.drawArc(var1, var2, var3, var4, var5, var6);
  167.    }
  168.  
  169.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  170.       this.target.fillArc(var1, var2, var3, var4, var5, var6);
  171.    }
  172.  
  173.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  174.       this.target.drawPolyline(var1, var2, var3);
  175.    }
  176.  
  177.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  178.       this.target.drawPolygon(var1, var2, var3);
  179.    }
  180.  
  181.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  182.       this.target.fillPolygon(var1, var2, var3);
  183.    }
  184.  
  185.    public void drawString(String var1, int var2, int var3) {
  186.       AffineTransform var4 = this.target.getTransform();
  187.       this.target.scale(this.ratio, this.ratio);
  188.  
  189.       try {
  190.          this.target.drawingText = true;
  191.          this.target.drawString(var1, var2, var3);
  192.       } finally {
  193.          this.target.drawingText = false;
  194.       }
  195.  
  196.       this.target.setTransform(var4);
  197.    }
  198.  
  199.    public void drawString(AttributedCharacterIterator var1, int var2, int var3) {
  200.       AffineTransform var4 = this.target.getTransform();
  201.       this.target.scale(this.ratio, this.ratio);
  202.  
  203.       try {
  204.          this.target.drawingText = true;
  205.          this.target.drawString(var1, var2, var3);
  206.       } finally {
  207.          this.target.drawingText = false;
  208.       }
  209.  
  210.       this.target.setTransform(var4);
  211.    }
  212.  
  213.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  214.       AffineTransform var6 = this.target.getTransform();
  215.       this.target.scale(this.ratio, this.ratio);
  216.  
  217.       try {
  218.          this.target.drawingText = true;
  219.          this.target.drawChars(var1, var2, var3, var4, var5);
  220.       } finally {
  221.          this.target.drawingText = false;
  222.       }
  223.  
  224.       this.target.setTransform(var6);
  225.    }
  226.  
  227.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  228.       AffineTransform var6 = this.target.getTransform();
  229.       this.target.scale(this.ratio, this.ratio);
  230.  
  231.       try {
  232.          this.target.drawingText = true;
  233.          this.target.drawBytes(var1, var2, var3, var4, var5);
  234.       } finally {
  235.          this.target.drawingText = false;
  236.       }
  237.  
  238.       this.target.setTransform(var6);
  239.    }
  240.  
  241.    private boolean drawScaledImageHelper(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, BooleanFunction var8) {
  242.       boolean var9 = true;
  243.       if (var4 > 0 && var5 > 0) {
  244.          this.field_0 = Math.min((double)var6 / (double)var4, this.ratio);
  245.          this.field_1 = Math.min((double)var7 / (double)var5, this.ratio);
  246.       }
  247.  
  248.       if (this.field_0 <= (double)1.0F && this.field_1 <= (double)1.0F) {
  249.          this.field_0 = this.field_1 = (double)1.0F;
  250.          return var8.invoke();
  251.       } else {
  252.          AffineTransform var10 = this.target.getTransform();
  253.          this.target.preScale(this.field_0, this.field_1);
  254.          Rectangle var11 = this.getBoundsForPrinting(var2, var3, var4, var5);
  255.          Dimension var12 = this.getCellDimension();
  256.  
  257.          try {
  258.             this.target.drawingScaledImage = true;
  259.  
  260.             for(int var13 = var11.x; var13 < var11.x + var11.width; var13 += var12.width) {
  261.                for(int var14 = var11.y; var14 < var11.y + var11.height; var14 += var12.height) {
  262.                   this.target.setDevClip(var13, var14, var12.width, var12.height);
  263.                   var9 = var9 && var8.invoke();
  264.                }
  265.             }
  266.          } finally {
  267.             this.target.drawingScaledImage = false;
  268.             Dimension var17 = this.pjob.getPageDimension();
  269.             this.target.setDevClip(0, 0, var17.width, var17.height);
  270.             this.target.setTransform(var10);
  271.             this.field_0 = this.field_1 = (double)1.0F;
  272.          }
  273.  
  274.          return var9;
  275.       }
  276.    }
  277.  
  278.    private Rectangle getBoundsForPrinting(int var1, int var2, int var3, int var4) {
  279.       double[] var5 = new double[]{(double)var1, (double)var2, (double)(var1 + var3), (double)var2, (double)(var1 + var3), (double)(var2 + var4), (double)var1, (double)(var2 + var4)};
  280.       this.target.getTransform().transform(var5, 0, var5, 0, 4);
  281.       double var6 = var5[0];
  282.       double var8 = var5[1];
  283.       double var10 = var5[0];
  284.       double var12 = var5[1];
  285.  
  286.       for(int var14 = 2; var14 < 8; var14 += 2) {
  287.          if (var5[var14] > var6) {
  288.             var6 = var5[var14];
  289.          } else if (var5[var14] < var10) {
  290.             var10 = var5[var14];
  291.          }
  292.  
  293.          if (var5[var14 + 1] > var8) {
  294.             var8 = var5[var14 + 1];
  295.          } else if (var5[var14 + 1] < var12) {
  296.             var12 = var5[var14 + 1];
  297.          }
  298.       }
  299.  
  300.       Rectangle var15 = new Rectangle(0, 0, 0, 0);
  301.       Dimension var16 = this.pjob.getPageDimension();
  302.       var10 = Math.max(var10, (double)0.0F);
  303.       var12 = Math.max(var12, (double)0.0F);
  304.       var6 = Math.min(var6, (double)var16.width * this.field_0);
  305.       var8 = Math.min(var8, (double)var16.height * this.field_1);
  306.       if (var6 >= var10 && var8 >= var12) {
  307.          var15 = new Rectangle((int)Math.floor(var10), (int)Math.floor(var12), (int)Math.ceil(var6 - var10), (int)Math.ceil(var8 - var12));
  308.       }
  309.  
  310.       return var15;
  311.    }
  312.  
  313.    private Dimension getCellDimension() {
  314.       Dimension var1 = this.pjob.getPageDimension();
  315.       int var2 = this.pjob.getPageResolution();
  316.       return new Dimension((int)Math.floor((double)(var1.width * 72) / (double)var2), (int)Math.floor((double)(var1.height * 72) / (double)var2));
  317.    }
  318.  
  319.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  320.       return this.target.drawImage(var1, var2, var3, var4);
  321.    }
  322.  
  323.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  324.       return this.drawScaledImageHelper(var1, var2, var3, var4, var5, var1.getWidth(var6), var1.getHeight(var6), new 1(this, var1, var2, var3, var4, var5, var6));
  325.    }
  326.  
  327.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  328.       return this.target.drawImage(var1, var2, var3, var4, var5);
  329.    }
  330.  
  331.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  332.       return this.drawScaledImageHelper(var1, var2, var3, var4, var5, var1.getWidth(var7), var1.getHeight(var7), new 2(this, var1, var2, var3, var4, var5, var6, var7));
  333.    }
  334.  
  335.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  336.       return this.drawScaledImageHelper(var1, var2, var3, var4 - var2, var5 - var3, var8 - var6, var9 - var7, new 3(this, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10));
  337.    }
  338.  
  339.    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) {
  340.       return this.drawScaledImageHelper(var1, var2, var3, var4 - var2, var5 - var3, var8 - var6, var9 - var7, new 4(this, var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11));
  341.    }
  342.  
  343.    public void dispose() {
  344.       this.target.dispose();
  345.    }
  346.  
  347.    public void finalize() {
  348.    }
  349.  
  350.    public String toString() {
  351.       return this.getClass().getName() + "[target=" + this.target.toString() + "]";
  352.    }
  353.  
  354.    public Rectangle getClipRect() {
  355.       return this.target.getClipBounds();
  356.    }
  357.  
  358.    public boolean hitClip(int var1, int var2, int var3, int var4) {
  359.       return this.target.hitClip(var1, var2, var3, var4);
  360.    }
  361.  
  362.    public Rectangle getClipBounds(Rectangle var1) {
  363.       return this.target.getClipBounds(var1);
  364.    }
  365.  
  366.    // $FF: synthetic method
  367.    static WPrintGraphics access$000(WPrintGraphicsWrapper var0) {
  368.       return var0.target;
  369.    }
  370. }
  371.