From 86c72f59dabff2653a5d5ef2caf441e899665eb4 Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Mon, 12 Oct 2015 20:43:42 +0000 Subject: - removed deprecated and confusing methods in XSSFColor - sonar fixes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1708236 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/usermodel/DummyGraphics2d.java | 1022 ++++++++++---------- .../poi/hssf/usermodel/StaticFontMetrics.java | 118 ++- .../apache/poi/ss/usermodel/FractionFormat.java | 26 +- 3 files changed, 605 insertions(+), 561 deletions(-) (limited to 'src/java/org') diff --git a/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java b/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java index 3baefb6913..cfe5bf6c9e 100644 --- a/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java +++ b/src/java/org/apache/poi/hssf/usermodel/DummyGraphics2d.java @@ -18,7 +18,21 @@ package org.apache.poi.hssf.usermodel; -import java.awt.*; +import java.awt.BasicStroke; +import java.awt.Color; +import java.awt.Composite; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GraphicsConfiguration; +import java.awt.Image; +import java.awt.Paint; +import java.awt.Polygon; +import java.awt.Rectangle; +import java.awt.RenderingHints; +import java.awt.Shape; +import java.awt.Stroke; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; @@ -27,775 +41,785 @@ import java.awt.image.BufferedImageOp; import java.awt.image.ImageObserver; import java.awt.image.RenderedImage; import java.awt.image.renderable.RenderableImage; +import java.io.PrintStream; import java.text.AttributedCharacterIterator; import java.util.Arrays; import java.util.Map; -public class DummyGraphics2d - extends Graphics2D -{ +public class DummyGraphics2d extends Graphics2D { private BufferedImage bufimg; - private Graphics2D g2D; + private final Graphics2D g2D; + private final PrintStream log; - public DummyGraphics2d() - { + public DummyGraphics2d() { + this(System.out); + } + + public DummyGraphics2d(PrintStream log) { bufimg = new BufferedImage(1000, 1000, 2); g2D = (Graphics2D)bufimg.getGraphics(); + this.log = log; + } + + public DummyGraphics2d(PrintStream log, Graphics2D g2D) { + this.g2D = g2D; + this.log = log; } - public void addRenderingHints(Map hints) - { - System.out.println( "addRenderingHinds(Map):" ); - System.out.println( " hints = " + hints ); + public void addRenderingHints(Map hints) { + String l = + "addRenderingHinds(Map):" + + "\n hints = " + hints; + log.println( l ); g2D.addRenderingHints( hints ); } - public void clip(Shape s) - { - System.out.println( "clip(Shape):" ); - System.out.println( " s = " + s ); + public void clip(Shape s) { + String l = + "clip(Shape):" + + "\n s = " + s; + log.println( l ); g2D.clip( s ); } - public void draw(Shape s) - { - System.out.println( "draw(Shape):" ); - System.out.println( "s = " + s ); + public void draw(Shape s) { + String l = + "draw(Shape):" + + "\n s = " + s; + log.println( l ); g2D.draw( s ); } - public void drawGlyphVector(GlyphVector g, float x, float y) - { - System.out.println( "drawGlyphVector(GlyphVector, float, float):" ); - System.out.println( "g = " + g ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawGlyphVector(GlyphVector g, float x, float y) { + String l = + "drawGlyphVector(GlyphVector, float, float):" + + "\n g = " + g + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawGlyphVector( g, x, y ); } - public void drawImage(BufferedImage img, - BufferedImageOp op, - int x, - int y) - { - System.out.println( "drawImage(BufferedImage, BufferedImageOp, x, y):" ); - System.out.println( "img = " + img ); - System.out.println( "op = " + op ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) { + String l = + "drawImage(BufferedImage, BufferedImageOp, x, y):" + + "\n img = " + img + + "\n op = " + op + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawImage( img, op, x, y ); } - public boolean drawImage(Image img, - AffineTransform xform, - ImageObserver obs) - { - System.out.println( "drawImage(Image,AfflineTransform,ImageObserver):" ); - System.out.println( "img = " + img ); - System.out.println( "xform = " + xform ); - System.out.println( "obs = " + obs ); + public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { + String l = + "drawImage(Image,AfflineTransform,ImageObserver):" + + "\n img = " + img + + "\n xform = " + xform + + "\n obs = " + obs; + log.println( l ); return g2D.drawImage( img, xform, obs ); } - public void drawRenderableImage(RenderableImage img, - AffineTransform xform) - { - System.out.println( "drawRenderableImage(RenderableImage, AfflineTransform):" ); - System.out.println( "img = " + img ); - System.out.println( "xform = " + xform ); + public void drawRenderableImage(RenderableImage img, AffineTransform xform) { + String l = + "drawRenderableImage(RenderableImage, AfflineTransform):" + + "\n img = " + img + + "\n xform = " + xform; + log.println( l ); g2D.drawRenderableImage( img, xform ); } - public void drawRenderedImage(RenderedImage img, - AffineTransform xform) - { - System.out.println( "drawRenderedImage(RenderedImage, AffineTransform):" ); - System.out.println( "img = " + img ); - System.out.println( "xform = " + xform ); + public void drawRenderedImage(RenderedImage img, AffineTransform xform) { + String l = + "drawRenderedImage(RenderedImage, AffineTransform):" + + "\n img = " + img + + "\n xform = " + xform; + log.println( l ); g2D.drawRenderedImage( img, xform ); } - public void drawString(AttributedCharacterIterator iterator, - float x, float y) - { - System.out.println( "drawString(AttributedCharacterIterator):" ); - System.out.println( "iterator = " + iterator ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawString(AttributedCharacterIterator iterator, float x, float y) { + String l = + "drawString(AttributedCharacterIterator):" + + "\n iterator = " + iterator + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawString( iterator, x, y ); } -// public void drawString(AttributedCharacterIterator iterator, -// int x, int y) -// { -// g2D.drawString( iterator, x, y ); -// } - - public void drawString(String s, float x, float y) - { - System.out.println( "drawString(s,x,y):" ); - System.out.println( "s = " + s ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawString(String s, float x, float y) { + String l = + "drawString(s,x,y):" + + "\n s = " + s + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawString( s, x, y ); } -// public void drawString(String str, int x, int y) -// { -// g2D.drawString( str, x, y ); -// } - - public void fill(Shape s) - { - System.out.println( "fill(Shape):" ); - System.out.println( "s = " + s ); + public void fill(Shape s) { + String l = + "fill(Shape):" + + "\n s = " + s; + log.println( l ); g2D.fill( s ); } -// public void fill3DRect(int x, int y, int width, int height, -// boolean raised) { -// g2D.fill3DRect( x, y, width, height, raised ); -// } - - public Color getBackground() - { - System.out.println( "getBackground():" ); + public Color getBackground() { + log.println( "getBackground():" ); return g2D.getBackground(); } - public Composite getComposite() - { - System.out.println( "getComposite():" ); + public Composite getComposite() { + log.println( "getComposite():" ); return g2D.getComposite(); } - public GraphicsConfiguration getDeviceConfiguration() - { - System.out.println( "getDeviceConfiguration():" ); + public GraphicsConfiguration getDeviceConfiguration() { + log.println( "getDeviceConfiguration():" ); return g2D.getDeviceConfiguration(); } - public FontRenderContext getFontRenderContext() - { - System.out.println( "getFontRenderContext():" ); + public FontRenderContext getFontRenderContext() { + log.println( "getFontRenderContext():" ); return g2D.getFontRenderContext(); } - public Paint getPaint() - { - System.out.println( "getPaint():" ); + public Paint getPaint() { + log.println( "getPaint():" ); return g2D.getPaint(); } - public Object getRenderingHint(RenderingHints.Key hintKey) - { - System.out.println( "getRenderingHint(RenderingHints.Key):" ); - System.out.println( "hintKey = " + hintKey ); + public Object getRenderingHint(RenderingHints.Key hintKey) { + String l = + "getRenderingHint(RenderingHints.Key):" + + "\n hintKey = " + hintKey; + log.println( l ); return g2D.getRenderingHint( hintKey ); } - public RenderingHints getRenderingHints() - { - System.out.println( "getRenderingHints():" ); + public RenderingHints getRenderingHints() { + log.println( "getRenderingHints():" ); return g2D.getRenderingHints(); } - public Stroke getStroke() - { - System.out.println( "getStroke():" ); + public Stroke getStroke() { + log.println( "getStroke():" ); return g2D.getStroke(); } - public AffineTransform getTransform() - { - System.out.println( "getTransform():" ); + public AffineTransform getTransform() { + log.println( "getTransform():" ); return g2D.getTransform(); } - public boolean hit(Rectangle rect, - Shape s, - boolean onStroke) - { - System.out.println( "hit(Rectangle, Shape, onStroke):" ); - System.out.println( "rect = " + rect ); - System.out.println( "s = " + s ); - System.out.println( "onStroke = " + onStroke ); + public boolean hit(Rectangle rect, Shape s, boolean onStroke) { + String l = + "hit(Rectangle, Shape, onStroke):" + + "\n rect = " + rect + + "\n s = " + s + + "\n onStroke = " + onStroke; + log.println( l ); return g2D.hit( rect, s, onStroke ); } - public void rotate(double theta) - { - System.out.println( "rotate(theta):" ); - System.out.println( "theta = " + theta ); + public void rotate(double theta) { + String l = + "rotate(theta):" + + "\n theta = " + theta; + log.println( l ); g2D.rotate( theta ); } - public void rotate(double theta, double x, double y) - { - System.out.println( "rotate(double,double,double):" ); - System.out.println( "theta = " + theta ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void rotate(double theta, double x, double y) { + String l = + "rotate(double,double,double):" + + "\n theta = " + theta + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.rotate( theta, x, y ); } - public void scale(double sx, double sy) - { - System.out.println( "scale(double,double):" ); - System.out.println( "sx = " + sx ); - System.out.println( "sy" ); + public void scale(double sx, double sy) { + String l = + "scale(double,double):" + + "\n sx = " + sx + + "\n sy"; + log.println( l ); g2D.scale( sx, sy ); } - public void setBackground(Color color) - { - System.out.println( "setBackground(Color):" ); - System.out.println( "color = " + color ); + public void setBackground(Color color) { + String l = + "setBackground(Color):" + + "\n color = " + color; + log.println( l ); g2D.setBackground( color ); } - public void setComposite(Composite comp) - { - System.out.println( "setComposite(Composite):" ); - System.out.println( "comp = " + comp ); + public void setComposite(Composite comp) { + String l = + "setComposite(Composite):" + + "\n comp = " + comp; + log.println( l ); g2D.setComposite( comp ); } - public void setPaint( Paint paint ) - { - System.out.println( "setPaint(Paint):" ); - System.out.println( "paint = " + paint ); + public void setPaint( Paint paint ) { + String l = + "setPaint(Paint):" + + "\n paint = " + paint; + log.println( l ); g2D.setPaint( paint ); } - public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) - { - System.out.println( "setRenderingHint(RenderingHints.Key, Object):" ); - System.out.println( "hintKey = " + hintKey ); - System.out.println( "hintValue = " + hintValue ); + public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) { + String l = + "setRenderingHint(RenderingHints.Key, Object):" + + "\n hintKey = " + hintKey + + "\n hintValue = " + hintValue; + log.println( l ); g2D.setRenderingHint( hintKey, hintValue ); } - public void setRenderingHints(Map hints) - { - System.out.println( "setRenderingHints(Map):" ); - System.out.println( "hints = " + hints ); + public void setRenderingHints(Map hints) { + String l = + "setRenderingHints(Map):" + + "\n hints = " + hints; + log.println( l ); g2D.setRenderingHints( hints ); } - public void setStroke(Stroke s) - { - System.out.println( "setStroke(Stoke):" ); + public void setStroke(Stroke s) { + String l; if (s instanceof BasicStroke) { BasicStroke bs = (BasicStroke)s; - StringBuilder str = new StringBuilder("s = BasicStroke("); - str.append("dash[]: "+Arrays.toString(bs.getDashArray())+", "); - str.append("dashPhase: "+bs.getDashPhase()+", "); - str.append("endCap: "+bs.getEndCap()+", "); - str.append("lineJoin: "+bs.getLineJoin()+", "); - str.append("width: "+bs.getLineWidth()+", "); - str.append("miterLimit: "+bs.getMiterLimit()+")"); - System.out.println(str.toString()); + l = "setStroke(Stoke):" + + "\n s = BasicStroke(" + + "\n dash[]: "+Arrays.toString(bs.getDashArray()) + + "\n dashPhase: "+bs.getDashPhase() + + "\n endCap: "+bs.getEndCap() + + "\n lineJoin: "+bs.getLineJoin() + + "\n width: "+bs.getLineWidth() + + "\n miterLimit: "+bs.getMiterLimit() + + "\n )"; } else { - System.out.println( "s = " + s ); + l = "setStroke(Stoke):" + + "\n s = " + s; } + log.println( l ); g2D.setStroke( s ); } - public void setTransform(AffineTransform Tx) - { - System.out.println( "setTransform():" ); - System.out.println( "Tx = " + Tx ); + public void setTransform(AffineTransform Tx) { + String l = + "setTransform():" + + "\n Tx = " + Tx; + log.println( l ); g2D.setTransform( Tx ); } - public void shear(double shx, double shy) - { - System.out.println( "shear(shx, dhy):" ); - System.out.println( "shx = " + shx ); - System.out.println( "shy = " + shy ); + public void shear(double shx, double shy) { + String l = + "shear(shx, dhy):" + + "\n shx = " + shx + + "\n shy = " + shy; + log.println( l ); g2D.shear( shx, shy ); } - public void transform(AffineTransform Tx) - { - System.out.println( "transform(AffineTransform):" ); - System.out.println( "Tx = " + Tx ); + public void transform(AffineTransform Tx) { + String l = + "transform(AffineTransform):" + + "\n Tx = " + Tx; + log.println( l ); g2D.transform( Tx ); } - public void translate(double tx, double ty) - { - System.out.println( "translate(double, double):" ); - System.out.println( "tx = " + tx ); - System.out.println( "ty = " + ty ); + public void translate(double tx, double ty) { + String l = + "translate(double, double):" + + "\n tx = " + tx + + "\n ty = " + ty; + log.println( l ); g2D.translate( tx, ty ); } -// public void translate(int x, int y) -// { -// g2D.translate( x, y ); -// } - - public void clearRect(int x, int y, int width, int height) - { - System.out.println( "clearRect(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void clearRect(int x, int y, int width, int height) { + String l = + "clearRect(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.clearRect( x, y, width, height ); } - public void clipRect(int x, int y, int width, int height) - { - System.out.println( "clipRect(int, int, int, int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void clipRect(int x, int y, int width, int height) { + String l = + "clipRect(int, int, int, int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "height = " + height; + log.println( l ); g2D.clipRect( x, y, width, height ); } - public void copyArea(int x, int y, int width, int height, - int dx, int dy) - { - System.out.println( "copyArea(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void copyArea(int x, int y, int width, int height, int dx, int dy) { + String l = + "copyArea(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.copyArea( x, y, width, height, dx, dy ); } - public Graphics create() - { - System.out.println( "create():" ); + public Graphics create() { + log.println( "create():" ); return g2D.create(); } public Graphics create(int x, int y, int width, int height) { - System.out.println( "create(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + String l = + "create(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); return g2D.create( x, y, width, height ); } - public void dispose() - { - System.out.println( "dispose():" ); + public void dispose() { + log.println( "dispose():" ); g2D.dispose(); } - public void draw3DRect(int x, int y, int width, int height, - boolean raised) { - System.out.println( "draw3DRect(int,int,int,int,boolean):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "raised = " + raised ); + public void draw3DRect(int x, int y, int width, int height, boolean raised) { + String l = + "draw3DRect(int,int,int,int,boolean):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n raised = " + raised; + log.println( l ); g2D.draw3DRect( x, y, width, height, raised ); } - public void drawArc(int x, int y, int width, int height, - int startAngle, int arcAngle) - { - System.out.println( "drawArc(int,int,int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "startAngle = " + startAngle ); - System.out.println( "arcAngle = " + arcAngle ); + public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) { + String l = + "drawArc(int,int,int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n startAngle = " + startAngle + + "\n arcAngle = " + arcAngle; + log.println( l ); g2D.drawArc( x, y, width, height, startAngle, arcAngle ); } public void drawBytes(byte data[], int offset, int length, int x, int y) { - System.out.println( "drawBytes(byte[],int,int,int,int):" ); - System.out.println( "data = " + Arrays.toString(data) ); - System.out.println( "offset = " + offset ); - System.out.println( "length = " + length ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + String l = + "drawBytes(byte[],int,int,int,int):" + + "\n data = " + Arrays.toString(data) + + "\n offset = " + offset + + "\n length = " + length + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawBytes( data, offset, length, x, y ); } public void drawChars(char data[], int offset, int length, int x, int y) { - System.out.println( "drawChars(data,int,int,int,int):" ); - System.out.println( "data = " + Arrays.toString(data) ); - System.out.println( "offset = " + offset ); - System.out.println( "length = " + length ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + String l = + "drawChars(data,int,int,int,int):" + + "\n data = " + Arrays.toString(data) + + "\n offset = " + offset + + "\n length = " + length + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawChars( data, offset, length, x, y ); } - public boolean drawImage(Image img, - int dx1, int dy1, int dx2, int dy2, - int sx1, int sy1, int sx2, int sy2, - ImageObserver observer) - { - System.out.println( "drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver):" ); - System.out.println( "img = " + img ); - System.out.println( "dx1 = " + dx1 ); - System.out.println( "dy1 = " + dy1 ); - System.out.println( "dx2 = " + dx2 ); - System.out.println( "dy2 = " + dy2 ); - System.out.println( "sx1 = " + sx1 ); - System.out.println( "sy1 = " + sy1 ); - System.out.println( "sx2 = " + sx2 ); - System.out.println( "sy2 = " + sy2 ); - System.out.println( "observer = " + observer ); + public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { + String l = + "drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver):" + + "\n img = " + img + + "\n dx1 = " + dx1 + + "\n dy1 = " + dy1 + + "\n dx2 = " + dx2 + + "\n dy2 = " + dy2 + + "\n sx1 = " + sx1 + + "\n sy1 = " + sy1 + + "\n sx2 = " + sx2 + + "\n sy2 = " + sy2 + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer ); } - 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) - { - System.out.println( "drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver):" ); - System.out.println( "img = " + img ); - System.out.println( "dx1 = " + dx1 ); - System.out.println( "dy1 = " + dy1 ); - System.out.println( "dx2 = " + dx2 ); - System.out.println( "dy2 = " + dy2 ); - System.out.println( "sx1 = " + sx1 ); - System.out.println( "sy1 = " + sy1 ); - System.out.println( "sx2 = " + sx2 ); - System.out.println( "sy2 = " + sy2 ); - System.out.println( "bgcolor = " + bgcolor ); - System.out.println( "observer = " + observer ); + 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) { + String l = + "drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver):" + + "\n img = " + img + + "\n dx1 = " + dx1 + + "\n dy1 = " + dy1 + + "\n dx2 = " + dx2 + + "\n dy2 = " + dy2 + + "\n sx1 = " + sx1 + + "\n sy1 = " + sy1 + + "\n sx2 = " + sx2 + + "\n sy2 = " + sy2 + + "\n bgcolor = " + bgcolor + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer ); } - public boolean drawImage(Image img, int x, int y, - Color bgcolor, - ImageObserver observer) - { - System.out.println( "drawImage(Image,int,int,Color,ImageObserver):" ); - System.out.println( "img = " + img ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "bgcolor = " + bgcolor ); - System.out.println( "observer = " + observer ); + public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) { + String l = + "drawImage(Image,int,int,Color,ImageObserver):" + + "\n img = " + img + + "\n x = " + x + + "\n y = " + y + + "\n bgcolor = " + bgcolor + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, x, y, bgcolor, observer ); } - public boolean drawImage(Image img, int x, int y, - ImageObserver observer) - { - System.out.println( "drawImage(Image,int,int,observer):" ); - System.out.println( "img = " + img ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "observer = " + observer ); + public boolean drawImage(Image img, int x, int y, ImageObserver observer) { + String l = + "drawImage(Image,int,int,observer):" + + "\n img = " + img + + "\n x = " + x + + "\n y = " + y + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, x, y, observer ); } - public boolean drawImage(Image img, int x, int y, - int width, int height, - Color bgcolor, - ImageObserver observer) - { - System.out.println( "drawImage(Image,int,int,int,int,Color,ImageObserver):" ); - System.out.println( "img = " + img ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "bgcolor = " + bgcolor ); - System.out.println( "observer = " + observer ); + public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) { + String l = + "drawImage(Image,int,int,int,int,Color,ImageObserver):" + + "\n img = " + img + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n bgcolor = " + bgcolor + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, x, y, width, height, bgcolor, observer ); } - public boolean drawImage(Image img, int x, int y, - int width, int height, - ImageObserver observer) - { - System.out.println( "drawImage(Image,int,int,width,height,observer):" ); - System.out.println( "img = " + img ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "observer = " + observer ); + public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { + String l = + "drawImage(Image,int,int,width,height,observer):" + + "\n img = " + img + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n observer = " + observer; + log.println( l ); return g2D.drawImage( img, x, y, width, height, observer ); } - public void drawLine(int x1, int y1, int x2, int y2) - { - System.out.println( "drawLine(int,int,int,int):" ); - System.out.println( "x1 = " + x1 ); - System.out.println( "y1 = " + y1 ); - System.out.println( "x2 = " + x2 ); - System.out.println( "y2 = " + y2 ); + public void drawLine(int x1, int y1, int x2, int y2) { + String l = + "drawLine(int,int,int,int):" + + "\n x1 = " + x1 + + "\n y1 = " + y1 + + "\n x2 = " + x2 + + "\n y2 = " + y2; + log.println( l ); g2D.drawLine( x1, y1, x2, y2 ); } - public void drawOval(int x, int y, int width, int height) - { - System.out.println( "drawOval(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void drawOval(int x, int y, int width, int height) { + String l = + "drawOval(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.drawOval( x, y, width, height ); } public void drawPolygon(Polygon p) { - System.out.println( "drawPolygon(Polygon):" ); - System.out.println( "p = " + p ); + String l = + "drawPolygon(Polygon):" + + "\n p = " + p; + log.println( l ); g2D.drawPolygon( p ); } - public void drawPolygon(int xPoints[], int yPoints[], - int nPoints) - { - System.out.println( "drawPolygon(int[],int[],int):" ); - System.out.println( "xPoints = " + Arrays.toString(xPoints) ); - System.out.println( "yPoints = " + Arrays.toString(yPoints) ); - System.out.println( "nPoints = " + nPoints ); + public void drawPolygon(int xPoints[], int yPoints[], int nPoints) { + String l = + "drawPolygon(int[],int[],int):" + + "\n xPoints = " + Arrays.toString(xPoints) + + "\n yPoints = " + Arrays.toString(yPoints) + + "\n nPoints = " + nPoints; + log.println( l ); g2D.drawPolygon( xPoints, yPoints, nPoints ); } - public void drawPolyline(int xPoints[], int yPoints[], - int nPoints) - { - System.out.println( "drawPolyline(int[],int[],int):" ); - System.out.println( "xPoints = " + Arrays.toString(xPoints) ); - System.out.println( "yPoints = " + Arrays.toString(yPoints) ); - System.out.println( "nPoints = " + nPoints ); + public void drawPolyline(int xPoints[], int yPoints[], int nPoints) { + String l = + "drawPolyline(int[],int[],int):" + + "\n xPoints = " + Arrays.toString(xPoints) + + "\n yPoints = " + Arrays.toString(yPoints) + + "\n nPoints = " + nPoints; + log.println( l ); g2D.drawPolyline( xPoints, yPoints, nPoints ); } public void drawRect(int x, int y, int width, int height) { - System.out.println( "drawRect(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + String l = + "drawRect(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.drawRect( x, y, width, height ); } - public void drawRoundRect(int x, int y, int width, int height, - int arcWidth, int arcHeight) - { - System.out.println( "drawRoundRect(int,int,int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "arcWidth = " + arcWidth ); - System.out.println( "arcHeight = " + arcHeight ); + public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { + String l = + "drawRoundRect(int,int,int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n arcWidth = " + arcWidth + + "\n arcHeight = " + arcHeight; + log.println( l ); g2D.drawRoundRect( x, y, width, height, arcWidth, arcHeight ); } - public void drawString(AttributedCharacterIterator iterator, - int x, int y) - { - System.out.println( "drawString(AttributedCharacterIterator,int,int):" ); - System.out.println( "iterator = " + iterator ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawString(AttributedCharacterIterator iterator, int x, int y) { + String l = + "drawString(AttributedCharacterIterator,int,int):" + + "\n iterator = " + iterator + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawString( iterator, x, y ); } - public void drawString(String str, int x, int y) - { - System.out.println( "drawString(str,int,int):" ); - System.out.println( "str = " + str ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void drawString(String str, int x, int y) { + String l = + "drawString(str,int,int):" + + "\n str = " + str + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.drawString( str, x, y ); } - public void fill3DRect(int x, int y, int width, int height, - boolean raised) { - System.out.println( "fill3DRect(int,int,int,int,boolean):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "raised = " + raised ); + public void fill3DRect(int x, int y, int width, int height, boolean raised) { + String l = + "fill3DRect(int,int,int,int,boolean):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n raised = " + raised; + log.println( l ); g2D.fill3DRect( x, y, width, height, raised ); } - public void fillArc(int x, int y, int width, int height, - int startAngle, int arcAngle) - { - System.out.println( "fillArc(int,int,int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); - System.out.println( "startAngle = " + startAngle ); - System.out.println( "arcAngle = " + arcAngle ); + public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) { + String l = + "fillArc(int,int,int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height + + "\n startAngle = " + startAngle + + "\n arcAngle = " + arcAngle; + log.println( l ); g2D.fillArc( x, y, width, height, startAngle, arcAngle ); } - public void fillOval(int x, int y, int width, int height) - { - System.out.println( "fillOval(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void fillOval(int x, int y, int width, int height) { + String l = + "fillOval(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.fillOval( x, y, width, height ); } public void fillPolygon(Polygon p) { - System.out.println( "fillPolygon(Polygon):" ); - System.out.println( "p = " + p ); + String l = + "fillPolygon(Polygon):" + + "\n p = " + p; + log.println( l ); g2D.fillPolygon( p ); } - public void fillPolygon(int xPoints[], int yPoints[], - int nPoints) - { - System.out.println( "fillPolygon(int[],int[],int):" ); - System.out.println( "xPoints = " + Arrays.toString(xPoints) ); - System.out.println( "yPoints = " + Arrays.toString(yPoints) ); - System.out.println( "nPoints = " + nPoints ); + public void fillPolygon(int xPoints[], int yPoints[], int nPoints) { + String l = + "fillPolygon(int[],int[],int):" + + "\n xPoints = " + Arrays.toString(xPoints) + + "\n yPoints = " + Arrays.toString(yPoints) + + "\n nPoints = " + nPoints; + log.println( l ); g2D.fillPolygon( xPoints, yPoints, nPoints ); } - public void fillRect(int x, int y, int width, int height) - { - System.out.println( "fillRect(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void fillRect(int x, int y, int width, int height) { + String l = + "fillRect(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.fillRect( x, y, width, height ); } - public void fillRoundRect(int x, int y, int width, int height, - int arcWidth, int arcHeight) - { - System.out.println( "fillRoundRect(int,int,int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { + String l = + "fillRoundRect(int,int,int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.fillRoundRect( x, y, width, height, arcWidth, arcHeight ); } public void finalize() { - System.out.println( "finalize():" ); - g2D.finalize(); - + log.println( "finalize():" ); + g2D.finalize(); // NOSOLAR super.finalize(); } - public Shape getClip() - { - System.out.println( "getClip():" ); + public Shape getClip() { + log.println( "getClip():" ); return g2D.getClip(); } - public Rectangle getClipBounds() - { - System.out.println( "getClipBounds():" ); + public Rectangle getClipBounds() { + log.println( "getClipBounds():" ); return g2D.getClipBounds(); } public Rectangle getClipBounds(Rectangle r) { - System.out.println( "getClipBounds(Rectangle):" ); - System.out.println( "r = " + r ); + String l = + "getClipBounds(Rectangle):" + + "\n r = " + r; + log.println( l ); return g2D.getClipBounds( r ); } - public Color getColor() - { - System.out.println( "getColor():" ); + public Color getColor() { + log.println( "getColor():" ); return g2D.getColor(); } - public Font getFont() - { - System.out.println( "getFont():" ); + public Font getFont() { + log.println( "getFont():" ); return g2D.getFont(); } public FontMetrics getFontMetrics() { - System.out.println( "getFontMetrics():" ); + log.println( "getFontMetrics():" ); return g2D.getFontMetrics(); } - public FontMetrics getFontMetrics(Font f) - { - System.out.println( "getFontMetrics():" ); + public FontMetrics getFontMetrics(Font f) { + log.println( "getFontMetrics():" ); return g2D.getFontMetrics( f ); } public boolean hitClip(int x, int y, int width, int height) { - System.out.println( "hitClip(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + String l = + "hitClip(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); return g2D.hitClip( x, y, width, height ); } - public void setClip(Shape clip) - { - System.out.println( "setClip(Shape):" ); - System.out.println( "clip = " + clip ); + public void setClip(Shape clip) { + String l = + "setClip(Shape):" + + "\n clip = " + clip; + log.println( l ); g2D.setClip( clip ); } - public void setClip(int x, int y, int width, int height) - { - System.out.println( "setClip(int,int,int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); - System.out.println( "width = " + width ); - System.out.println( "height = " + height ); + public void setClip(int x, int y, int width, int height) { + String l = + "setClip(int,int,int,int):" + + "\n x = " + x + + "\n y = " + y + + "\n width = " + width + + "\n height = " + height; + log.println( l ); g2D.setClip( x, y, width, height ); } - public void setColor(Color c) - { - System.out.println( "setColor():" ); - System.out.println( "c = " + c ); + public void setColor(Color c) { + String l = + "setColor():" + + "\n c = " + c; + log.println( l ); g2D.setColor( c ); } - public void setFont(Font font) - { - System.out.println( "setFont(Font):" ); - System.out.println( "font = " + font ); + public void setFont(Font font) { + String l = + "setFont(Font):" + + "\n font = " + font; + log.println( l ); g2D.setFont( font ); } - public void setPaintMode() - { - System.out.println( "setPaintMode():" ); + public void setPaintMode() { + log.println( "setPaintMode():" ); g2D.setPaintMode(); } - public void setXORMode(Color c1) - { - System.out.println( "setXORMode(Color):" ); - System.out.println( "c1 = " + c1 ); + public void setXORMode(Color c1) { + String l = + "setXORMode(Color):" + + "\n c1 = " + c1; + log.println( l ); g2D.setXORMode( c1 ); } public String toString() { - System.out.println( "toString():" ); + log.println( "toString():" ); return g2D.toString(); } - public void translate(int x, int y) - { - System.out.println( "translate(int,int):" ); - System.out.println( "x = " + x ); - System.out.println( "y = " + y ); + public void translate(int x, int y) { + String l = + "translate(int,int):" + + "\n x = " + x + + "\n y = " + y; + log.println( l ); g2D.translate( x, y ); } } diff --git a/src/java/org/apache/poi/hssf/usermodel/StaticFontMetrics.java b/src/java/org/apache/poi/hssf/usermodel/StaticFontMetrics.java index 37e7616aea..fcfd23f178 100644 --- a/src/java/org/apache/poi/hssf/usermodel/StaticFontMetrics.java +++ b/src/java/org/apache/poi/hssf/usermodel/StaticFontMetrics.java @@ -20,13 +20,15 @@ package org.apache.poi.hssf.usermodel; import java.awt.Font; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.Properties; +import org.apache.poi.util.POILogFactory; +import org.apache.poi.util.POILogger; + /** * Allows the user to lookup the font metrics for a particular font without * actually having the font on the system. The font details are loaded as a @@ -35,11 +37,14 @@ import java.util.Properties; * font. Use a multiplier for other sizes. */ final class StaticFontMetrics { + private static final POILogger LOGGER = POILogFactory.getLogger(StaticFontMetrics.class); /** The font metrics property file we're using */ private static Properties fontMetricsProps; /** Our cache of font details we've already looked up */ - private static Map fontDetailsMap = new HashMap(); + private static final Map fontDetailsMap = new HashMap(); + private StaticFontMetrics() {} + /** * Retrieves the fake font details for a given font. * @@ -47,47 +52,15 @@ final class StaticFontMetrics { * the font to lookup. * @return the fake font. */ - public static FontDetails getFontDetails(Font font) { + public static synchronized FontDetails getFontDetails(Font font) { // If we haven't already identified out font metrics file, // figure out which one to use and load it if (fontMetricsProps == null) { - InputStream metricsIn = null; - try { - fontMetricsProps = new Properties(); - - // Check to see if the font metric file was specified - // as a system property - String propFileName = null; - try { - propFileName = System.getProperty("font.metrics.filename"); - } catch (SecurityException e) { - } - - if (propFileName != null) { - File file = new File(propFileName); - if (!file.exists()) - throw new FileNotFoundException( - "font_metrics.properties not found at path " - + file.getAbsolutePath()); - metricsIn = new FileInputStream(file); - } else { - // Use the built-in font metrics file off the classpath - metricsIn = FontDetails.class.getResourceAsStream("/font_metrics.properties"); - if (metricsIn == null) - throw new FileNotFoundException( - "font_metrics.properties not found in classpath"); - } - fontMetricsProps.load(metricsIn); - } catch (IOException e) { - throw new RuntimeException("Could not load font metrics: " + e.getMessage()); - } finally { - if (metricsIn != null) { - try { - metricsIn.close(); - } catch (IOException ignore) { - } - } - } + try { + fontMetricsProps = loadMetrics(); + } catch (IOException e) { + throw new RuntimeException("Could not load font metrics", e); + } } // Grab the base name of the font they've asked about @@ -97,28 +70,73 @@ final class StaticFontMetrics { // Others have different font instances for bold etc // (eg font.dialog.plain.* vs font.Californian FB Bold.*) String fontStyle = ""; - if (font.isPlain()) + if (font.isPlain()) { fontStyle += "plain"; - if (font.isBold()) + } + if (font.isBold()) { fontStyle += "bold"; - if (font.isItalic()) + } + if (font.isItalic()) { fontStyle += "italic"; + } // Do we have a definition for this font with just the name? // If not, check with the font style added - if (fontMetricsProps.get(FontDetails.buildFontHeightProperty(fontName)) == null - && fontMetricsProps.get(FontDetails.buildFontHeightProperty(fontName + "." - + fontStyle)) != null) { + String fontHeight = FontDetails.buildFontHeightProperty(fontName); + String styleHeight = FontDetails.buildFontHeightProperty(fontName + "." + fontStyle); + + if (fontMetricsProps.get(fontHeight) == null + && fontMetricsProps.get(styleHeight) != null) { // Need to add on the style to the font name fontName += "." + fontStyle; } // Get the details on this font - if (fontDetailsMap.get(fontName) == null) { - FontDetails fontDetails = FontDetails.create(fontName, fontMetricsProps); + FontDetails fontDetails = fontDetailsMap.get(fontName); + if (fontDetails == null) { + fontDetails = FontDetails.create(fontName, fontMetricsProps); fontDetailsMap.put(fontName, fontDetails); - return fontDetails; } - return fontDetailsMap.get(fontName); + return fontDetails; + } + + private static Properties loadMetrics() throws IOException { + // Check to see if the font metric file was specified + // as a system property + File propFile = null; + try { + String propFileName = System.getProperty("font.metrics.filename"); + if (propFileName != null) { + propFile = new File(propFileName); + if (!propFile.exists()) { + LOGGER.log(POILogger.WARN, "font_metrics.properties not found at path "+propFile.getAbsolutePath()); + propFile = null; + } + } + } catch (SecurityException e) { + LOGGER.log(POILogger.WARN, "Can't access font.metrics.filename system property", e); + } + + InputStream metricsIn = null; + try { + if (propFile != null) { + metricsIn = new FileInputStream(propFile); + } else { + // Use the built-in font metrics file off the classpath + metricsIn = FontDetails.class.getResourceAsStream("/font_metrics.properties"); + if (metricsIn == null) { + String err = "font_metrics.properties not found in classpath"; + throw new IOException(err); + } + } + + Properties props = new Properties(); + props.load(metricsIn); + return props; + } finally { + if (metricsIn != null) { + metricsIn.close(); + } + } } } diff --git a/src/java/org/apache/poi/ss/usermodel/FractionFormat.java b/src/java/org/apache/poi/ss/usermodel/FractionFormat.java index b371c4ec84..bd5c8c8fec 100644 --- a/src/java/org/apache/poi/ss/usermodel/FractionFormat.java +++ b/src/java/org/apache/poi/ss/usermodel/FractionFormat.java @@ -99,31 +99,33 @@ public class FractionFormat extends Format { public String format(Number num) { - double doubleValue = num.doubleValue(); + final double doubleValue = num.doubleValue(); - boolean isNeg = (doubleValue < 0.0f) ? true : false; - double absDoubleValue = Math.abs(doubleValue); + final boolean isNeg = (doubleValue < 0.0f) ? true : false; + final double absDoubleValue = Math.abs(doubleValue); - double wholePart = Math.floor(absDoubleValue); - double decPart = absDoubleValue - wholePart; + final double wholePart = Math.floor(absDoubleValue); + final double decPart = absDoubleValue - wholePart; if (wholePart + decPart == 0) { return "0"; } - //if the absolute value is smaller than 1 over the exact or maxDenom - //you can stop here and return "0" - if (absDoubleValue < (1/Math.max(exactDenom, maxDenom))){ - return "0"; - } + // if the absolute value is smaller than 1 over the exact or maxDenom + // you can stop here and return "0" + // reciprocal is result of an int devision ... and so it's nearly always 0 + // double reciprocal = 1/Math.max(exactDenom, maxDenom); + // if (absDoubleValue < reciprocal) { + // return "0"; + // } //this is necessary to prevent overflow in the maxDenom calculation - if (wholePart+(int)decPart == wholePart+decPart){ + if (Double.compare(decPart, 0) == 0){ StringBuilder sb = new StringBuilder(); if (isNeg){ sb.append("-"); } - sb.append(Integer.toString((int)wholePart)); + sb.append((int)wholePart); return sb.toString(); } -- cgit v1.2.3