Support for line thicknes through escher graphics 2d interface.

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@398044 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Glen Stampoultzis 2006-04-29 00:18:16 +00:00
parent 6f7d2e3b76
commit bea0a04d24
3 changed files with 33 additions and 6 deletions

View File

@ -91,6 +91,7 @@ public class OfficeDrawingWithGraphics
int y1 = (int) ( Math.sin(i) * 138.0 ) + 138;
int x2 = (int) ( -Math.cos(i) * 160.0 ) + 160;
int y2 = (int) ( -Math.sin(i) * 138.0 ) + 138;
g2d.setStroke(new BasicStroke(2));
g2d.drawLine(x1,y1,x2,y2);
}
g2d.setFont(new Font("SansSerif",Font.BOLD | Font.ITALIC, 20));

View File

@ -16,9 +16,9 @@
package org.apache.poi.hssf.usermodel;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
import org.apache.poi.hssf.util.HSSFColor;
import java.awt.*;
import java.awt.image.ImageObserver;
@ -203,10 +203,15 @@ public class EscherGraphics
}
public void drawLine(int x1, int y1, int x2, int y2)
{
drawLine(x1,y1,x2,y2,0);
}
public void drawLine(int x1, int y1, int x2, int y2, int width)
{
HSSFSimpleShape shape = escherGroup.createShape(new HSSFChildAnchor(x1, y1, x2, y2) );
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
shape.setLineWidth(0);
shape.setLineWidth(width);
shape.setLineStyleColor(foreground.getRed(), foreground.getGreen(), foreground.getBlue());
}
@ -475,6 +480,9 @@ public class EscherGraphics
this.background = background;
}
HSSFShapeGroup getEscherGraphics()
{
return escherGroup;
}
}

View File

@ -23,7 +23,10 @@ import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.TextLayout;
import java.awt.geom.*;
import java.awt.geom.AffineTransform;
import java.awt.geom.Area;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ImageObserver;
@ -142,7 +145,13 @@ public class EscherGraphics2d extends Graphics2D
if (shape instanceof Line2D)
{
Line2D shape2d = (Line2D) shape;
drawLine((int)shape2d.getX1(), (int)shape2d.getY1(), (int)shape2d.getX2(), (int)shape2d.getY2());
int width = 0;
if (stroke != null && stroke instanceof BasicStroke) {
width = (int) ((BasicStroke)stroke).getLineWidth() * 12700;
}
drawLine((int)shape2d.getX1(), (int)shape2d.getY1(), (int)shape2d.getX2(), (int)shape2d.getY2(), width);
}
else
{
@ -216,9 +225,18 @@ public class EscherGraphics2d extends Graphics2D
drawImage(((Image) (img)), new AffineTransform(1.0F, 0.0F, 0.0F, 1.0F, x, y), null);
}
public void drawLine(int x1, int y1, int x2, int y2, int width)
{
getEscherGraphics().drawLine(x1,y1,x2,y2, width);
}
public void drawLine(int x1, int y1, int x2, int y2)
{
getEscherGraphics().drawLine(x1,y1,x2,y2);
int width = 0;
if (stroke != null && stroke instanceof BasicStroke) {
width = (int) ((BasicStroke)stroke).getLineWidth() * 12700;
}
getEscherGraphics().drawLine(x1,y1,x2,y2, width);
// draw(new GeneralPath(new java.awt.geom.Line2D.Float(x1, y1, x2, y2)));
}