You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by da...@apache.org on 2010/04/07 18:39:33 UTC

svn commit: r931616 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdfviewer/ util/operator/pagedrawer/

Author: danielwilson
Date: Wed Apr  7 16:39:33 2010
New Revision: 931616

URL: http://svn.apache.org/viewvc?rev=931616&view=rev
Log:
Refactor for the sake of those who inherit from PageDrawer.
When crossing into .Net graphics, calls to ((PageDrawer)context).getGraphics() cannot be expected to return a Java Graphics2D object.
IMO, we shouldn't be calling for the PageDrawer's graphics anyway.  So I have abstracted the attempt to get to the Stroke so that it can be overriden ... and the graphics object isn't handled directly, at least in these cases.

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineCapStyle.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineDashPattern.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineJoinStyle.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineMiterLimit.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Wed Apr  7 16:39:33 2010
@@ -293,6 +293,17 @@ public class PageDrawer extends PDFStrea
     }
 
     /**
+     * This will return the current stroke.
+     *
+     * @return The current stroke.
+     * 
+     */
+    public BasicStroke getStroke()
+    {
+        return (BasicStroke)getGraphics().getStroke();
+    }
+    
+    /**
      * Stroke the path.
      *
      * @throws IOException If there is an IO error while stroking the path.

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineCapStyle.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineCapStyle.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineCapStyle.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineCapStyle.java Wed Apr  7 16:39:33 2010
@@ -46,15 +46,15 @@ public class SetLineCapStyle extends org
     {
         super.process( operator, arguments );
         int lineCapStyle = context.getGraphicsState().getLineCap();
-        Graphics2D graphics = ((PageDrawer)context).getGraphics();
-        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        PageDrawer drawer = (PageDrawer)context;
+        BasicStroke stroke = (BasicStroke)drawer.getStroke();
         if (stroke == null)
         {
-            graphics.setStroke( new BasicStroke(1,lineCapStyle,BasicStroke.JOIN_MITER) );
+            drawer.setStroke( new BasicStroke(1,lineCapStyle,BasicStroke.JOIN_MITER) );
         }
         else
         {
-            graphics.setStroke( new BasicStroke(stroke.getLineWidth(), lineCapStyle, stroke.getLineJoin(), 
+            drawer.setStroke( new BasicStroke(stroke.getLineWidth(), lineCapStyle, stroke.getLineJoin(), 
                     stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()));
         }
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineDashPattern.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineDashPattern.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineDashPattern.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineDashPattern.java Wed Apr  7 16:39:33 2010
@@ -47,17 +47,17 @@ public class SetLineDashPattern extends 
     {
         super.process( operator, arguments );
         PDLineDashPattern lineDashPattern = context.getGraphicsState().getLineDashPattern();
-        Graphics2D graphics = ((PageDrawer)context).getGraphics();
-        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        PageDrawer drawer = (PageDrawer)context;
+        BasicStroke stroke = (BasicStroke)drawer.getStroke();
         if (stroke == null) 
         {
             if (lineDashPattern.isDashPatternEmpty()) 
             {
-                graphics.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f) );
+                drawer.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f) );
             }
             else
             {
-                graphics.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f, 
+                drawer.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f, 
                         lineDashPattern.getCOSDashPattern().toFloatArray(), lineDashPattern.getPhaseStart()) );
             }
         }
@@ -65,12 +65,12 @@ public class SetLineDashPattern extends 
         {
             if (lineDashPattern.isDashPatternEmpty()) 
             {
-                graphics.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), 
+                drawer.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), 
                         stroke.getLineJoin(), stroke.getMiterLimit()) );
             }
             else
             {
-                graphics.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), stroke.getLineJoin(), 
+                drawer.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), stroke.getLineJoin(), 
                         stroke.getMiterLimit(), lineDashPattern.getCOSDashPattern().toFloatArray(), 
                         lineDashPattern.getPhaseStart()) );
             }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineJoinStyle.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineJoinStyle.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineJoinStyle.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineJoinStyle.java Wed Apr  7 16:39:33 2010
@@ -46,15 +46,15 @@ public class SetLineJoinStyle extends or
     {
         super.process( operator, arguments );
         int lineJoinStyle = context.getGraphicsState().getLineJoin();
-        Graphics2D graphics = ((PageDrawer)context).getGraphics();
-        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        PageDrawer drawer = (PageDrawer)context;
+        BasicStroke stroke = (BasicStroke)drawer.getStroke();
         if (stroke == null)
         {
-            graphics.setStroke( new BasicStroke(1,BasicStroke.CAP_SQUARE,lineJoinStyle) );
+            drawer.setStroke( new BasicStroke(1,BasicStroke.CAP_SQUARE,lineJoinStyle) );
         }
         else
         {
-            graphics.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), lineJoinStyle,
+            drawer.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), lineJoinStyle,
                     stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()) );
         }
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineMiterLimit.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineMiterLimit.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineMiterLimit.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineMiterLimit.java Wed Apr  7 16:39:33 2010
@@ -45,16 +45,16 @@ public class SetLineMiterLimit extends o
     {
         super.process(operator, arguments);
         float miterLimit = (float)context.getGraphicsState().getMiterLimit();
-        Graphics2D graphics = ((PageDrawer)context).getGraphics();
-        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        PageDrawer drawer = (PageDrawer)context;
+        BasicStroke stroke = (BasicStroke)drawer.getStroke();
         if (stroke == null)
         {
-            graphics.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 
+            drawer.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 
                     miterLimit, null, 0.0f));
         }
         else
         {
-            graphics.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), stroke.getLineJoin(), 
+            drawer.setStroke( new BasicStroke(stroke.getLineWidth(), stroke.getEndCap(), stroke.getLineJoin(), 
                     miterLimit, null, 0.0f));
         }
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java Wed Apr  7 16:39:33 2010
@@ -49,15 +49,15 @@ public class SetLineWidth extends org.ap
         {
             lineWidth = 1;
         }
-        Graphics2D graphics = ((PageDrawer)context).getGraphics();
-        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        PageDrawer drawer = (PageDrawer)context;
+        BasicStroke stroke = (BasicStroke)drawer.getStroke();
         if (stroke == null)
         {
-            graphics.setStroke( new BasicStroke( lineWidth ) );
+            drawer.setStroke( new BasicStroke( lineWidth ) );
         }
         else
         {
-            graphics.setStroke( new BasicStroke(lineWidth, stroke.getEndCap(), stroke.getLineJoin(), 
+            drawer.setStroke( new BasicStroke(lineWidth, stroke.getEndCap(), stroke.getLineJoin(), 
                     stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()) );
         }
     }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java?rev=931616&r1=931615&r2=931616&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java Wed Apr  7 16:39:33 2010
@@ -64,15 +64,15 @@ public class StrokePath extends Operator
             {
                 lineWidth = lineWidth * ctm.getXScale();
             }
-            Graphics2D graphics = ((PageDrawer)context).getGraphics();
-            BasicStroke stroke = (BasicStroke)graphics.getStroke();
+            
+            BasicStroke stroke = (BasicStroke)drawer.getStroke();
             if (stroke == null)
             {
-                graphics.setStroke( new BasicStroke( lineWidth ) );
+                drawer.setStroke( new BasicStroke( lineWidth ) );
             }
             else
             {
-                graphics.setStroke( new BasicStroke(lineWidth, stroke.getEndCap(), stroke.getLineJoin(), 
+                drawer.setStroke( new BasicStroke(lineWidth, stroke.getEndCap(), stroke.getLineJoin(), 
                         stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()) );
             }
             drawer.strokePath();