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 / javax / swing / DebugGraphics.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  15.0 KB  |  1,095 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Font;
  6. import java.awt.FontMetrics;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11. import java.awt.Shape;
  12. import java.awt.Toolkit;
  13. import java.awt.Window;
  14. import java.awt.image.FilteredImageSource;
  15. import java.awt.image.ImageObserver;
  16. import java.awt.image.ImageProducer;
  17. import java.io.PrintStream;
  18. import java.text.AttributedCharacterIterator;
  19.  
  20. public class DebugGraphics extends Graphics {
  21.    Graphics graphics;
  22.    Image buffer;
  23.    int debugOptions;
  24.    int graphicsID;
  25.    int xOffset;
  26.    int yOffset;
  27.    private static int graphicsCount = 0;
  28.    public static final int LOG_OPTION = 1;
  29.    public static final int FLASH_OPTION = 2;
  30.    public static final int BUFFERED_OPTION = 4;
  31.    public static final int NONE_OPTION = -1;
  32.    private static final Class debugGraphicsInfoKey;
  33.    // $FF: synthetic field
  34.    static Class class$javax$swing$DebugGraphicsInfo;
  35.  
  36.    public DebugGraphics() {
  37.       this.graphicsID = graphicsCount++;
  38.       this.buffer = null;
  39.       this.xOffset = this.yOffset = 0;
  40.    }
  41.  
  42.    public DebugGraphics(Graphics var1, JComponent var2) {
  43.       this(var1);
  44.       this.setDebugOptions(var2.shouldDebugGraphics());
  45.    }
  46.  
  47.    public DebugGraphics(Graphics var1) {
  48.       this();
  49.       this.graphics = var1;
  50.    }
  51.  
  52.    public Graphics create() {
  53.       DebugGraphics var1 = new DebugGraphics();
  54.       var1.graphics = this.graphics.create();
  55.       var1.debugOptions = this.debugOptions;
  56.       var1.buffer = this.buffer;
  57.       return var1;
  58.    }
  59.  
  60.    public Graphics create(int var1, int var2, int var3, int var4) {
  61.       DebugGraphics var5 = new DebugGraphics();
  62.       var5.graphics = this.graphics.create(var1, var2, var3, var4);
  63.       var5.debugOptions = this.debugOptions;
  64.       var5.buffer = this.buffer;
  65.       var5.xOffset = this.xOffset + var1;
  66.       var5.yOffset = this.yOffset + var2;
  67.       return var5;
  68.    }
  69.  
  70.    public static void setFlashColor(Color var0) {
  71.       info().flashColor = var0;
  72.    }
  73.  
  74.    public static Color flashColor() {
  75.       return info().flashColor;
  76.    }
  77.  
  78.    public static void setFlashTime(int var0) {
  79.       info().flashTime = var0;
  80.    }
  81.  
  82.    public static int flashTime() {
  83.       return info().flashTime;
  84.    }
  85.  
  86.    public static void setFlashCount(int var0) {
  87.       info().flashCount = var0;
  88.    }
  89.  
  90.    public static int flashCount() {
  91.       return info().flashCount;
  92.    }
  93.  
  94.    public static void setLogStream(PrintStream var0) {
  95.       info().stream = var0;
  96.    }
  97.  
  98.    public static PrintStream logStream() {
  99.       return info().stream;
  100.    }
  101.  
  102.    public void setFont(Font var1) {
  103.       if (this.debugLog()) {
  104.          info().log(this.toShortString() + " Setting font: " + var1);
  105.       }
  106.  
  107.       this.graphics.setFont(var1);
  108.    }
  109.  
  110.    public Font getFont() {
  111.       return this.graphics.getFont();
  112.    }
  113.  
  114.    public void setColor(Color var1) {
  115.       if (this.debugLog()) {
  116.          info().log(this.toShortString() + " Setting color: " + var1);
  117.       }
  118.  
  119.       this.graphics.setColor(var1);
  120.    }
  121.  
  122.    public Color getColor() {
  123.       return this.graphics.getColor();
  124.    }
  125.  
  126.    public FontMetrics getFontMetrics() {
  127.       return this.graphics.getFontMetrics();
  128.    }
  129.  
  130.    public FontMetrics getFontMetrics(Font var1) {
  131.       return this.graphics.getFontMetrics(var1);
  132.    }
  133.  
  134.    public void translate(int var1, int var2) {
  135.       if (this.debugLog()) {
  136.          info().log(this.toShortString() + " Translating by: " + new Point(var1, var2));
  137.       }
  138.  
  139.       this.xOffset += var1;
  140.       this.yOffset += var2;
  141.       this.graphics.translate(var1, var2);
  142.    }
  143.  
  144.    public void setPaintMode() {
  145.       if (this.debugLog()) {
  146.          info().log(this.toShortString() + " Setting paint mode");
  147.       }
  148.  
  149.       this.graphics.setPaintMode();
  150.    }
  151.  
  152.    public void setXORMode(Color var1) {
  153.       if (this.debugLog()) {
  154.          info().log(this.toShortString() + " Setting XOR mode: " + var1);
  155.       }
  156.  
  157.       this.graphics.setXORMode(var1);
  158.    }
  159.  
  160.    public Rectangle getClipBounds() {
  161.       return this.graphics.getClipBounds();
  162.    }
  163.  
  164.    public void clipRect(int var1, int var2, int var3, int var4) {
  165.       this.graphics.clipRect(var1, var2, var3, var4);
  166.       if (this.debugLog()) {
  167.          info().log(this.toShortString() + " Setting clipRect: " + new Rectangle(var1, var2, var3, var4) + " New clipRect: " + this.graphics.getClip());
  168.       }
  169.  
  170.    }
  171.  
  172.    public void setClip(int var1, int var2, int var3, int var4) {
  173.       this.graphics.setClip(var1, var2, var3, var4);
  174.       if (this.debugLog()) {
  175.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  176.       }
  177.  
  178.    }
  179.  
  180.    public Shape getClip() {
  181.       return this.graphics.getClip();
  182.    }
  183.  
  184.    public void setClip(Shape var1) {
  185.       this.graphics.setClip(var1);
  186.       if (this.debugLog()) {
  187.          info().log(this.toShortString() + " Setting new clipRect: " + this.graphics.getClip());
  188.       }
  189.  
  190.    }
  191.  
  192.    public void drawRect(int var1, int var2, int var3, int var4) {
  193.       DebugGraphicsInfo var5 = info();
  194.       if (this.debugLog()) {
  195.          info().log(this.toShortString() + " Drawing rect: " + new Rectangle(var1, var2, var3, var4));
  196.       }
  197.  
  198.       if (this.isDrawingBuffer()) {
  199.          if (this.debugBuffered()) {
  200.             Graphics var6 = this.debugGraphics();
  201.             var6.drawRect(var1, var2, var3, var4);
  202.             var6.dispose();
  203.          }
  204.       } else if (this.debugFlash()) {
  205.          Color var9 = this.getColor();
  206.          int var8 = var5.flashCount * 2 - 1;
  207.  
  208.          for(int var7 = 0; var7 < var8; ++var7) {
  209.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  210.             this.graphics.drawRect(var1, var2, var3, var4);
  211.             Toolkit.getDefaultToolkit().sync();
  212.             this.sleep(var5.flashTime);
  213.          }
  214.  
  215.          this.graphics.setColor(var9);
  216.       }
  217.  
  218.       this.graphics.drawRect(var1, var2, var3, var4);
  219.    }
  220.  
  221.    public void fillRect(int var1, int var2, int var3, int var4) {
  222.       DebugGraphicsInfo var5 = info();
  223.       if (this.debugLog()) {
  224.          info().log(this.toShortString() + " Filling rect: " + new Rectangle(var1, var2, var3, var4));
  225.       }
  226.  
  227.       if (this.isDrawingBuffer()) {
  228.          if (this.debugBuffered()) {
  229.             Graphics var6 = this.debugGraphics();
  230.             var6.fillRect(var1, var2, var3, var4);
  231.             var6.dispose();
  232.          }
  233.       } else if (this.debugFlash()) {
  234.          Color var9 = this.getColor();
  235.          int var8 = var5.flashCount * 2 - 1;
  236.  
  237.          for(int var7 = 0; var7 < var8; ++var7) {
  238.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  239.             this.graphics.fillRect(var1, var2, var3, var4);
  240.             Toolkit.getDefaultToolkit().sync();
  241.             this.sleep(var5.flashTime);
  242.          }
  243.  
  244.          this.graphics.setColor(var9);
  245.       }
  246.  
  247.       this.graphics.fillRect(var1, var2, var3, var4);
  248.    }
  249.  
  250.    public void clearRect(int var1, int var2, int var3, int var4) {
  251.       DebugGraphicsInfo var5 = info();
  252.       if (this.debugLog()) {
  253.          info().log(this.toShortString() + " Clearing rect: " + new Rectangle(var1, var2, var3, var4));
  254.       }
  255.  
  256.       if (this.isDrawingBuffer()) {
  257.          if (this.debugBuffered()) {
  258.             Graphics var6 = this.debugGraphics();
  259.             var6.clearRect(var1, var2, var3, var4);
  260.             var6.dispose();
  261.          }
  262.       } else if (this.debugFlash()) {
  263.          Color var9 = this.getColor();
  264.          int var8 = var5.flashCount * 2 - 1;
  265.  
  266.          for(int var7 = 0; var7 < var8; ++var7) {
  267.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  268.             this.graphics.clearRect(var1, var2, var3, var4);
  269.             Toolkit.getDefaultToolkit().sync();
  270.             this.sleep(var5.flashTime);
  271.          }
  272.  
  273.          this.graphics.setColor(var9);
  274.       }
  275.  
  276.       this.graphics.clearRect(var1, var2, var3, var4);
  277.    }
  278.  
  279.    public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  280.       DebugGraphicsInfo var7 = info();
  281.       if (this.debugLog()) {
  282.          info().log(this.toShortString() + " Drawing round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  283.       }
  284.  
  285.       if (this.isDrawingBuffer()) {
  286.          if (this.debugBuffered()) {
  287.             Graphics var8 = this.debugGraphics();
  288.             var8.drawRoundRect(var1, var2, var3, var4, var5, var6);
  289.             var8.dispose();
  290.          }
  291.       } else if (this.debugFlash()) {
  292.          Color var11 = this.getColor();
  293.          int var10 = var7.flashCount * 2 - 1;
  294.  
  295.          for(int var9 = 0; var9 < var10; ++var9) {
  296.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  297.             this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  298.             Toolkit.getDefaultToolkit().sync();
  299.             this.sleep(var7.flashTime);
  300.          }
  301.  
  302.          this.graphics.setColor(var11);
  303.       }
  304.  
  305.       this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6);
  306.    }
  307.  
  308.    public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) {
  309.       DebugGraphicsInfo var7 = info();
  310.       if (this.debugLog()) {
  311.          info().log(this.toShortString() + " Filling round rect: " + new Rectangle(var1, var2, var3, var4) + " arcWidth: " + var5 + " archHeight: " + var6);
  312.       }
  313.  
  314.       if (this.isDrawingBuffer()) {
  315.          if (this.debugBuffered()) {
  316.             Graphics var8 = this.debugGraphics();
  317.             var8.fillRoundRect(var1, var2, var3, var4, var5, var6);
  318.             var8.dispose();
  319.          }
  320.       } else if (this.debugFlash()) {
  321.          Color var11 = this.getColor();
  322.          int var10 = var7.flashCount * 2 - 1;
  323.  
  324.          for(int var9 = 0; var9 < var10; ++var9) {
  325.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  326.             this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  327.             Toolkit.getDefaultToolkit().sync();
  328.             this.sleep(var7.flashTime);
  329.          }
  330.  
  331.          this.graphics.setColor(var11);
  332.       }
  333.  
  334.       this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6);
  335.    }
  336.  
  337.    public void drawLine(int var1, int var2, int var3, int var4) {
  338.       DebugGraphicsInfo var5 = info();
  339.       if (this.debugLog()) {
  340.          info().log(this.toShortString() + " Drawing line: from " + this.pointToString(var1, var2) + " to " + this.pointToString(var3, var4));
  341.       }
  342.  
  343.       if (this.isDrawingBuffer()) {
  344.          if (this.debugBuffered()) {
  345.             Graphics var6 = this.debugGraphics();
  346.             var6.drawLine(var1, var2, var3, var4);
  347.             var6.dispose();
  348.          }
  349.       } else if (this.debugFlash()) {
  350.          Color var9 = this.getColor();
  351.          int var8 = var5.flashCount * 2 - 1;
  352.  
  353.          for(int var7 = 0; var7 < var8; ++var7) {
  354.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  355.             this.graphics.drawLine(var1, var2, var3, var4);
  356.             Toolkit.getDefaultToolkit().sync();
  357.             this.sleep(var5.flashTime);
  358.          }
  359.  
  360.          this.graphics.setColor(var9);
  361.       }
  362.  
  363.       this.graphics.drawLine(var1, var2, var3, var4);
  364.    }
  365.  
  366.    public void draw3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  367.       DebugGraphicsInfo var6 = info();
  368.       if (this.debugLog()) {
  369.          info().log(this.toShortString() + " Drawing 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  370.       }
  371.  
  372.       if (this.isDrawingBuffer()) {
  373.          if (this.debugBuffered()) {
  374.             Graphics var7 = this.debugGraphics();
  375.             var7.draw3DRect(var1, var2, var3, var4, var5);
  376.             var7.dispose();
  377.          }
  378.       } else if (this.debugFlash()) {
  379.          Color var10 = this.getColor();
  380.          int var9 = var6.flashCount * 2 - 1;
  381.  
  382.          for(int var8 = 0; var8 < var9; ++var8) {
  383.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  384.             this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  385.             Toolkit.getDefaultToolkit().sync();
  386.             this.sleep(var6.flashTime);
  387.          }
  388.  
  389.          this.graphics.setColor(var10);
  390.       }
  391.  
  392.       this.graphics.draw3DRect(var1, var2, var3, var4, var5);
  393.    }
  394.  
  395.    public void fill3DRect(int var1, int var2, int var3, int var4, boolean var5) {
  396.       DebugGraphicsInfo var6 = info();
  397.       if (this.debugLog()) {
  398.          info().log(this.toShortString() + " Filling 3D rect: " + new Rectangle(var1, var2, var3, var4) + " Raised bezel: " + var5);
  399.       }
  400.  
  401.       if (this.isDrawingBuffer()) {
  402.          if (this.debugBuffered()) {
  403.             Graphics var7 = this.debugGraphics();
  404.             var7.fill3DRect(var1, var2, var3, var4, var5);
  405.             var7.dispose();
  406.          }
  407.       } else if (this.debugFlash()) {
  408.          Color var10 = this.getColor();
  409.          int var9 = var6.flashCount * 2 - 1;
  410.  
  411.          for(int var8 = 0; var8 < var9; ++var8) {
  412.             this.graphics.setColor(var8 % 2 == 0 ? var6.flashColor : var10);
  413.             this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  414.             Toolkit.getDefaultToolkit().sync();
  415.             this.sleep(var6.flashTime);
  416.          }
  417.  
  418.          this.graphics.setColor(var10);
  419.       }
  420.  
  421.       this.graphics.fill3DRect(var1, var2, var3, var4, var5);
  422.    }
  423.  
  424.    public void drawOval(int var1, int var2, int var3, int var4) {
  425.       DebugGraphicsInfo var5 = info();
  426.       if (this.debugLog()) {
  427.          info().log(this.toShortString() + " Drawing oval: " + new Rectangle(var1, var2, var3, var4));
  428.       }
  429.  
  430.       if (this.isDrawingBuffer()) {
  431.          if (this.debugBuffered()) {
  432.             Graphics var6 = this.debugGraphics();
  433.             var6.drawOval(var1, var2, var3, var4);
  434.             var6.dispose();
  435.          }
  436.       } else if (this.debugFlash()) {
  437.          Color var9 = this.getColor();
  438.          int var8 = var5.flashCount * 2 - 1;
  439.  
  440.          for(int var7 = 0; var7 < var8; ++var7) {
  441.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  442.             this.graphics.drawOval(var1, var2, var3, var4);
  443.             Toolkit.getDefaultToolkit().sync();
  444.             this.sleep(var5.flashTime);
  445.          }
  446.  
  447.          this.graphics.setColor(var9);
  448.       }
  449.  
  450.       this.graphics.drawOval(var1, var2, var3, var4);
  451.    }
  452.  
  453.    public void fillOval(int var1, int var2, int var3, int var4) {
  454.       DebugGraphicsInfo var5 = info();
  455.       if (this.debugLog()) {
  456.          info().log(this.toShortString() + " Filling oval: " + new Rectangle(var1, var2, var3, var4));
  457.       }
  458.  
  459.       if (this.isDrawingBuffer()) {
  460.          if (this.debugBuffered()) {
  461.             Graphics var6 = this.debugGraphics();
  462.             var6.fillOval(var1, var2, var3, var4);
  463.             var6.dispose();
  464.          }
  465.       } else if (this.debugFlash()) {
  466.          Color var9 = this.getColor();
  467.          int var8 = var5.flashCount * 2 - 1;
  468.  
  469.          for(int var7 = 0; var7 < var8; ++var7) {
  470.             this.graphics.setColor(var7 % 2 == 0 ? var5.flashColor : var9);
  471.             this.graphics.fillOval(var1, var2, var3, var4);
  472.             Toolkit.getDefaultToolkit().sync();
  473.             this.sleep(var5.flashTime);
  474.          }
  475.  
  476.          this.graphics.setColor(var9);
  477.       }
  478.  
  479.       this.graphics.fillOval(var1, var2, var3, var4);
  480.    }
  481.  
  482.    public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  483.       DebugGraphicsInfo var7 = info();
  484.       if (this.debugLog()) {
  485.          info().log(this.toShortString() + " Drawing arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  486.       }
  487.  
  488.       if (this.isDrawingBuffer()) {
  489.          if (this.debugBuffered()) {
  490.             Graphics var8 = this.debugGraphics();
  491.             var8.drawArc(var1, var2, var3, var4, var5, var6);
  492.             var8.dispose();
  493.          }
  494.       } else if (this.debugFlash()) {
  495.          Color var11 = this.getColor();
  496.          int var10 = var7.flashCount * 2 - 1;
  497.  
  498.          for(int var9 = 0; var9 < var10; ++var9) {
  499.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  500.             this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  501.             Toolkit.getDefaultToolkit().sync();
  502.             this.sleep(var7.flashTime);
  503.          }
  504.  
  505.          this.graphics.setColor(var11);
  506.       }
  507.  
  508.       this.graphics.drawArc(var1, var2, var3, var4, var5, var6);
  509.    }
  510.  
  511.    public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) {
  512.       DebugGraphicsInfo var7 = info();
  513.       if (this.debugLog()) {
  514.          info().log(this.toShortString() + " Filling arc: " + new Rectangle(var1, var2, var3, var4) + " startAngle: " + var5 + " arcAngle: " + var6);
  515.       }
  516.  
  517.       if (this.isDrawingBuffer()) {
  518.          if (this.debugBuffered()) {
  519.             Graphics var8 = this.debugGraphics();
  520.             var8.fillArc(var1, var2, var3, var4, var5, var6);
  521.             var8.dispose();
  522.          }
  523.       } else if (this.debugFlash()) {
  524.          Color var11 = this.getColor();
  525.          int var10 = var7.flashCount * 2 - 1;
  526.  
  527.          for(int var9 = 0; var9 < var10; ++var9) {
  528.             this.graphics.setColor(var9 % 2 == 0 ? var7.flashColor : var11);
  529.             this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  530.             Toolkit.getDefaultToolkit().sync();
  531.             this.sleep(var7.flashTime);
  532.          }
  533.  
  534.          this.graphics.setColor(var11);
  535.       }
  536.  
  537.       this.graphics.fillArc(var1, var2, var3, var4, var5, var6);
  538.    }
  539.  
  540.    public void drawPolyline(int[] var1, int[] var2, int var3) {
  541.       DebugGraphicsInfo var4 = info();
  542.       if (this.debugLog()) {
  543.          info().log(this.toShortString() + " Drawing polyline: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  544.       }
  545.  
  546.       if (this.isDrawingBuffer()) {
  547.          if (this.debugBuffered()) {
  548.             Graphics var5 = this.debugGraphics();
  549.             var5.drawPolyline(var1, var2, var3);
  550.             var5.dispose();
  551.          }
  552.       } else if (this.debugFlash()) {
  553.          Color var8 = this.getColor();
  554.          int var7 = var4.flashCount * 2 - 1;
  555.  
  556.          for(int var6 = 0; var6 < var7; ++var6) {
  557.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  558.             this.graphics.drawPolyline(var1, var2, var3);
  559.             Toolkit.getDefaultToolkit().sync();
  560.             this.sleep(var4.flashTime);
  561.          }
  562.  
  563.          this.graphics.setColor(var8);
  564.       }
  565.  
  566.       this.graphics.drawPolyline(var1, var2, var3);
  567.    }
  568.  
  569.    public void drawPolygon(int[] var1, int[] var2, int var3) {
  570.       DebugGraphicsInfo var4 = info();
  571.       if (this.debugLog()) {
  572.          info().log(this.toShortString() + " Drawing polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  573.       }
  574.  
  575.       if (this.isDrawingBuffer()) {
  576.          if (this.debugBuffered()) {
  577.             Graphics var5 = this.debugGraphics();
  578.             var5.drawPolygon(var1, var2, var3);
  579.             var5.dispose();
  580.          }
  581.       } else if (this.debugFlash()) {
  582.          Color var8 = this.getColor();
  583.          int var7 = var4.flashCount * 2 - 1;
  584.  
  585.          for(int var6 = 0; var6 < var7; ++var6) {
  586.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  587.             this.graphics.drawPolygon(var1, var2, var3);
  588.             Toolkit.getDefaultToolkit().sync();
  589.             this.sleep(var4.flashTime);
  590.          }
  591.  
  592.          this.graphics.setColor(var8);
  593.       }
  594.  
  595.       this.graphics.drawPolygon(var1, var2, var3);
  596.    }
  597.  
  598.    public void fillPolygon(int[] var1, int[] var2, int var3) {
  599.       DebugGraphicsInfo var4 = info();
  600.       if (this.debugLog()) {
  601.          info().log(this.toShortString() + " Filling polygon: " + " nPoints: " + var3 + " X's: " + var1 + " Y's: " + var2);
  602.       }
  603.  
  604.       if (this.isDrawingBuffer()) {
  605.          if (this.debugBuffered()) {
  606.             Graphics var5 = this.debugGraphics();
  607.             var5.fillPolygon(var1, var2, var3);
  608.             var5.dispose();
  609.          }
  610.       } else if (this.debugFlash()) {
  611.          Color var8 = this.getColor();
  612.          int var7 = var4.flashCount * 2 - 1;
  613.  
  614.          for(int var6 = 0; var6 < var7; ++var6) {
  615.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  616.             this.graphics.fillPolygon(var1, var2, var3);
  617.             Toolkit.getDefaultToolkit().sync();
  618.             this.sleep(var4.flashTime);
  619.          }
  620.  
  621.          this.graphics.setColor(var8);
  622.       }
  623.  
  624.       this.graphics.fillPolygon(var1, var2, var3);
  625.    }
  626.  
  627.    public void drawString(String var1, int var2, int var3) {
  628.       DebugGraphicsInfo var4 = info();
  629.       if (this.debugLog()) {
  630.          info().log(this.toShortString() + " Drawing string: \"" + var1 + "\" at: " + new Point(var2, var3));
  631.       }
  632.  
  633.       if (this.isDrawingBuffer()) {
  634.          if (this.debugBuffered()) {
  635.             Graphics var5 = this.debugGraphics();
  636.             var5.drawString(var1, var2, var3);
  637.             var5.dispose();
  638.          }
  639.       } else if (this.debugFlash()) {
  640.          Color var8 = this.getColor();
  641.          int var7 = var4.flashCount * 2 - 1;
  642.  
  643.          for(int var6 = 0; var6 < var7; ++var6) {
  644.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  645.             this.graphics.drawString(var1, var2, var3);
  646.             Toolkit.getDefaultToolkit().sync();
  647.             this.sleep(var4.flashTime);
  648.          }
  649.  
  650.          this.graphics.setColor(var8);
  651.       }
  652.  
  653.       this.graphics.drawString(var1, var2, var3);
  654.    }
  655.  
  656.    public void drawString(AttributedCharacterIterator var1, int var2, int var3) {
  657.       DebugGraphicsInfo var4 = info();
  658.       if (this.debugLog()) {
  659.          info().log(this.toShortString() + " Drawing text: \"" + var1 + "\" at: " + new Point(var2, var3));
  660.       }
  661.  
  662.       if (this.isDrawingBuffer()) {
  663.          if (this.debugBuffered()) {
  664.             Graphics var5 = this.debugGraphics();
  665.             var5.drawString(var1, var2, var3);
  666.             var5.dispose();
  667.          }
  668.       } else if (this.debugFlash()) {
  669.          Color var8 = this.getColor();
  670.          int var7 = var4.flashCount * 2 - 1;
  671.  
  672.          for(int var6 = 0; var6 < var7; ++var6) {
  673.             this.graphics.setColor(var6 % 2 == 0 ? var4.flashColor : var8);
  674.             this.graphics.drawString(var1, var2, var3);
  675.             Toolkit.getDefaultToolkit().sync();
  676.             this.sleep(var4.flashTime);
  677.          }
  678.  
  679.          this.graphics.setColor(var8);
  680.       }
  681.  
  682.       this.graphics.drawString(var1, var2, var3);
  683.    }
  684.  
  685.    public void drawBytes(byte[] var1, int var2, int var3, int var4, int var5) {
  686.       DebugGraphicsInfo var6 = info();
  687.       Font var7 = this.graphics.getFont();
  688.       if (this.debugLog()) {
  689.          info().log(this.toShortString() + " Drawing bytes at: " + new Point(var4, var5));
  690.       }
  691.  
  692.       if (this.isDrawingBuffer()) {
  693.          if (this.debugBuffered()) {
  694.             Graphics var8 = this.debugGraphics();
  695.             var8.drawBytes(var1, var2, var3, var4, var5);
  696.             var8.dispose();
  697.          }
  698.       } else if (this.debugFlash()) {
  699.          Color var11 = this.getColor();
  700.          int var10 = var6.flashCount * 2 - 1;
  701.  
  702.          for(int var9 = 0; var9 < var10; ++var9) {
  703.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  704.             this.graphics.drawBytes(var1, var2, var3, var4, var5);
  705.             Toolkit.getDefaultToolkit().sync();
  706.             this.sleep(var6.flashTime);
  707.          }
  708.  
  709.          this.graphics.setColor(var11);
  710.       }
  711.  
  712.       this.graphics.drawBytes(var1, var2, var3, var4, var5);
  713.    }
  714.  
  715.    public void drawChars(char[] var1, int var2, int var3, int var4, int var5) {
  716.       DebugGraphicsInfo var6 = info();
  717.       Font var7 = this.graphics.getFont();
  718.       if (this.debugLog()) {
  719.          info().log(this.toShortString() + " Drawing chars at " + new Point(var4, var5));
  720.       }
  721.  
  722.       if (this.isDrawingBuffer()) {
  723.          if (this.debugBuffered()) {
  724.             Graphics var8 = this.debugGraphics();
  725.             var8.drawChars(var1, var2, var3, var4, var5);
  726.             var8.dispose();
  727.          }
  728.       } else if (this.debugFlash()) {
  729.          Color var11 = this.getColor();
  730.          int var10 = var6.flashCount * 2 - 1;
  731.  
  732.          for(int var9 = 0; var9 < var10; ++var9) {
  733.             this.graphics.setColor(var9 % 2 == 0 ? var6.flashColor : var11);
  734.             this.graphics.drawChars(var1, var2, var3, var4, var5);
  735.             Toolkit.getDefaultToolkit().sync();
  736.             this.sleep(var6.flashTime);
  737.          }
  738.  
  739.          this.graphics.setColor(var11);
  740.       }
  741.  
  742.       this.graphics.drawChars(var1, var2, var3, var4, var5);
  743.    }
  744.  
  745.    public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) {
  746.       DebugGraphicsInfo var5 = info();
  747.       if (this.debugLog()) {
  748.          var5.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3));
  749.       }
  750.  
  751.       if (this.isDrawingBuffer()) {
  752.          if (this.debugBuffered()) {
  753.             Graphics var6 = this.debugGraphics();
  754.             var6.drawImage(var1, var2, var3, var4);
  755.             var6.dispose();
  756.          }
  757.       } else if (this.debugFlash()) {
  758.          int var7 = var5.flashCount * 2 - 1;
  759.          ImageProducer var8 = var1.getSource();
  760.          FilteredImageSource var9 = new FilteredImageSource(var8, new DebugGraphicsFilter(var5.flashColor));
  761.          Image var10 = Toolkit.getDefaultToolkit().createImage(var9);
  762.          DebugGraphicsObserver var11 = new DebugGraphicsObserver();
  763.  
  764.          for(int var12 = 0; var12 < var7; ++var12) {
  765.             this.graphics.drawImage(var12 % 2 == 0 ? var10 : var1, var2, var3, var11);
  766.             Toolkit.getDefaultToolkit().sync();
  767.  
  768.             while(!var11.allBitsPresent() && !var11.imageHasProblem()) {
  769.                this.sleep(10);
  770.             }
  771.  
  772.             this.sleep(var5.flashTime);
  773.          }
  774.       }
  775.  
  776.       return this.graphics.drawImage(var1, var2, var3, var4);
  777.    }
  778.  
  779.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) {
  780.       DebugGraphicsInfo var7 = info();
  781.       if (this.debugLog()) {
  782.          var7.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5));
  783.       }
  784.  
  785.       if (this.isDrawingBuffer()) {
  786.          if (this.debugBuffered()) {
  787.             Graphics var8 = this.debugGraphics();
  788.             var8.drawImage(var1, var2, var3, var4, var5, var6);
  789.             var8.dispose();
  790.          }
  791.       } else if (this.debugFlash()) {
  792.          int var9 = var7.flashCount * 2 - 1;
  793.          ImageProducer var10 = var1.getSource();
  794.          FilteredImageSource var11 = new FilteredImageSource(var10, new DebugGraphicsFilter(var7.flashColor));
  795.          Image var12 = Toolkit.getDefaultToolkit().createImage(var11);
  796.          DebugGraphicsObserver var13 = new DebugGraphicsObserver();
  797.  
  798.          for(int var14 = 0; var14 < var9; ++var14) {
  799.             this.graphics.drawImage(var14 % 2 == 0 ? var12 : var1, var2, var3, var4, var5, var13);
  800.             Toolkit.getDefaultToolkit().sync();
  801.  
  802.             while(!var13.allBitsPresent() && !var13.imageHasProblem()) {
  803.                this.sleep(10);
  804.             }
  805.  
  806.             this.sleep(var7.flashTime);
  807.          }
  808.       }
  809.  
  810.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6);
  811.    }
  812.  
  813.    public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) {
  814.       DebugGraphicsInfo var6 = info();
  815.       if (this.debugLog()) {
  816.          var6.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Point(var2, var3) + ", bgcolor: " + var4);
  817.       }
  818.  
  819.       if (this.isDrawingBuffer()) {
  820.          if (this.debugBuffered()) {
  821.             Graphics var7 = this.debugGraphics();
  822.             var7.drawImage(var1, var2, var3, var4, var5);
  823.             var7.dispose();
  824.          }
  825.       } else if (this.debugFlash()) {
  826.          int var8 = var6.flashCount * 2 - 1;
  827.          ImageProducer var9 = var1.getSource();
  828.          FilteredImageSource var10 = new FilteredImageSource(var9, new DebugGraphicsFilter(var6.flashColor));
  829.          Image var11 = Toolkit.getDefaultToolkit().createImage(var10);
  830.          DebugGraphicsObserver var12 = new DebugGraphicsObserver();
  831.  
  832.          for(int var13 = 0; var13 < var8; ++var13) {
  833.             this.graphics.drawImage(var13 % 2 == 0 ? var11 : var1, var2, var3, var4, var12);
  834.             Toolkit.getDefaultToolkit().sync();
  835.  
  836.             while(!var12.allBitsPresent() && !var12.imageHasProblem()) {
  837.                this.sleep(10);
  838.             }
  839.  
  840.             this.sleep(var6.flashTime);
  841.          }
  842.       }
  843.  
  844.       return this.graphics.drawImage(var1, var2, var3, var4, var5);
  845.    }
  846.  
  847.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) {
  848.       DebugGraphicsInfo var8 = info();
  849.       if (this.debugLog()) {
  850.          var8.log(this.toShortString() + " Drawing image: " + var1 + " at: " + new Rectangle(var2, var3, var4, var5) + ", bgcolor: " + var6);
  851.       }
  852.  
  853.       if (this.isDrawingBuffer()) {
  854.          if (this.debugBuffered()) {
  855.             Graphics var9 = this.debugGraphics();
  856.             var9.drawImage(var1, var2, var3, var4, var5, var6, var7);
  857.             var9.dispose();
  858.          }
  859.       } else if (this.debugFlash()) {
  860.          int var10 = var8.flashCount * 2 - 1;
  861.          ImageProducer var11 = var1.getSource();
  862.          FilteredImageSource var12 = new FilteredImageSource(var11, new DebugGraphicsFilter(var8.flashColor));
  863.          Image var13 = Toolkit.getDefaultToolkit().createImage(var12);
  864.          DebugGraphicsObserver var14 = new DebugGraphicsObserver();
  865.  
  866.          for(int var15 = 0; var15 < var10; ++var15) {
  867.             this.graphics.drawImage(var15 % 2 == 0 ? var13 : var1, var2, var3, var4, var5, var6, var14);
  868.             Toolkit.getDefaultToolkit().sync();
  869.  
  870.             while(!var14.allBitsPresent() && !var14.imageHasProblem()) {
  871.                this.sleep(10);
  872.             }
  873.  
  874.             this.sleep(var8.flashTime);
  875.          }
  876.       }
  877.  
  878.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7);
  879.    }
  880.  
  881.    public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) {
  882.       DebugGraphicsInfo var11 = info();
  883.       if (this.debugLog()) {
  884.          var11.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9));
  885.       }
  886.  
  887.       if (this.isDrawingBuffer()) {
  888.          if (this.debugBuffered()) {
  889.             Graphics var12 = this.debugGraphics();
  890.             var12.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  891.             var12.dispose();
  892.          }
  893.       } else if (this.debugFlash()) {
  894.          int var13 = var11.flashCount * 2 - 1;
  895.          ImageProducer var14 = var1.getSource();
  896.          FilteredImageSource var15 = new FilteredImageSource(var14, new DebugGraphicsFilter(var11.flashColor));
  897.          Image var16 = Toolkit.getDefaultToolkit().createImage(var15);
  898.          DebugGraphicsObserver var17 = new DebugGraphicsObserver();
  899.  
  900.          for(int var18 = 0; var18 < var13; ++var18) {
  901.             this.graphics.drawImage(var18 % 2 == 0 ? var16 : var1, var2, var3, var4, var5, var6, var7, var8, var9, var17);
  902.             Toolkit.getDefaultToolkit().sync();
  903.  
  904.             while(!var17.allBitsPresent() && !var17.imageHasProblem()) {
  905.                this.sleep(10);
  906.             }
  907.  
  908.             this.sleep(var11.flashTime);
  909.          }
  910.       }
  911.  
  912.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10);
  913.    }
  914.  
  915.    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) {
  916.       DebugGraphicsInfo var12 = info();
  917.       if (this.debugLog()) {
  918.          var12.log(this.toShortString() + " Drawing image: " + var1 + " destination: " + new Rectangle(var2, var3, var4, var5) + " source: " + new Rectangle(var6, var7, var8, var9) + ", bgcolor: " + var10);
  919.       }
  920.  
  921.       if (this.isDrawingBuffer()) {
  922.          if (this.debugBuffered()) {
  923.             Graphics var13 = this.debugGraphics();
  924.             var13.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  925.             var13.dispose();
  926.          }
  927.       } else if (this.debugFlash()) {
  928.          int var14 = var12.flashCount * 2 - 1;
  929.          ImageProducer var15 = var1.getSource();
  930.          FilteredImageSource var16 = new FilteredImageSource(var15, new DebugGraphicsFilter(var12.flashColor));
  931.          Image var17 = Toolkit.getDefaultToolkit().createImage(var16);
  932.          DebugGraphicsObserver var18 = new DebugGraphicsObserver();
  933.  
  934.          for(int var19 = 0; var19 < var14; ++var19) {
  935.             this.graphics.drawImage(var19 % 2 == 0 ? var17 : var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var18);
  936.             Toolkit.getDefaultToolkit().sync();
  937.  
  938.             while(!var18.allBitsPresent() && !var18.imageHasProblem()) {
  939.                this.sleep(10);
  940.             }
  941.  
  942.             this.sleep(var12.flashTime);
  943.          }
  944.       }
  945.  
  946.       return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11);
  947.    }
  948.  
  949.    public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) {
  950.       if (this.debugLog()) {
  951.          info().log(this.toShortString() + " Copying area from: " + new Rectangle(var1, var2, var3, var4) + " to: " + new Point(var5, var6));
  952.       }
  953.  
  954.       this.graphics.copyArea(var1, var2, var3, var4, var5, var6);
  955.    }
  956.  
  957.    final void sleep(int var1) {
  958.       try {
  959.          Thread.sleep((long)var1);
  960.       } catch (Exception var3) {
  961.       }
  962.  
  963.    }
  964.  
  965.    public void dispose() {
  966.       this.graphics.dispose();
  967.       this.graphics = null;
  968.    }
  969.  
  970.    public boolean isDrawingBuffer() {
  971.       return this.buffer != null;
  972.    }
  973.  
  974.    String toShortString() {
  975.       StringBuffer var1 = new StringBuffer("Graphics" + (this.isDrawingBuffer() ? "<B>" : "") + "(" + this.graphicsID + "-" + this.debugOptions + ")");
  976.       return var1.toString();
  977.    }
  978.  
  979.    String pointToString(int var1, int var2) {
  980.       StringBuffer var3 = new StringBuffer("(" + var1 + ", " + var2 + ")");
  981.       return var3.toString();
  982.    }
  983.  
  984.    public void setDebugOptions(int var1) {
  985.       if (var1 != 0) {
  986.          if (var1 == -1) {
  987.             if (this.debugOptions != 0) {
  988.                System.err.println(this.toShortString() + " Disabling debug");
  989.                this.debugOptions = 0;
  990.             }
  991.          } else if (this.debugOptions != var1) {
  992.             this.debugOptions |= var1;
  993.             if (this.debugLog()) {
  994.                System.err.println(this.toShortString() + " Enabling debug");
  995.             }
  996.          }
  997.       }
  998.  
  999.    }
  1000.  
  1001.    public int getDebugOptions() {
  1002.       return this.debugOptions;
  1003.    }
  1004.  
  1005.    static void setDebugOptions(JComponent var0, int var1) {
  1006.       info().setDebugOptions(var0, var1);
  1007.    }
  1008.  
  1009.    static int getDebugOptions(JComponent var0) {
  1010.       DebugGraphicsInfo var1 = info();
  1011.       return var1 == null ? 0 : var1.getDebugOptions(var0);
  1012.    }
  1013.  
  1014.    static int shouldComponentDebug(JComponent var0) {
  1015.       DebugGraphicsInfo var1 = info();
  1016.       if (var1 == null) {
  1017.          return 0;
  1018.       } else {
  1019.          Object var2 = var0;
  1020.  
  1021.          int var3;
  1022.          for(var3 = 0; var2 != null && var2 instanceof JComponent; var2 = ((Component)var2).getParent()) {
  1023.             var3 |= var1.getDebugOptions((JComponent)var2);
  1024.          }
  1025.  
  1026.          return var3;
  1027.       }
  1028.    }
  1029.  
  1030.    static int debugComponentCount() {
  1031.       DebugGraphicsInfo var0 = info();
  1032.       return var0 != null && var0.componentToDebug != null ? var0.componentToDebug.size() : 0;
  1033.    }
  1034.  
  1035.    boolean debugLog() {
  1036.       return (this.debugOptions & 1) == 1;
  1037.    }
  1038.  
  1039.    boolean debugFlash() {
  1040.       return (this.debugOptions & 2) == 2;
  1041.    }
  1042.  
  1043.    boolean debugBuffered() {
  1044.       return (this.debugOptions & 4) == 4;
  1045.    }
  1046.  
  1047.    private Graphics debugGraphics() {
  1048.       DebugGraphicsInfo var2 = info();
  1049.       if (var2.debugFrame == null) {
  1050.          var2.debugFrame = new JFrame();
  1051.          var2.debugFrame.setSize(500, 500);
  1052.       }
  1053.  
  1054.       JFrame var3 = var2.debugFrame;
  1055.       ((Window)var3).show();
  1056.       DebugGraphics var1 = new DebugGraphics(((Component)var3).getGraphics());
  1057.       var1.setFont(this.getFont());
  1058.       var1.setColor(this.getColor());
  1059.       var1.translate(this.xOffset, this.yOffset);
  1060.       var1.setClip(this.getClipBounds());
  1061.       if (this.debugFlash()) {
  1062.          var1.setDebugOptions(2);
  1063.       }
  1064.  
  1065.       return var1;
  1066.    }
  1067.  
  1068.    static DebugGraphicsInfo info() {
  1069.       DebugGraphicsInfo var0 = (DebugGraphicsInfo)SwingUtilities.appContextGet(debugGraphicsInfoKey);
  1070.       if (var0 == null) {
  1071.          var0 = new DebugGraphicsInfo();
  1072.          SwingUtilities.appContextPut(debugGraphicsInfoKey, var0);
  1073.       }
  1074.  
  1075.       return var0;
  1076.    }
  1077.  
  1078.    // $FF: synthetic method
  1079.    static Class class$(String var0) {
  1080.       try {
  1081.          return Class.forName(var0);
  1082.       } catch (ClassNotFoundException var2) {
  1083.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  1084.       }
  1085.    }
  1086.  
  1087.    static {
  1088.       debugGraphicsInfoKey = class$javax$swing$DebugGraphicsInfo == null ? (class$javax$swing$DebugGraphicsInfo = class$("javax.swing.DebugGraphicsInfo")) : class$javax$swing$DebugGraphicsInfo;
  1089.       if (!SwingUtilities.is1dot2) {
  1090.          System.err.println("warning: running 1.2 version of DebugGraphics");
  1091.       }
  1092.  
  1093.    }
  1094. }
  1095.