home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.sun.java.swing; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; import java.awt.image.ImageObserver; import java.util.Vector; class SwingGraphics extends Graphics { Graphics graphics; Rectangle clipRect; static final int poolSize = 20; private static int needsSetClip = -1; private static final Object graphicsPoolKey; // $FF: synthetic field static Class class$com$sun$java$swing$SwingGraphics; public Graphics create() { return createSwingGraphics(this.graphics.create()); } Graphics subGraphics() { return this.graphics; } SwingGraphics(Graphics var1) { this.init(var1); } void init(Graphics var1) { if (var1 == null) { Thread.currentThread(); Thread.dumpStack(); } this.graphics = var1; this.clipRect = var1.getClipBounds(); if (this.clipRect == null) { this.clipRect = new Rectangle(0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE); } } public static SwingGraphics createSwingGraphics(Graphics var0) { if (var0 == null) { return null; } else if (var0 instanceof SwingGraphics) { return (SwingGraphics)var0; } else { SwingGraphics var1 = getRecycledSwingGraphics(); if (var1 != null) { var1.init(var0); } else { var1 = new SwingGraphics(var0); } return var1; } } public Graphics create(int var1, int var2, int var3, int var4) { return createSwingGraphics(createGraphics(this.graphics, var1, var2, var3, var4)); } static Graphics createGraphics(Graphics var0, int var1, int var2, int var3, int var4) { Graphics var5 = var0.create(var1, var2, var3, var4); if (needsSetClip != 0) { Rectangle var6 = var0.getClipBounds(); int var7 = var6.x > var1 ? var6.x - var1 : 0; int var8 = var6.y > var2 ? var6.y - var2 : 0; int var9 = Math.min(var1 + var3, var6.x + var6.width) - Math.max(var1, var6.x); int var10 = Math.min(var2 + var4, var6.y + var6.height) - Math.max(var2, var6.y); if (needsSetClip == -1 && (var1 > 0 || var2 > 0)) { Rectangle var11 = var5.getClipBounds(); if (var11.x == var7 && var11.y == var8 && var11.width == var9 && var11.height == var10) { needsSetClip = 0; } else { needsSetClip = 1; } } var5.setClip(var7, var8, var9, var10); } return var5; } public void translate(int var1, int var2) { this.graphics.translate(var1, var2); } public Color getColor() { return this.graphics.getColor(); } public void setColor(Color var1) { this.graphics.setColor(var1); } public void setPaintMode() { this.graphics.setPaintMode(); } public void setXORMode(Color var1) { this.graphics.setXORMode(var1); } public Font getFont() { return this.graphics.getFont(); } public void setFont(Font var1) { this.graphics.setFont(var1); } public FontMetrics getFontMetrics(Font var1) { return this.graphics.getFontMetrics(var1); } public Rectangle getClipBounds() { return this.graphics.getClipBounds(); } public boolean isClipIntersecting(Rectangle var1) { if (this.clipRect.x < var1.x + var1.width && this.clipRect.x + this.clipRect.width > var1.x && this.clipRect.y < var1.y + var1.height && this.clipRect.y + this.clipRect.height > var1.y) { return this.clipRect.width != 0 && this.clipRect.height != 0 && var1.width != 0 && var1.height != 0; } else { return false; } } public int getClipX() { return this.clipRect.x; } public int getClipY() { return this.clipRect.y; } public int getClipWidth() { return this.clipRect.width; } public int getClipHeight() { return this.clipRect.height; } public void clipRect(int var1, int var2, int var3, int var4) { this.graphics.clipRect(var1, var2, var3, var4); this._changeClip(var1, var2, var3, var4, false); } public void setClip(int var1, int var2, int var3, int var4) { this.graphics.setClip(var1, var2, var3, var4); this._changeClip(var1, var2, var3, var4, true); } public Shape getClip() { return this.graphics.getClip(); } public void setClip(Shape var1) { this.graphics.setClip(var1); if (var1 instanceof Rectangle) { Rectangle var2 = (Rectangle)var1; this._changeClip(var2.x, var2.y, var2.width, var2.height, true); } } public void copyArea(int var1, int var2, int var3, int var4, int var5, int var6) { this.graphics.copyArea(var1, var2, var3, var4, var5, var6); } public void drawLine(int var1, int var2, int var3, int var4) { this.graphics.drawLine(var1, var2, var3, var4); } public void fillRect(int var1, int var2, int var3, int var4) { this.graphics.fillRect(var1, var2, var3, var4); } public void clearRect(int var1, int var2, int var3, int var4) { this.graphics.clearRect(var1, var2, var3, var4); } public void drawRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) { this.graphics.drawRoundRect(var1, var2, var3, var4, var5, var6); } public void fillRoundRect(int var1, int var2, int var3, int var4, int var5, int var6) { this.graphics.fillRoundRect(var1, var2, var3, var4, var5, var6); } public void drawOval(int var1, int var2, int var3, int var4) { this.graphics.drawOval(var1, var2, var3, var4); } public void fillOval(int var1, int var2, int var3, int var4) { this.graphics.fillOval(var1, var2, var3, var4); } public void drawArc(int var1, int var2, int var3, int var4, int var5, int var6) { this.graphics.drawArc(var1, var2, var3, var4, var5, var6); } public void fillArc(int var1, int var2, int var3, int var4, int var5, int var6) { this.graphics.fillArc(var1, var2, var3, var4, var5, var6); } public void drawPolyline(int[] var1, int[] var2, int var3) { this.graphics.drawPolyline(var1, var2, var3); } public void drawPolygon(int[] var1, int[] var2, int var3) { this.graphics.drawPolygon(var1, var2, var3); } public void fillPolygon(int[] var1, int[] var2, int var3) { this.graphics.fillPolygon(var1, var2, var3); } public void drawString(String var1, int var2, int var3) { this.graphics.drawString(var1, var2, var3); } public boolean drawImage(Image var1, int var2, int var3, ImageObserver var4) { return this.graphics.drawImage(var1, var2, var3, var4); } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, ImageObserver var6) { return this.graphics.drawImage(var1, var2, var3, var4, var5, var6); } public boolean drawImage(Image var1, int var2, int var3, Color var4, ImageObserver var5) { return this.graphics.drawImage(var1, var2, var3, var4, var5); } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, Color var6, ImageObserver var7) { return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7); } public boolean drawImage(Image var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, ImageObserver var10) { return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10); } 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) { return this.graphics.drawImage(var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11); } public void dispose() { if (this.graphics != null) { this.graphics.dispose(); this.graphics = null; } this.recycle(); } public void recycle() { this.graphics = null; recycleSwingGraphics(this); } private void _changeClip(int var1, int var2, int var3, int var4, boolean var5) { if (var5) { this.clipRect.x = var1; this.clipRect.y = var2; this.clipRect.width = var3; this.clipRect.height = var4; } else { SwingUtilities.computeIntersection(var1, var2, var3, var4, this.clipRect); } } private static synchronized void recycleSwingGraphics(SwingGraphics var0) { Vector var1 = (Vector)SwingUtilities.appContextGet(graphicsPoolKey); if (var1 == null) { var1 = new Vector(20); SwingUtilities.appContextPut(graphicsPoolKey, var1); } if (var1.size() < 20) { var1.addElement(var0); } } private static synchronized SwingGraphics getRecycledSwingGraphics() { SwingGraphics var1 = null; Vector var2 = (Vector)SwingUtilities.appContextGet(graphicsPoolKey); if (var2 == null) { return null; } else { int var0; if ((var0 = var2.size()) > 0) { var1 = (SwingGraphics)var2.elementAt(var0 - 1); var2.removeElementAt(var0 - 1); } return var1; } } // $FF: synthetic method static Class class$(String var0) { try { return Class.forName(var0); } catch (ClassNotFoundException var2) { throw new NoClassDefFoundError(((Throwable)var2).getMessage()); } } static { graphicsPoolKey = class$com$sun$java$swing$SwingGraphics != null ? class$com$sun$java$swing$SwingGraphics : (class$com$sun$java$swing$SwingGraphics = class$("com.sun.java.swing.SwingGraphics")); } }