1 /*******************************************************************************
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
14 * @author Toni Kalajainen
16 package org.simantics.g2d.chassis;
18 import java.awt.Color;
19 import java.awt.Composite;
21 import java.awt.FontMetrics;
22 import java.awt.Graphics;
23 import java.awt.Graphics2D;
24 import java.awt.GraphicsConfiguration;
25 import java.awt.Image;
26 import java.awt.Paint;
27 import java.awt.Rectangle;
28 import java.awt.RenderingHints;
29 import java.awt.Shape;
30 import java.awt.Stroke;
31 import java.awt.RenderingHints.Key;
32 import java.awt.font.FontRenderContext;
33 import java.awt.font.GlyphVector;
34 import java.awt.geom.AffineTransform;
35 import java.awt.image.BufferedImage;
36 import java.awt.image.BufferedImageOp;
37 import java.awt.image.ImageObserver;
38 import java.awt.image.RenderedImage;
39 import java.awt.image.renderable.RenderableImage;
40 import java.text.AttributedCharacterIterator;
43 public class GraphicsAdapter extends Graphics2D {
45 public final Graphics2D g;
47 public GraphicsAdapter(Graphics2D g)
54 public void addRenderingHints(Map<?, ?> hints) {
55 g.addRenderingHints(hints);
59 public void clip(Shape s) {
64 public void draw(Shape s) {
69 public void drawGlyphVector(GlyphVector g, float x, float y) {
70 this.g.drawGlyphVector(g, x, y);
74 public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {
75 return g.drawImage(img, xform, obs);
79 public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {
80 g.drawImage(img, op, x, y);
84 public void drawRenderableImage(RenderableImage img, AffineTransform xform) {
85 g.drawRenderableImage(img, xform);
89 public void drawRenderedImage(RenderedImage img, AffineTransform xform) {
90 g.drawRenderedImage(img, xform);
94 public void drawString(String str, int x, int y) {
95 g.drawString(str, x, y);
99 public void drawString(String str, float x, float y) {
100 g.drawString(str, x, y);
104 public void drawString(AttributedCharacterIterator iterator, int x, int y) {
105 g.drawString(iterator, x, y);
109 public void drawString(AttributedCharacterIterator iterator, float x, float y) {
110 g.drawString(iterator, x, y);
114 public void fill(Shape s) {
119 public Color getBackground() {
120 return g.getBackground();
124 public Composite getComposite() {
125 return g.getComposite();
129 public GraphicsConfiguration getDeviceConfiguration() {
130 return g.getDeviceConfiguration();
134 public FontRenderContext getFontRenderContext() {
135 return g.getFontRenderContext();
139 public Paint getPaint() {
144 public Object getRenderingHint(Key hintKey) {
145 return g.getRenderingHint(hintKey);
149 public RenderingHints getRenderingHints() {
150 return g.getRenderingHints();
154 public Stroke getStroke() {
155 return g.getStroke();
159 public AffineTransform getTransform() {
160 return g.getTransform();
164 public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
165 return g.hit(rect, s, onStroke);
169 public void rotate(double theta) {
174 public void rotate(double theta, double x, double y) {
175 g.rotate(theta, x, y);
179 public void scale(double sx, double sy) {
184 public void setBackground(Color color) {
185 g.setBackground(color);
189 public void setComposite(Composite comp) {
190 g.setComposite(comp);
194 public void setPaint(Paint paint) {
199 public void setRenderingHint(Key hintKey, Object hintValue) {
200 g.setRenderingHint(hintKey, hintValue);
204 public void setRenderingHints(Map<?, ?> hints) {
205 g.setRenderingHints(hints);
209 public void setStroke(Stroke s) {
214 public void setTransform(AffineTransform Tx) {
219 public void shear(double shx, double shy) {
224 public void transform(AffineTransform Tx) {
229 public void translate(int x, int y) {
234 public void translate(double tx, double ty) {
239 public void clearRect(int x, int y, int width, int height) {
240 g.clearRect(x, y, width, height);
244 public void clipRect(int x, int y, int width, int height) {
245 g.clearRect(x, y, width, height);
249 public void copyArea(int x, int y, int width, int height, int dx, int dy) {
250 g.copyArea(x, y, width, height, dx, dy);
254 public Graphics create() {
259 public void dispose() {
263 public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
264 g.drawArc(x, y, width, height, startAngle, arcAngle);
268 public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
269 return g.drawImage(img, x, y, observer);
273 public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) {
274 return g.drawImage(img, x, y, bgcolor, observer);
278 public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {
279 return g.drawImage(img, x, y, width, height, observer);
283 public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) {
284 return g.drawImage(img, x, y, width, height, bgcolor, observer);
288 public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
289 ImageObserver observer) {
290 return g.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);
294 public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
295 Color bgcolor, ImageObserver observer) {
296 return g.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer);
300 public void drawLine(int x1, int y1, int x2, int y2) {
301 g.drawLine(x1, y1, x2, y2);
305 public void drawOval(int x, int y, int width, int height) {
306 g.drawOval(x, y, width, height);
310 public void drawPolygon(int[] points, int[] points2, int points3) {
311 g.drawPolygon(points, points2, points3);
315 public void drawPolyline(int[] points, int[] points2, int points3) {
316 g.drawPolyline(points, points2, points3);
320 public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
321 g.drawRoundRect(x, y, width, height, arcWidth, arcHeight);
325 public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
326 g.fillArc(x, y, width, height, startAngle, arcAngle);
330 public void fillOval(int x, int y, int width, int height) {
331 g.fillOval(x, y, width, height);
335 public void fillPolygon(int[] points, int[] points2, int points3) {
336 g.fillPolygon(points, points2, points3);
340 public void fillRect(int x, int y, int width, int height) {
341 g.fillRect(x, y, width, height);
345 public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
346 g.fillRoundRect(x, y, width, height, arcWidth, arcHeight);
350 public Shape getClip() {
355 public Rectangle getClipBounds() {
356 return g.getClipBounds();
360 public Color getColor() {
365 public Font getFont() {
370 public FontMetrics getFontMetrics(Font f) {
371 return g.getFontMetrics(f);
375 public void setClip(Shape clip) {
380 public void setClip(int x, int y, int width, int height) {
381 g.setClip(x, y, width, height);
385 public void setColor(Color c) {
390 public void setFont(Font font) {
395 public void setPaintMode() {
400 public void setXORMode(Color c1) {