]> source.dussan.org Git - poi.git/commitdiff
Support for line thicknes through escher graphics 2d interface.
authorGlen Stampoultzis <glens@apache.org>
Sat, 29 Apr 2006 00:18:16 +0000 (00:18 +0000)
committerGlen Stampoultzis <glens@apache.org>
Sat, 29 Apr 2006 00:18:16 +0000 (00:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@398044 13f79535-47bb-0310-9956-ffa450edef68

src/examples/src/org/apache/poi/hssf/usermodel/examples/OfficeDrawingWithGraphics.java
src/java/org/apache/poi/hssf/usermodel/EscherGraphics.java
src/java/org/apache/poi/hssf/usermodel/EscherGraphics2d.java

index 8d656a9525220f23bf649f55fc4c48d991184cd3..70823ca4c2adaa9a485afc2a875c632ba3632e54 100644 (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));
index 0bf84d885ca9db45f48f38a02938dd1364b2a39f..6b898ce96da8f638ede78d339ac6f159eee6cc23 100644 (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;
+    }
 }
 
index 0d2cd16aa20b63e83794bd9c456067dc1c895b98..e9bd19aa308c41daf4359fd8da0ff2135b3cda00 100644 (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)));
     }