001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Anton Avtamonov
020: * @version $Revision$
021: */package javax.swing;
022:
023: import java.awt.Color;
024: import java.awt.Component;
025: import java.awt.Font;
026: import java.awt.FontMetrics;
027: import java.awt.Graphics;
028: import java.awt.Image;
029: import java.awt.Rectangle;
030: import java.awt.Shape;
031: import java.awt.image.ImageObserver;
032: import java.text.AttributedCharacterIterator;
033:
034: class OffscreenGraphics extends Graphics {
035: private final Graphics offscreenGraphics;
036: private final Image offscreenImage;
037:
038: public OffscreenGraphics(final Image image) {
039: offscreenImage = image;
040: offscreenGraphics = offscreenImage.getGraphics();
041: }
042:
043: public Image getImage() {
044: return offscreenImage;
045: }
046:
047: public void setColor(final Color color) {
048: offscreenGraphics.setColor(color);
049: }
050:
051: public Graphics create() {
052: return new OffscreenGraphics(offscreenImage);
053: }
054:
055: public void dispose() {
056: offscreenGraphics.dispose();
057: }
058:
059: public Shape getClip() {
060: return offscreenGraphics.getClip();
061: }
062:
063: public Font getFont() {
064: return offscreenGraphics.getFont();
065: }
066:
067: public FontMetrics getFontMetrics(final Font font) {
068: return offscreenGraphics.getFontMetrics(font);
069: }
070:
071: public void setClip(final Shape clip) {
072: offscreenGraphics.setClip(clip);
073: }
074:
075: public void setClip(final int x, final int y, final int width,
076: final int height) {
077: offscreenGraphics.setClip(x, y, width, height);
078: }
079:
080: public void setFont(final Font font) {
081: offscreenGraphics.setFont(font);
082: }
083:
084: public void translate(final int x, final int y) {
085: offscreenGraphics.translate(x, y);
086: }
087:
088: public void clearRect(final int x, final int y, final int width,
089: final int height) {
090: offscreenGraphics.clearRect(x, y, width, height);
091: }
092:
093: public boolean drawImage(final Image img, final int dx1,
094: final int dy1, final int dx2, final int dy2, final int sx1,
095: final int sy1, final int sx2, final int sy2,
096: final Color bgcolor, final ImageObserver observer) {
097: return offscreenGraphics.drawImage(img, dx1, dy1, dx2, dy2,
098: sx1, sy1, sx2, sy2, bgcolor, observer);
099: }
100:
101: public boolean drawImage(final Image img, final int x, final int y,
102: final ImageObserver observer) {
103: return offscreenGraphics.drawImage(img, x, y, observer);
104: }
105:
106: public boolean drawImage(final Image img, final int x, final int y,
107: final int width, final int height,
108: final ImageObserver observer) {
109: return offscreenGraphics.drawImage(img, x, y, width, height,
110: observer);
111: }
112:
113: public boolean drawImage(final Image img, final int dx1,
114: final int dy1, final int dx2, final int dy2, final int sx1,
115: final int sy1, final int sx2, final int sy2,
116: final ImageObserver observer) {
117: return offscreenGraphics.drawImage(img, dx1, dy1, dx2, dy2,
118: sx1, sy1, sx2, sy2, observer);
119: }
120:
121: public boolean drawImage(final Image img, final int x, final int y,
122: final int width, final int height, final Color bgcolor,
123: final ImageObserver observer) {
124: return offscreenGraphics.drawImage(img, x, y, width, height,
125: bgcolor, observer);
126: }
127:
128: public boolean drawImage(final Image img, final int x, final int y,
129: final Color bgcolor, final ImageObserver observer) {
130: return offscreenGraphics
131: .drawImage(img, x, y, bgcolor, observer);
132: }
133:
134: public void fillRect(final int x, final int y, final int width,
135: final int height) {
136: offscreenGraphics.fillRect(x, y, width, height);
137: }
138:
139: public void clipRect(final int x, final int y, final int width,
140: final int height) {
141: offscreenGraphics.clipRect(x, y, width, height);
142: }
143:
144: public void copyArea(final int x, final int y, final int width,
145: final int height, final int dx, final int dy) {
146: offscreenGraphics.copyArea(x, y, width, height, dx, dy);
147: }
148:
149: public void drawArc(final int x, final int y, final int width,
150: final int height, final int startAngle, final int arcAngle) {
151: offscreenGraphics.drawArc(x, y, width, height, startAngle,
152: arcAngle);
153: }
154:
155: public void drawLine(final int x1, final int y1, final int x2,
156: final int y2) {
157: offscreenGraphics.drawLine(x1, y1, x2, y2);
158: }
159:
160: public void drawOval(final int x, final int y, final int width,
161: final int height) {
162: offscreenGraphics.drawOval(x, y, width, height);
163: }
164:
165: public void drawPolygon(final int[] xPoints, final int[] yPoints,
166: final int nPoints) {
167: offscreenGraphics.drawPolygon(xPoints, yPoints, nPoints);
168: }
169:
170: public void drawPolyline(final int[] xPoints, final int[] yPoints,
171: final int nPoints) {
172: offscreenGraphics.drawPolyline(xPoints, yPoints, nPoints);
173: }
174:
175: public void drawRoundRect(final int x, final int y,
176: final int width, final int height, final int arcWidth,
177: final int arcHeight) {
178: offscreenGraphics.drawRoundRect(x, y, width, height, arcWidth,
179: arcHeight);
180: }
181:
182: public void drawString(final String str, final int x, final int y) {
183: offscreenGraphics.drawString(str, x, y);
184: }
185:
186: public void drawString(final AttributedCharacterIterator iterator,
187: final int x, final int y) {
188: offscreenGraphics.drawString(iterator, x, y);
189: }
190:
191: public void fillArc(final int x, final int y, final int width,
192: final int height, final int startAngle, final int arcAngle) {
193: offscreenGraphics.fillArc(x, y, width, height, startAngle,
194: arcAngle);
195: }
196:
197: public void fillOval(final int x, final int y, final int width,
198: final int height) {
199: offscreenGraphics.fillOval(x, y, width, height);
200: }
201:
202: public void fillPolygon(final int[] xPoints, final int[] yPoints,
203: final int nPoints) {
204: offscreenGraphics.fillPolygon(xPoints, yPoints, nPoints);
205: }
206:
207: public void fillRoundRect(final int x, final int y,
208: final int width, final int height, final int arcWidth,
209: final int arcHeight) {
210: offscreenGraphics.fillRoundRect(x, y, width, height, arcWidth,
211: arcHeight);
212: }
213:
214: public Rectangle getClipBounds() {
215: return offscreenGraphics.getClipBounds();
216: }
217:
218: public Color getColor() {
219: return offscreenGraphics.getColor();
220: }
221:
222: public void setPaintMode() {
223: offscreenGraphics.setPaintMode();
224: }
225:
226: public void setXORMode(final Color color) {
227: offscreenGraphics.setXORMode(color);
228: }
229: }
|