From c9d8c3dff4f8219fd6d4db78c6c6f2c79392a9ab Mon Sep 17 00:00:00 2001 From: Adrian Cumiskey Date: Fri, 4 Jul 2008 14:05:40 +0000 Subject: Merged revisions 674056 via svnmerge from https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk ........ r674056 | acumiskey | 2008-07-04 14:57:57 +0100 (Fri, 04 Jul 2008) | 3 lines * Some minor optimizations in AbstractRenderer. * Renamed getBooleanTrait() to getTraitAsBoolean() in Area. ........ git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AFPGOCAResources@674062 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/area/Area.java | 3 +- .../org/apache/fop/area/inline/InlineArea.java | 8 +-- .../org/apache/fop/render/AbstractRenderer.java | 66 ++++++++++++---------- 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); } + } -- cgit v1.2.3