X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Forg%2Fjibble%2Fepsgraphics%2FEpsGraphics2D.java;h=fe6d9623b7f07bafbeb370fda8b18f8daba74383;hb=4f77328104498504339216829abf5ea87e2791ec;hp=313ec1c54c6c540c1c2d342a65549cbc8454d2d7;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git
diff --git a/src/org/jibble/epsgraphics/EpsGraphics2D.java b/src/org/jibble/epsgraphics/EpsGraphics2D.java
index 313ec1c..fe6d962 100644
--- a/src/org/jibble/epsgraphics/EpsGraphics2D.java
+++ b/src/org/jibble/epsgraphics/EpsGraphics2D.java
@@ -119,6 +119,7 @@ import java.util.Map;
*
*/
public class EpsGraphics2D extends java.awt.Graphics2D
+ implements AutoCloseable
{
public static final String VERSION = "0.8.8";
@@ -250,6 +251,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* OutputStream is automatically flushed before being closed. If you forget to
* do this, the file may be incomplete.
*/
+ @Override
public void close() throws IOException
{
flush();
@@ -402,6 +404,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Draws a 3D rectangle outline. If it is raised, light appears to come from
* the top left.
*/
+ @Override
public void draw3DRect(int x, int y, int width, int height, boolean raised)
{
Color originalColor = getColor();
@@ -441,6 +444,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Fills a 3D rectangle. If raised, it has bright fill and light appears to
* come from the top left.
*/
+ @Override
public void fill3DRect(int x, int y, int width, int height, boolean raised)
{
Color originalColor = getColor();
@@ -461,6 +465,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a Shape on the EPS document.
*/
+ @Override
public void draw(Shape s)
{
draw(s, "stroke");
@@ -469,6 +474,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an Image on the EPS document.
*/
+ @Override
public boolean drawImage(Image img, AffineTransform xform,
ImageObserver obs)
{
@@ -482,6 +488,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a BufferedImage on the EPS document.
*/
+ @Override
public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
{
BufferedImage img1 = op.filter(img, null);
@@ -491,6 +498,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a RenderedImage on the EPS document.
*/
+ @Override
public void drawRenderedImage(RenderedImage img, AffineTransform xform)
{
Hashtable properties = new Hashtable();
@@ -513,6 +521,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a RenderableImage by invoking its createDefaultRendering method.
*/
+ @Override
public void drawRenderableImage(RenderableImage img, AffineTransform xform)
{
drawRenderedImage(img.createDefaultRendering(), xform);
@@ -521,6 +530,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a string at (x,y)
*/
+ @Override
public void drawString(String str, int x, int y)
{
drawString(str, (float) x, (float) y);
@@ -529,6 +539,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a string at (x,y)
*/
+ @Override
public void drawString(String s, float x, float y)
{
if (s != null && s.length() > 0)
@@ -543,6 +554,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Draws the characters of an AttributedCharacterIterator, starting from
* (x,y).
*/
+ @Override
public void drawString(AttributedCharacterIterator iterator, int x, int y)
{
drawString(iterator, (float) x, (float) y);
@@ -552,6 +564,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Draws the characters of an AttributedCharacterIterator, starting from
* (x,y).
*/
+ @Override
public void drawString(AttributedCharacterIterator iterator, float x,
float y)
{
@@ -584,6 +597,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a GlyphVector at (x,y)
*/
+ @Override
public void drawGlyphVector(GlyphVector g, float x, float y)
{
Shape shape = g.getOutline(x, y);
@@ -593,6 +607,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills a Shape on the EPS document.
*/
+ @Override
public void fill(Shape s)
{
draw(s, "fill");
@@ -602,6 +617,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Checks whether or not the specified Shape intersects the specified
* Rectangle, which is in device space.
*/
+ @Override
public boolean hit(Rectangle rect, Shape s, boolean onStroke)
{
return s.intersects(rect);
@@ -610,6 +626,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the device configuration associated with this EpsGraphics2D object.
*/
+ @Override
public GraphicsConfiguration getDeviceConfiguration()
{
GraphicsConfiguration gc = null;
@@ -632,6 +649,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Sets the Composite to be used by this EpsGraphics2D. EpsGraphics2D does not
* make use of these.
*/
+ @Override
public void setComposite(Composite comp)
{
_composite = comp;
@@ -641,6 +659,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Sets the Paint attribute for the EpsGraphics2D object. Only Paint objects
* of type Color are respected by EpsGraphics2D.
*/
+ @Override
public void setPaint(Paint paint)
{
_paint = paint;
@@ -654,6 +673,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Sets the stroke. Only accepts BasicStroke objects (or subclasses of
* BasicStroke).
*/
+ @Override
public void setStroke(Stroke s)
{
if (s instanceof BasicStroke)
@@ -688,6 +708,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets a rendering hint. These are not used by EpsGraphics2D.
*/
+ @Override
public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
{
// Do nothing.
@@ -697,6 +718,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Returns the value of a single preference for the rendering algorithms.
* Rendering hints are not used by EpsGraphics2D.
*/
+ @Override
public Object getRenderingHint(RenderingHints.Key hintKey)
{
return null;
@@ -705,6 +727,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the rendering hints. These are ignored by EpsGraphics2D.
*/
+ @Override
public void setRenderingHints(Map hints)
{
// Do nothing.
@@ -713,6 +736,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Adds rendering hints. These are ignored by EpsGraphics2D.
*/
+ @Override
public void addRenderingHints(Map hints)
{
// Do nothing.
@@ -721,6 +745,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the preferences for the rendering algorithms.
*/
+ @Override
public RenderingHints getRenderingHints()
{
return new RenderingHints(null);
@@ -730,6 +755,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Translates the origin of the EpsGraphics2D context to the point (x,y) in
* the current coordinate system.
*/
+ @Override
public void translate(int x, int y)
{
translate((double) x, (double) y);
@@ -739,6 +765,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Concatenates the current EpsGraphics2D Transformation with a translation
* transform.
*/
+ @Override
public void translate(double tx, double ty)
{
transform(AffineTransform.getTranslateInstance(tx, ty));
@@ -747,6 +774,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Concatenates the current EpsGraphics2D Transform with a rotation transform.
*/
+ @Override
public void rotate(double theta)
{
rotate(theta, 0, 0);
@@ -756,6 +784,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Concatenates the current EpsGraphics2D Transform with a translated rotation
* transform.
*/
+ @Override
public void rotate(double theta, double x, double y)
{
transform(AffineTransform.getRotateInstance(theta, x, y));
@@ -765,6 +794,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Concatenates the current EpsGraphics2D Transform with a scaling
* transformation.
*/
+ @Override
public void scale(double sx, double sy)
{
transform(AffineTransform.getScaleInstance(sx, sy));
@@ -773,6 +803,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Concatenates the current EpsGraphics2D Transform with a shearing transform.
*/
+ @Override
public void shear(double shx, double shy)
{
transform(AffineTransform.getShearInstance(shx, shy));
@@ -782,6 +813,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Composes an AffineTransform object with the Transform in this EpsGraphics2D
* according to the rule last-specified-first-applied.
*/
+ @Override
public void transform(AffineTransform Tx)
{
_transform.concatenate(Tx);
@@ -791,6 +823,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the AffineTransform to be used by this EpsGraphics2D.
*/
+ @Override
public void setTransform(AffineTransform Tx)
{
if (Tx == null)
@@ -809,6 +842,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Gets the AffineTransform used by this EpsGraphics2D.
*/
+ @Override
public AffineTransform getTransform()
{
return new AffineTransform(_transform);
@@ -817,6 +851,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the current Paint of the EpsGraphics2D object.
*/
+ @Override
public Paint getPaint()
{
return _paint;
@@ -825,6 +860,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* returns the current Composite of the EpsGraphics2D object.
*/
+ @Override
public Composite getComposite()
{
return _composite;
@@ -833,6 +869,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the background color to be used by the clearRect method.
*/
+ @Override
public void setBackground(Color color)
{
if (color == null)
@@ -845,6 +882,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Gets the background color that is used by the clearRect method.
*/
+ @Override
public Color getBackground()
{
return _backgroundColor;
@@ -854,6 +892,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Returns the Stroke currently used. Guaranteed to be an instance of
* BasicStroke.
*/
+ @Override
public Stroke getStroke()
{
return _stroke;
@@ -863,6 +902,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Intersects the current clip with the interior of the specified Shape and
* sets the clip to the resulting intersection.
*/
+ @Override
public void clip(Shape s)
{
if (_clip == null)
@@ -880,6 +920,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the FontRenderContext.
*/
+ @Override
public FontRenderContext getFontRenderContext()
{
return _fontRenderContext;
@@ -890,6 +931,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns a new Graphics object that is identical to this EpsGraphics2D.
*/
+ @Override
public Graphics create()
{
return new EpsGraphics2D(this);
@@ -899,6 +941,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Returns an EpsGraphics2D object based on this Graphics object, but with a
* new translation and clip area.
*/
+ @Override
public Graphics create(int x, int y, int width, int height)
{
Graphics g = create();
@@ -911,6 +954,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Returns the current Color. This will be a default value (black) until it is
* changed using the setColor method.
*/
+ @Override
public Color getColor()
{
return _color;
@@ -919,6 +963,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the Color to be used when drawing all future shapes, text, etc.
*/
+ @Override
public void setColor(Color c)
{
if (c == null)
@@ -934,6 +979,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Sets the paint mode of this EpsGraphics2D object to overwrite the
* destination EpsDocument with the current color.
*/
+ @Override
public void setPaintMode()
{
// Do nothing - paint mode is the only method supported anyway.
@@ -943,6 +989,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Not implemented - performs no
* action.
*/
+ @Override
public void setXORMode(Color c1)
{
methodNotSupported();
@@ -951,6 +998,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the Font currently being used.
*/
+ @Override
public Font getFont()
{
return _font;
@@ -959,6 +1007,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the Font to be used in future text.
*/
+ @Override
public void setFont(Font font)
{
if (font == null)
@@ -966,13 +1015,14 @@ public class EpsGraphics2D extends java.awt.Graphics2D
font = Font.decode(null);
}
_font = font;
- append("/" + _font.getPSName() + " findfont " + ((int) _font.getSize())
+ append("/" + _font.getPSName() + " findfont " + (_font.getSize())
+ " scalefont setfont");
}
/**
* Gets the font metrics of the current font.
*/
+ @Override
public FontMetrics getFontMetrics()
{
return getFontMetrics(getFont());
@@ -981,6 +1031,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Gets the font metrics for the specified font.
*/
+ @Override
public FontMetrics getFontMetrics(Font f)
{
BufferedImage image = new BufferedImage(1, 1,
@@ -992,6 +1043,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the bounding rectangle of the current clipping area.
*/
+ @Override
public Rectangle getClipBounds()
{
if (_clip == null)
@@ -1005,6 +1057,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Intersects the current clip with the specified rectangle.
*/
+ @Override
public void clipRect(int x, int y, int width, int height)
{
clip(new Rectangle(x, y, width, height));
@@ -1013,6 +1066,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the current clip to the rectangle specified by the given coordinates.
*/
+ @Override
public void setClip(int x, int y, int width, int height)
{
setClip(new Rectangle(x, y, width, height));
@@ -1021,6 +1075,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Gets the current clipping area.
*/
+ @Override
public Shape getClip()
{
if (_clip == null)
@@ -1046,6 +1101,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Sets the current clipping area to an arbitrary clip shape.
*/
+ @Override
public void setClip(Shape clip)
{
if (clip != null)
@@ -1079,6 +1135,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Not implemented - performs no
* action.
*/
+ @Override
public void copyArea(int x, int y, int width, int height, int dx, int dy)
{
methodNotSupported();
@@ -1087,6 +1144,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a straight line from (x1,y1) to (x2,y2).
*/
+ @Override
public void drawLine(int x1, int y1, int x2, int y2)
{
Shape shape = new Line2D.Float(x1, y1, x2, y2);
@@ -1096,6 +1154,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills a rectangle with top-left corner placed at (x,y).
*/
+ @Override
public void fillRect(int x, int y, int width, int height)
{
Shape shape = new Rectangle(x, y, width, height);
@@ -1105,6 +1164,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a rectangle with top-left corner placed at (x,y).
*/
+ @Override
public void drawRect(int x, int y, int width, int height)
{
Shape shape = new Rectangle(x, y, width, height);
@@ -1115,6 +1175,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Clears a rectangle with top-left corner placed at (x,y) using the current
* background color.
*/
+ @Override
public void clearRect(int x, int y, int width, int height)
{
Color originalColor = getColor();
@@ -1129,6 +1190,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a rounded rectangle.
*/
+ @Override
public void drawRoundRect(int x, int y, int width, int height,
int arcWidth, int arcHeight)
{
@@ -1140,6 +1202,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills a rounded rectangle.
*/
+ @Override
public void fillRoundRect(int x, int y, int width, int height,
int arcWidth, int arcHeight)
{
@@ -1151,6 +1214,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an oval.
*/
+ @Override
public void drawOval(int x, int y, int width, int height)
{
Shape shape = new Ellipse2D.Float(x, y, width, height);
@@ -1160,6 +1224,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills an oval.
*/
+ @Override
public void fillOval(int x, int y, int width, int height)
{
Shape shape = new Ellipse2D.Float(x, y, width, height);
@@ -1169,6 +1234,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an arc.
*/
+ @Override
public void drawArc(int x, int y, int width, int height, int startAngle,
int arcAngle)
{
@@ -1180,6 +1246,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills an arc.
*/
+ @Override
public void fillArc(int x, int y, int width, int height, int startAngle,
int arcAngle)
{
@@ -1191,6 +1258,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a polyline.
*/
+ @Override
public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
{
if (nPoints > 0)
@@ -1208,6 +1276,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a polygon made with the specified points.
*/
+ @Override
public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
{
Shape shape = new Polygon(xPoints, yPoints, nPoints);
@@ -1217,6 +1286,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws a polygon.
*/
+ @Override
public void drawPolygon(Polygon p)
{
draw(p);
@@ -1225,6 +1295,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills a polygon made with the specified points.
*/
+ @Override
public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
{
Shape shape = new Polygon(xPoints, yPoints, nPoints);
@@ -1234,6 +1305,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Fills a polygon.
*/
+ @Override
public void fillPolygon(Polygon p)
{
draw(p, "fill");
@@ -1242,6 +1314,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws the specified characters, starting from (x,y)
*/
+ @Override
public void drawChars(char[] data, int offset, int length, int x, int y)
{
String string = new String(data, offset, length);
@@ -1251,6 +1324,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws the specified bytes, starting from (x,y)
*/
+ @Override
public void drawBytes(byte[] data, int offset, int length, int x, int y)
{
String string = new String(data, offset, length);
@@ -1260,6 +1334,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int x, int y, ImageObserver observer)
{
return drawImage(img, x, y, Color.white, observer);
@@ -1268,6 +1343,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int x, int y, int width, int height,
ImageObserver observer)
{
@@ -1277,6 +1353,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int x, int y, Color bgcolor,
ImageObserver observer)
{
@@ -1288,6 +1365,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int x, int y, int width, int height,
Color bgcolor, ImageObserver observer)
{
@@ -1298,6 +1376,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
{
@@ -1308,6 +1387,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Draws an image.
*/
+ @Override
public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2,
int sx1, int sy1, int sx2, int sy2, Color bgcolor,
ImageObserver observer)
@@ -1403,24 +1483,29 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* only remaining EpsGraphics2D instance pointing at a EpsDocument object,
* then the EpsDocument object shall become eligible for garbage collection.
*/
+ @Override
public void dispose()
{
_document = null;
}
+ /* bsoares 2019-03-20
+ * finalize is now deprecated. Implementing AutoCloseable instead
/**
* Finalizes the object.
- */
+ @Override
public void finalize()
{
super.finalize();
}
+ */
/**
* Returns the entire contents of the EPS document, complete with headers and
* bounding box. The returned String is suitable for being written directly to
* disk as an EPS file.
*/
+ @Override
public String toString()
{
StringWriter writer = new StringWriter();
@@ -1440,6 +1525,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
* Returns true if the specified rectangular area might intersect the current
* clipping area.
*/
+ @Override
public boolean hitClip(int x, int y, int width, int height)
{
if (_clip == null)
@@ -1453,6 +1539,7 @@ public class EpsGraphics2D extends java.awt.Graphics2D
/**
* Returns the bounding rectangle of the current clipping area.
*/
+ @Override
public Rectangle getClipBounds(Rectangle r)
{
if (_clip == null)