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();