Pārlūkot izejas kodu

Parse back the container area from the area tree.

Fixes AreaTreeParserTestCase.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_InlineContainer@1535384 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_0
Vincent Hennebert pirms 10 gadiem
vecāks
revīzija
31037a0f70

+ 17
- 0
src/java/org/apache/fop/area/AreaTreeParser.java Parādīt failu

@@ -62,6 +62,7 @@ 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.Container;
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
import org.apache.fop.area.inline.InlineArea;
@@ -195,6 +196,7 @@ public class AreaTreeParser {
makers.put("space", new SpaceMaker());
makers.put("leader", new LeaderMaker());
makers.put("viewport", new InlineViewportMaker());
makers.put("container", new ContainerMaker());
makers.put("image", new ImageMaker());
makers.put("foreignObject", new ForeignObjectMaker());
makers.put("bookmarkTree", new BookmarkTreeMaker());
@@ -863,6 +865,21 @@ public class AreaTreeParser {
}
}

private class ContainerMaker extends AbstractMaker {

public void startElement(Attributes attributes) {
Container container = new Container();
transferForeignObjects(attributes, container);
InlineViewport parent = (InlineViewport) areaStack.peek();
parent.setContent(container);
areaStack.push(container);
}

public void endElement() {
assertObjectOfClass(areaStack.pop(), Container.class);
}
}

private class InlineViewportMaker extends AbstractMaker {

public void startElement(Attributes attributes) {

+ 7
- 8
src/java/org/apache/fop/area/inline/Container.java Parādīt failu

@@ -51,13 +51,12 @@ public class Container extends Area {
public Container() {
}

/**
* Add the block to this area.
*
* @param block the block area to add
*/
public void addBlock(Block block) {
blocks.add(block);
@Override
public void addChildArea(Area child) {
if (!(child instanceof Block)) {
throw new IllegalArgumentException("Container only accepts block areas");
}
blocks.add((Block) child);
}

/**
@@ -65,7 +64,7 @@ public class Container extends Area {
*
* @return the list of block areas
*/
public List getBlocks() {
public List<Block> getBlocks() {
return blocks;
}


+ 1
- 2
src/java/org/apache/fop/layoutmgr/inline/InlineContainerLayoutManager.java Parādīt failu

@@ -24,7 +24,6 @@ import java.util.LinkedList;
import java.util.List;

import org.apache.fop.area.Area;
import org.apache.fop.area.Block;
import org.apache.fop.area.Trait;
import org.apache.fop.area.inline.Container;
import org.apache.fop.area.inline.InlineViewport;
@@ -189,7 +188,7 @@ public class InlineContainerLayoutManager extends AbstractLayoutManager implemen

@Override
public void addChildArea(Area childArea) {
referenceArea.addBlock((Block) childArea);
referenceArea.addChildArea(childArea);
}

private boolean needClip() {

Notiek ielāde…
Atcelt
Saglabāt