aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/fop/area/AreaTreeParser.java24
-rw-r--r--src/java/org/apache/fop/area/inline/Character.java62
-rw-r--r--src/java/org/apache/fop/render/AbstractRenderer.java84
3 files changed, 34 insertions, 136 deletions
diff --git a/src/java/org/apache/fop/area/AreaTreeParser.java b/src/java/org/apache/fop/area/AreaTreeParser.java
index 169593072..68ad6eb6d 100644
--- a/src/java/org/apache/fop/area/AreaTreeParser.java
+++ b/src/java/org/apache/fop/area/AreaTreeParser.java
@@ -57,7 +57,6 @@ import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.area.Trait.Background;
import org.apache.fop.area.Trait.InternalLink;
import org.apache.fop.area.inline.AbstractTextArea;
-import org.apache.fop.area.inline.Character;
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
import org.apache.fop.area.inline.InlineArea;
@@ -179,7 +178,6 @@ public class AreaTreeParser {
makers.put("text", new TextMaker());
makers.put("word", new WordMaker());
makers.put("space", new SpaceMaker());
- makers.put("char", new CharMaker());
makers.put("leader", new LeaderMaker());
makers.put("viewport", new ViewportMaker());
makers.put("image", new ImageMaker());
@@ -812,28 +810,6 @@ public class AreaTreeParser {
}
}
- private class CharMaker extends AbstractMaker {
-
- public void endElement() {
- content.flip();
- Character ch = new Character(content.charAt(0));
- transferForeignObjects(lastAttributes, ch);
- setAreaAttributes(lastAttributes, ch);
- setTraits(lastAttributes, ch, SUBSET_COMMON);
- setTraits(lastAttributes, ch, SUBSET_BOX);
- setTraits(lastAttributes, ch, SUBSET_COLOR);
- setTraits(lastAttributes, ch, SUBSET_FONT);
- ch.setOffset(getAttributeAsInteger(lastAttributes, "offset", 0));
- ch.setBaselineOffset(getAttributeAsInteger(lastAttributes, "baseline", 0));
- Area parent = (Area)areaStack.peek();
- parent.addChildArea(ch);
- }
-
- public boolean ignoreCharacters() {
- return false;
- }
- }
-
private class LeaderMaker extends AbstractMaker {
public void startElement(Attributes attributes) {
diff --git a/src/java/org/apache/fop/area/inline/Character.java b/src/java/org/apache/fop/area/inline/Character.java
deleted file mode 100644
index 6b6f9744f..000000000
--- a/src/java/org/apache/fop/area/inline/Character.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.area.inline;
-
-/**
- * Single character inline area.
- * This inline area holds a single character.
- * @deprecated A TextArea with a single WordArea as its child should be used instead.
- */
-public class Character extends AbstractTextArea {
- // use a String instead of a character because if this character
- // ends a syllable the hyphenation character must be added
- private String character;
-
- /**
- * Create a new character inline area with the given character.
- *
- * @param ch the character for this inline area
- */
- public Character(char ch) {
- character = new String() + ch;
- }
-
- /**
- * Get the character for this inline character area.
- *
- * @return the character
- */
- public String getChar() {
- return character;
- }
-
- /**
- * Add the hyphenation character and its length.
- *
- * @param hyphChar the hyphenation character
- * @param hyphSize the size of the hyphenation character
- */
- public void addHyphen(char hyphChar, int hyphSize) {
- character += hyphChar;
- this.setIPD(this.getIPD() + hyphSize);
- }
-
-}
-
diff --git a/src/java/org/apache/fop/render/AbstractRenderer.java b/src/java/org/apache/fop/render/AbstractRenderer.java
index 5c3e73ee0..cfadc3e98 100644
--- a/src/java/org/apache/fop/render/AbstractRenderer.java
+++ b/src/java/org/apache/fop/render/AbstractRenderer.java
@@ -54,7 +54,6 @@ import org.apache.fop.area.RegionReference;
import org.apache.fop.area.RegionViewport;
import org.apache.fop.area.Span;
import org.apache.fop.area.Trait;
-import org.apache.fop.area.inline.Character;
import org.apache.fop.area.inline.Container;
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
@@ -246,25 +245,15 @@ public abstract class AbstractRenderer
last here. */
RegionViewport viewport;
viewport = page.getRegionViewport(FO_REGION_BEFORE);
- if (viewport != null) {
- renderRegionViewport(viewport);
- }
+ renderRegionViewport(viewport);
viewport = page.getRegionViewport(FO_REGION_START);
- if (viewport != null) {
- renderRegionViewport(viewport);
- }
+ renderRegionViewport(viewport);
viewport = page.getRegionViewport(FO_REGION_END);
- if (viewport != null) {
- renderRegionViewport(viewport);
- }
+ renderRegionViewport(viewport);
viewport = page.getRegionViewport(FO_REGION_AFTER);
- if (viewport != null) {
- renderRegionViewport(viewport);
- }
+ renderRegionViewport(viewport);
viewport = page.getRegionViewport(FO_REGION_BODY);
- if (viewport != null) {
- renderRegionViewport(viewport);
- }
+ renderRegionViewport(viewport);
}
/**
@@ -276,25 +265,27 @@ public abstract class AbstractRenderer
* @param port The region viewport to be rendered
*/
protected void renderRegionViewport(RegionViewport port) {
- 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);
+ 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();
}
- endVParea();
}
/**
@@ -405,7 +396,7 @@ public abstract class AbstractRenderer
for (int count = 0; count < spans.size(); count++) {
span = (Span) spans.get(count);
for (int c = 0; c < span.getColumnCount(); c++) {
- NormalFlow flow = (NormalFlow) span.getNormalFlow(c);
+ NormalFlow flow = span.getNormalFlow(c);
if (flow != null) {
currentBPPosition = saveSpanBPPos;
@@ -509,7 +500,7 @@ public abstract class AbstractRenderer
int saveBP = currentBPPosition;
// Calculate the position of the content rectangle.
- if (parent != null && !parent.getTraitAsBoolean(Trait.IS_VIEWPORT_AREA)) {
+ if (parent != null && !Boolean.TRUE.equals(parent.getTrait(Trait.IS_VIEWPORT_AREA))) {
currentBPPosition += parent.getBorderAndPaddingWidthBefore();
/* This is unnecessary now as we're going to use the *-indent traits
currentIPPosition += parent.getBorderAndPaddingWidthStart();
@@ -565,7 +556,7 @@ public abstract class AbstractRenderer
// simply move position
currentBPPosition += block.getAllocBPD();
}
- } else if (block.getTraitAsBoolean(Trait.IS_REFERENCE_AREA)) {
+ } else if (Boolean.TRUE.equals(block.getTrait(Trait.IS_REFERENCE_AREA))) {
renderReferenceArea(block);
} else {
// save position and offset
@@ -638,15 +629,6 @@ public abstract class AbstractRenderer
}
}
- /**
- * Render the given Character.
- * @param ch the character to render
- * @deprecated Only TextArea should be used. This method will be removed eventually.
- */
- protected void renderCharacter(Character ch) {
- currentIPPosition += ch.getAllocIPD();
- }
-
/**
* Common method to render the background and borders for any inline area.
* The all borders and padding are drawn outside the specified area.
@@ -754,6 +736,8 @@ public abstract class AbstractRenderer
renderContainer((Container) content);
} else if (content instanceof ForeignObject) {
renderForeignObject((ForeignObject) content, contpos);
+ } else if (content instanceof InlineBlockParent) {
+ renderInlineBlockParent((InlineBlockParent) content);
}
currentIPPosition += viewport.getAllocIPD();
currentBPPosition = saveBP;
@@ -792,7 +776,7 @@ public abstract class AbstractRenderer
* @param pos The target position of the foreign object
* (todo) Make renderForeignObject() protected
*/
- public void renderForeignObject(ForeignObject fo, Rectangle2D pos) {
+ protected void renderForeignObject(ForeignObject fo, Rectangle2D pos) {
// Default: do nothing.
// Some renderers (ex. Text) don't support foreign objects.
}
@@ -817,8 +801,9 @@ public abstract class AbstractRenderer
handler.handleXML(ctx, doc, namespace);
} catch (Exception e) {
// could not handle document
- ResourceEventProducer eventProducer = ResourceEventProducer.Provider.get(
- ctx.getUserAgent().getEventBroadcaster());
+ ResourceEventProducer eventProducer
+ = ResourceEventProducer.Provider.get(
+ ctx.getUserAgent().getEventBroadcaster());
eventProducer.foreignXMLProcessingError(this, doc, namespace, e);
}
} else {
@@ -871,5 +856,4 @@ public abstract class AbstractRenderer
matrix[5] = matrix[5] * 1000;
return new AffineTransform(matrix);
}
-
}