aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/org/apache/fop/area/Area.java3
-rw-r--r--src/java/org/apache/fop/area/inline/InlineArea.java8
-rw-r--r--src/java/org/apache/fop/render/AbstractRenderer.java66
3 files changed, 43 insertions, 34 deletions
diff --git a/src/java/org/apache/fop/area/Area.java b/src/java/org/apache/fop/area/Area.java
index f75fa0183..9c0fc8db6 100644
--- a/src/java/org/apache/fop/area/Area.java
+++ b/src/java/org/apache/fop/area/Area.java
@@ -417,10 +417,11 @@ public class Area extends AreaTreeObject implements Serializable {
/**
* Get a boolean trait from this area.
+ *
* @param oTraitCode the trait key
* @return the trait value
*/
- public boolean getBooleanTrait(Object oTraitCode) {
+ public boolean getTraitAsBoolean(Object oTraitCode) {
final Object obj = getTrait(oTraitCode);
if (obj instanceof Boolean) {
return ((Boolean)obj).booleanValue();
diff --git a/src/java/org/apache/fop/area/inline/InlineArea.java b/src/java/org/apache/fop/area/inline/InlineArea.java
index 2e624c5aa..2e24af3c3 100644
--- a/src/java/org/apache/fop/area/inline/InlineArea.java
+++ b/src/java/org/apache/fop/area/inline/InlineArea.java
@@ -182,22 +182,22 @@ public class InlineArea extends Area {
*@return true if the inline area is underlined.
*/
public boolean hasUnderline() {
- return getBooleanTrait(Trait.UNDERLINE);
+ return getTraitAsBoolean(Trait.UNDERLINE);
}
/** @return true if the inline area is overlined. */
public boolean hasOverline() {
- return getBooleanTrait(Trait.OVERLINE);
+ return getTraitAsBoolean(Trait.OVERLINE);
}
/** @return true if the inline area has a line through. */
public boolean hasLineThrough() {
- return getBooleanTrait(Trait.LINETHROUGH);
+ return getTraitAsBoolean(Trait.LINETHROUGH);
}
/** @return true if the inline area is blinking. */
public boolean isBlinking() {
- return getBooleanTrait(Trait.BLINK);
+ return getTraitAsBoolean(Trait.BLINK);
}
/**
diff --git a/src/java/org/apache/fop/render/AbstractRenderer.java b/src/java/org/apache/fop/render/AbstractRenderer.java
index 20eceac8c..5c3e73ee0 100644
--- a/src/java/org/apache/fop/render/AbstractRenderer.java
+++ b/src/java/org/apache/fop/render/AbstractRenderer.java
@@ -246,15 +246,25 @@ public abstract class AbstractRenderer
last here. */
RegionViewport viewport;
viewport = page.getRegionViewport(FO_REGION_BEFORE);
- renderRegionViewport(viewport);
+ if (viewport != null) {
+ renderRegionViewport(viewport);
+ }
viewport = page.getRegionViewport(FO_REGION_START);
- renderRegionViewport(viewport);
+ if (viewport != null) {
+ renderRegionViewport(viewport);
+ }
viewport = page.getRegionViewport(FO_REGION_END);
- renderRegionViewport(viewport);
+ if (viewport != null) {
+ renderRegionViewport(viewport);
+ }
viewport = page.getRegionViewport(FO_REGION_AFTER);
- renderRegionViewport(viewport);
+ if (viewport != null) {
+ renderRegionViewport(viewport);
+ }
viewport = page.getRegionViewport(FO_REGION_BODY);
- renderRegionViewport(viewport);
+ if (viewport != null) {
+ renderRegionViewport(viewport);
+ }
}
/**
@@ -266,27 +276,25 @@ public abstract class AbstractRenderer
* @param port The region viewport to be rendered
*/
protected void renderRegionViewport(RegionViewport port) {
- if (port != null) {
- Rectangle2D view = port.getViewArea();
- // The CTM will transform coordinates relative to
- // this region-reference area into page coords, so
- // set origin for the region to 0,0.
- currentBPPosition = 0;
- currentIPPosition = 0;
-
- RegionReference regionReference = port.getRegionReference();
- handleRegionTraits(port);
-
- // shouldn't the viewport have the CTM
- startVParea(regionReference.getCTM(), port.isClip() ? view : null);
- // do after starting viewport area
- if (regionReference.getRegionClass() == FO_REGION_BODY) {
- renderBodyRegion((BodyRegion) regionReference);
- } else {
- renderRegion(regionReference);
- }
- endVParea();
+ Rectangle2D view = port.getViewArea();
+ // The CTM will transform coordinates relative to
+ // this region-reference area into page coords, so
+ // set origin for the region to 0,0.
+ currentBPPosition = 0;
+ currentIPPosition = 0;
+
+ RegionReference regionReference = port.getRegionReference();
+ handleRegionTraits(port);
+
+ // shouldn't the viewport have the CTM
+ startVParea(regionReference.getCTM(), port.isClip() ? view : null);
+ // do after starting viewport area
+ if (regionReference.getRegionClass() == FO_REGION_BODY) {
+ renderBodyRegion((BodyRegion) regionReference);
+ } else {
+ renderRegion(regionReference);
}
+ endVParea();
}
/**
@@ -320,8 +328,7 @@ public abstract class AbstractRenderer
* @param region The region reference area
*/
protected void renderRegion(RegionReference region) {
- List blocks = region.getBlocks();
- renderBlocks(null, blocks);
+ renderBlocks(null, region.getBlocks());
}
/**
@@ -502,7 +509,7 @@ public abstract class AbstractRenderer
int saveBP = currentBPPosition;
// Calculate the position of the content rectangle.
- if (parent != null && !Boolean.TRUE.equals(parent.getTrait(Trait.IS_VIEWPORT_AREA))) {
+ if (parent != null && !parent.getTraitAsBoolean(Trait.IS_VIEWPORT_AREA)) {
currentBPPosition += parent.getBorderAndPaddingWidthBefore();
/* This is unnecessary now as we're going to use the *-indent traits
currentIPPosition += parent.getBorderAndPaddingWidthStart();
@@ -558,7 +565,7 @@ public abstract class AbstractRenderer
// simply move position
currentBPPosition += block.getAllocBPD();
}
- } else if (Boolean.TRUE.equals(block.getTrait(Trait.IS_REFERENCE_AREA))) {
+ } else if (block.getTraitAsBoolean(Trait.IS_REFERENCE_AREA)) {
renderReferenceArea(block);
} else {
// save position and offset
@@ -864,4 +871,5 @@ public abstract class AbstractRenderer
matrix[5] = matrix[5] * 1000;
return new AffineTransform(matrix);
}
+
}