/* * Copyright (C) 2014 Alec Dhuse * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package co.foldingmap.graphicsSupport; import java.awt.RenderingHints.Key; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.ImageObserver; import java.awt.image.RenderedImage; import java.awt.image.renderable.RenderableImage; import java.text.AttributedCharacterIterator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.junit.Ignore; /** * This class is used when testing Objects that require a Graphics2D class. * * @author Alec */ @Ignore public class Graphics2DTest extends Graphics2D { public AffineTransform affineTransform; public Color backgroundColor, drawColor; public FontMetrics fontMetrics; public RenderingHints renderingHints; public Stroke stroke; public Graphics2DTest() { super(); affineTransform = new AffineTransform(); renderingHints = new RenderingHints(new HashMap<RenderingHints.Key,Object>()); } @Override public void draw(Shape shape) { } @Override public boolean drawImage(Image image, AffineTransform at, ImageObserver io) { return true; } @Override public void drawImage(BufferedImage bi, BufferedImageOp bio, int i, int i1) { } @Override public void drawRenderedImage(RenderedImage ri, AffineTransform at) { } @Override public void drawRenderableImage(RenderableImage ri, AffineTransform at) { } @Override public void drawString(String string, int i, int i1) { } @Override public void drawString(String string, float f, float f1) { } @Override public void drawString(AttributedCharacterIterator aci, int i, int i1) { } @Override public void drawString(AttributedCharacterIterator aci, float f, float f1) { } @Override public void drawGlyphVector(GlyphVector gv, float f, float f1) { } @Override public void fill(Shape shape) { } @Override public boolean hit(Rectangle rctngl, Shape shape, boolean bln) { return true; } @Override public GraphicsConfiguration getDeviceConfiguration() { System.out.println("Grapgics2DTest.getDeviceConfiguration() called"); return null; } @Override public void setComposite(Composite cmpst) { } @Override public void setPaint(Paint paint) { } @Override public void setStroke(Stroke stroke) { this.stroke = stroke; } @Override public void setRenderingHint(Key key, Object o) { renderingHints.put(key, o); } @Override public Object getRenderingHint(Key key) { return renderingHints.get(key); } @Override public void setRenderingHints(Map<?, ?> map) { HashMap hashMap = new HashMap(map); renderingHints = new RenderingHints(hashMap); } @Override public void addRenderingHints(Map<?, ?> map) { HashMap hashMap = new HashMap(map); Set set = hashMap.entrySet(); Iterator it = set.iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); renderingHints.put(entry.getKey(), entry.getValue()); } } @Override public RenderingHints getRenderingHints() { return renderingHints; } @Override public void translate(int i, int i1) { } @Override public void translate(double d, double d1) { } @Override public void rotate(double d) { } @Override public void rotate(double d, double d1, double d2) { } @Override public void scale(double d, double d1) { } @Override public void shear(double d, double d1) { } @Override public void transform(AffineTransform at) { } @Override public void setTransform(AffineTransform at) { } @Override public AffineTransform getTransform() { return null; } @Override public Paint getPaint() { System.out.println("Grpahics2DText.getPaint() called"); return null; } @Override public Composite getComposite() { System.out.println("Grpahics2DText.getComposite() called"); return null; } @Override public void setBackground(Color color) { this.backgroundColor = color; } @Override public Color getBackground() { return this.backgroundColor; } @Override public Stroke getStroke() { return this.stroke; } @Override public void clip(Shape shape) { } @Override public FontRenderContext getFontRenderContext() { boolean isAntiAliased, usesFractionalMetrics; FontRenderContext fontRenderContext; if (renderingHints.containsKey(RenderingHints.KEY_ANTIALIASING)) { Object aaObject = renderingHints.get(RenderingHints.KEY_ANTIALIASING); if (aaObject.equals(RenderingHints.VALUE_ANTIALIAS_ON)) { isAntiAliased = true; } else { isAntiAliased = false; } } else { isAntiAliased = false; } if (renderingHints.containsKey(RenderingHints.KEY_FRACTIONALMETRICS)) { Object fractObj = renderingHints.get(RenderingHints.KEY_FRACTIONALMETRICS); if (fractObj.equals(RenderingHints.VALUE_FRACTIONALMETRICS_ON)) { usesFractionalMetrics = true; } else { usesFractionalMetrics = false; } } else { usesFractionalMetrics = false; } fontRenderContext = new FontRenderContext(affineTransform, isAntiAliased, usesFractionalMetrics); return fontRenderContext; } @Override public Graphics create() { return this; } @Override public Color getColor() { return this.drawColor; } @Override public void setColor(Color color) { this.drawColor = color; } @Override public void setPaintMode() { } @Override public void setXORMode(Color color) { } @Override public Font getFont() { return this.fontMetrics.getFont(); } @Override public void setFont(Font font) { this.fontMetrics = new FontMetricsTest(font); } @Override public FontMetrics getFontMetrics(Font font) { this.fontMetrics = new FontMetricsTest(font); return fontMetrics; } @Override public Rectangle getClipBounds() { return null; } @Override public void clipRect(int i, int i1, int i2, int i3) { } @Override public void setClip(int i, int i1, int i2, int i3) { } @Override public Shape getClip() { return null; } @Override public void setClip(Shape shape) { } @Override public void copyArea(int i, int i1, int i2, int i3, int i4, int i5) { } @Override public void drawLine(int i, int i1, int i2, int i3) { } @Override public void fillRect(int i, int i1, int i2, int i3) { } @Override public void clearRect(int i, int i1, int i2, int i3) { } @Override public void drawRoundRect(int i, int i1, int i2, int i3, int i4, int i5) { } @Override public void fillRoundRect(int i, int i1, int i2, int i3, int i4, int i5) { } @Override public void drawOval(int i, int i1, int i2, int i3) { } @Override public void fillOval(int i, int i1, int i2, int i3) { } @Override public void drawArc(int i, int i1, int i2, int i3, int i4, int i5) { } @Override public void fillArc(int i, int i1, int i2, int i3, int i4, int i5) { } @Override public void drawPolyline(int[] ints, int[] ints1, int i) { } @Override public void drawPolygon(int[] ints, int[] ints1, int i) { } @Override public void fillPolygon(int[] ints, int[] ints1, int i) { } @Override public boolean drawImage(Image image, int i, int i1, ImageObserver io) { return true; } @Override public boolean drawImage(Image image, int i, int i1, int i2, int i3, ImageObserver io) { return true; } @Override public boolean drawImage(Image image, int i, int i1, Color color, ImageObserver io) { return true; } @Override public boolean drawImage(Image image, int i, int i1, int i2, int i3, Color color, ImageObserver io) { return true; } @Override public boolean drawImage(Image image, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7, ImageObserver io) { return true; } @Override public boolean drawImage(Image image, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7, Color color, ImageObserver io) { return true; } @Override public void dispose() { } }