]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.g2d/src/org/simantics/g2d/chassis/DebugGraphics.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / chassis / DebugGraphics.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 /*\r
13  *\r
14  * @author Toni Kalajainen\r
15  */\r
16 package org.simantics.g2d.chassis;\r
17 \r
18 import java.awt.Color;\r
19 import java.awt.Composite;\r
20 import java.awt.Font;\r
21 import java.awt.FontMetrics;\r
22 import java.awt.Graphics;\r
23 import java.awt.Graphics2D;\r
24 import java.awt.GraphicsConfiguration;\r
25 import java.awt.Image;\r
26 import java.awt.Paint;\r
27 import java.awt.Rectangle;\r
28 import java.awt.RenderingHints;\r
29 import java.awt.Shape;\r
30 import java.awt.Stroke;\r
31 import java.awt.RenderingHints.Key;\r
32 import java.awt.font.FontRenderContext;\r
33 import java.awt.font.GlyphVector;\r
34 import java.awt.geom.AffineTransform;\r
35 import java.awt.image.BufferedImage;\r
36 import java.awt.image.BufferedImageOp;\r
37 import java.awt.image.ImageObserver;\r
38 import java.awt.image.RenderedImage;\r
39 import java.awt.image.renderable.RenderableImage;\r
40 import java.io.PrintStream;\r
41 import java.text.AttributedCharacterIterator;\r
42 import java.util.Arrays;\r
43 import java.util.Map;\r
44 \r
45 public class DebugGraphics extends GraphicsAdapter {\r
46 \r
47     public final PrintStream o;\r
48     \r
49     public DebugGraphics(Graphics2D g, PrintStream out)\r
50     {\r
51         super(g);\r
52         this.o = out;\r
53     }\r
54 \r
55     public DebugGraphics(Graphics2D g)\r
56     {\r
57         super(g);\r
58         this.o = System.out;\r
59     }\r
60 \r
61     public void print(Object ... args)\r
62     {\r
63         StackTraceElement[] e = Thread.currentThread().getStackTrace();\r
64         o.print( e[2].getMethodName() );\r
65         if (args!=null && args.length>0) {\r
66             o.print(Arrays.toString(args));\r
67         }\r
68         o.println();\r
69     }\r
70     \r
71     @Override\r
72     public void addRenderingHints(Map<?, ?> hints) {\r
73         print();\r
74         super.addRenderingHints(hints);\r
75     }\r
76 \r
77     @Override\r
78     public void clip(Shape s) {\r
79         print();\r
80         super.clip(s);\r
81     }\r
82 \r
83     @Override\r
84     public void draw(Shape s) {\r
85         print(s);\r
86         super.draw(s);\r
87     }\r
88 \r
89     @Override\r
90     public void drawGlyphVector(GlyphVector g, float x, float y) {\r
91         super.drawGlyphVector(g, x, y);\r
92         print(g, x, y);\r
93     }\r
94 \r
95     @Override\r
96     public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {\r
97         print(img, xform, obs);\r
98         return g.drawImage(img, xform, obs);\r
99     }\r
100 \r
101     @Override\r
102     public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {\r
103         print(img, op, x, y);\r
104         super.drawImage(img, op, x, y);\r
105     }\r
106 \r
107     @Override\r
108     public void drawRenderableImage(RenderableImage img, AffineTransform xform) {\r
109         print(img, xform);\r
110         super.drawRenderableImage(img, xform);\r
111     }\r
112 \r
113     @Override\r
114     public void drawRenderedImage(RenderedImage img, AffineTransform xform) {\r
115         print(img, xform);\r
116         super.drawRenderedImage(img, xform);\r
117     }\r
118 \r
119     @Override\r
120     public void drawString(String str, int x, int y) {\r
121         print(str, x, y);\r
122         super.drawString(str, x, y);\r
123     }\r
124 \r
125     @Override\r
126     public void drawString(String str, float x, float y) {\r
127         print(str, x, y);\r
128         super.drawString(str, x, y);\r
129     }\r
130 \r
131     @Override\r
132     public void drawString(AttributedCharacterIterator iterator, int x, int y) {\r
133         print(iterator, x, y);\r
134         super.drawString(iterator, x, y);\r
135     }\r
136 \r
137     @Override\r
138     public void drawString(AttributedCharacterIterator iterator, float x, float y) {\r
139         print(iterator, x, y);\r
140         super.drawString(iterator, x, y);\r
141     }\r
142 \r
143     @Override\r
144     public void fill(Shape s) {\r
145         print(s);\r
146         super.fill(s);\r
147     }\r
148 \r
149     @Override\r
150     public Color getBackground() {\r
151         print();\r
152         return g.getBackground();\r
153     }\r
154 \r
155     @Override\r
156     public Composite getComposite() {\r
157         print();\r
158         return g.getComposite();\r
159     }\r
160 \r
161     @Override\r
162     public GraphicsConfiguration getDeviceConfiguration() {\r
163         print();\r
164         return g.getDeviceConfiguration();\r
165     }\r
166 \r
167     @Override\r
168     public FontRenderContext getFontRenderContext() {\r
169         print();\r
170         return g.getFontRenderContext();\r
171     }\r
172 \r
173     @Override\r
174     public Paint getPaint() {\r
175         print();\r
176         return g.getPaint();\r
177     }\r
178 \r
179     @Override\r
180     public Object getRenderingHint(Key hintKey) {\r
181         print(hintKey);\r
182         return g.getRenderingHint(hintKey);\r
183     }\r
184 \r
185     @Override\r
186     public RenderingHints getRenderingHints() {\r
187         print();\r
188         return g.getRenderingHints();\r
189     }\r
190 \r
191     @Override\r
192     public Stroke getStroke() {\r
193         print();\r
194         return g.getStroke();\r
195     }\r
196 \r
197     @Override\r
198     public AffineTransform getTransform() {\r
199         print();\r
200         return g.getTransform();\r
201     }\r
202 \r
203     @Override\r
204     public boolean hit(Rectangle rect, Shape s, boolean onStroke) {\r
205         print(rect, s, onStroke);\r
206         return g.hit(rect, s, onStroke);\r
207     }\r
208 \r
209     @Override\r
210     public void rotate(double theta) {\r
211         print(theta);\r
212         super.rotate(theta);\r
213     }\r
214 \r
215     @Override\r
216     public void rotate(double theta, double x, double y) {\r
217         print(theta, x, y);\r
218         super.rotate(theta, x, y);\r
219     }\r
220 \r
221     @Override\r
222     public void scale(double sx, double sy) {\r
223         print(sx, sy);\r
224         super.scale(sx, sy);\r
225     }\r
226 \r
227     @Override\r
228     public void setBackground(Color color) {\r
229         print(color);\r
230         super.setBackground(color);\r
231     }\r
232 \r
233     @Override\r
234     public void setComposite(Composite comp) {\r
235         print(comp);\r
236         super.setComposite(comp);\r
237     }\r
238 \r
239     @Override\r
240     public void setPaint(Paint paint) {\r
241         print(paint);\r
242         super.setPaint(paint);\r
243     }\r
244 \r
245     @Override\r
246     public void setRenderingHint(Key hintKey, Object hintValue) {\r
247         print(hintKey, hintValue);\r
248         super.setRenderingHint(hintKey, hintValue);\r
249     }\r
250 \r
251     @Override\r
252     public void setRenderingHints(Map<?, ?> hints) { \r
253         print(hints);\r
254         super.setRenderingHints(hints);\r
255     }\r
256 \r
257     @Override\r
258     public void setStroke(Stroke s) {\r
259         print(s);\r
260         super.setStroke(s);\r
261     }\r
262 \r
263     @Override\r
264     public void setTransform(AffineTransform Tx) {\r
265         print(Tx);\r
266         super.setTransform(Tx);\r
267     }\r
268 \r
269     @Override\r
270     public void shear(double shx, double shy) {\r
271         print(shx, shy);\r
272         super.shear(shx, shy);\r
273     }\r
274 \r
275     @Override\r
276     public void transform(AffineTransform Tx) {\r
277         print(Tx);\r
278         super.transform(Tx);\r
279     }\r
280 \r
281     @Override\r
282     public void translate(int x, int y) {\r
283         print(x, y);\r
284         super.translate(x, y);\r
285     }\r
286 \r
287     @Override\r
288     public void translate(double tx, double ty) {\r
289         print(tx, ty);\r
290         super.translate(tx, ty);\r
291     }\r
292 \r
293     @Override\r
294     public void clearRect(int x, int y, int width, int height) {\r
295         print(x, y, width, height);\r
296         super.clearRect(x, y, width, height);\r
297     }\r
298 \r
299     @Override\r
300     public void clipRect(int x, int y, int width, int height) {\r
301         print(x, y, width, height);\r
302         super.clearRect(x, y, width, height);\r
303     }\r
304 \r
305     @Override\r
306     public void copyArea(int x, int y, int width, int height, int dx, int dy) {\r
307         print(x, y, width, height, dx, dy);\r
308         super.copyArea(x, y, width, height, dx, dy);\r
309     }\r
310 \r
311     @Override\r
312     public Graphics create() {\r
313         print();\r
314         return new DebugGraphics((Graphics2D) g.create());\r
315     }\r
316 \r
317     @Override\r
318     public void dispose() {\r
319         print();\r
320         super.dispose();\r
321     }\r
322 \r
323     @Override\r
324     public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) {\r
325         print(x, y, width, height, startAngle, arcAngle);\r
326         super.drawArc(x, y, width, height, startAngle, arcAngle);\r
327     }\r
328 \r
329     @Override\r
330     public boolean drawImage(Image img, int x, int y, ImageObserver observer) {\r
331         print(img, x, y, observer);\r
332         return g.drawImage(img, x, y, observer);\r
333     }\r
334 \r
335     @Override\r
336     public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) {\r
337         print(img, x, y, bgcolor, observer);\r
338         return g.drawImage(img, x, y, bgcolor, observer);\r
339     }\r
340 \r
341     @Override\r
342     public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {\r
343         print(img, x, y, width, height, observer);\r
344         return g.drawImage(img, x, y, width, height, observer);\r
345     }\r
346 \r
347     @Override\r
348     public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) {\r
349         print(img, x, y, width, height, bgcolor, observer);\r
350         return g.drawImage(img, x, y, width, height, bgcolor, observer);\r
351     }\r
352 \r
353     @Override\r
354     public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,\r
355             ImageObserver observer) {        \r
356         print(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);\r
357         return g.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);\r
358     }\r
359 \r
360     @Override\r
361     public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,\r
362             Color bgcolor, ImageObserver observer) {\r
363         print(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer);\r
364         return g.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer);\r
365     }\r
366 \r
367     @Override\r
368     public void drawLine(int x1, int y1, int x2, int y2) {\r
369         print(x1, y1, x2, y2);\r
370         super.drawLine(x1, y1, x2, y2);\r
371     }\r
372 \r
373     @Override\r
374     public void drawOval(int x, int y, int width, int height) {\r
375         print(x, y, width, height);\r
376         super.drawOval(x, y, width, height);\r
377     }\r
378 \r
379     @Override\r
380     public void drawPolygon(int[] points, int[] points2, int points3) {\r
381         print(points, points2, points3);\r
382         super.drawPolygon(points, points2, points3);\r
383     }\r
384 \r
385     @Override\r
386     public void drawPolyline(int[] points, int[] points2, int points3) {\r
387         print(points, points2, points3);\r
388         super.drawPolyline(points, points2, points3);\r
389     }\r
390 \r
391     @Override\r
392     public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {\r
393         print(x, y, width, height, arcWidth, arcHeight);\r
394         super.drawRoundRect(x, y, width, height, arcWidth, arcHeight);\r
395     }\r
396 \r
397     @Override\r
398     public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) {\r
399         print(x, y, width, height, startAngle, arcAngle);\r
400         super.fillArc(x, y, width, height, startAngle, arcAngle);\r
401     }\r
402 \r
403     @Override\r
404     public void fillOval(int x, int y, int width, int height) {\r
405         print(x, y, width, height);\r
406         super.fillOval(x, y, width, height);\r
407     }\r
408 \r
409     @Override\r
410     public void fillPolygon(int[] points, int[] points2, int points3) {\r
411         print(points, points2, points3);\r
412         super.fillPolygon(points, points2, points3);\r
413     }\r
414 \r
415     @Override\r
416     public void fillRect(int x, int y, int width, int height) {\r
417         print(x, y, width, height);\r
418         super.fillRect(x, y, width, height);\r
419     }\r
420 \r
421     @Override\r
422     public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {\r
423         print(x, y, width, height, arcWidth, arcHeight);\r
424         super.fillRoundRect(x, y, width, height, arcWidth, arcHeight);\r
425     }\r
426 \r
427     @Override\r
428     public Shape getClip() {\r
429         print();\r
430         return g.getClip();\r
431     }\r
432 \r
433     @Override\r
434     public Rectangle getClipBounds() {\r
435         print();\r
436         return g.getClipBounds();\r
437     }\r
438 \r
439     @Override\r
440     public Color getColor() {\r
441         print();\r
442         return g.getColor();\r
443     }\r
444 \r
445     @Override\r
446     public Font getFont() {\r
447         print();\r
448         return g.getFont();\r
449     }\r
450 \r
451     @Override\r
452     public FontMetrics getFontMetrics(Font f) {\r
453         print();\r
454         return g.getFontMetrics(f);\r
455     }\r
456 \r
457     @Override\r
458     public void setClip(Shape clip) {\r
459         print(clip);\r
460         super.setClip(clip);\r
461     }\r
462 \r
463     @Override\r
464     public void setClip(int x, int y, int width, int height) {\r
465         print(x, y, width, height);\r
466         super.setClip(x, y, width, height);\r
467     }\r
468 \r
469     @Override\r
470     public void setColor(Color c) {\r
471         print(c);\r
472         super.setColor(c);\r
473     }\r
474 \r
475     @Override\r
476     public void setFont(Font font) {\r
477         print(font);\r
478         super.setFont(font);\r
479     }\r
480 \r
481     @Override\r
482     public void setPaintMode() {\r
483         print();\r
484         super.setPaintMode();\r
485     }\r
486 \r
487     @Override\r
488     public void setXORMode(Color c1) {\r
489         print(c1);\r
490         super.setXORMode(c1);\r
491     }\r
492 \r
493 }\r