Fixes AreaTreeParserTestCase. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_InlineContainer@1535384 13f79535-47bb-0310-9956-ffa450edef68tags/fop-2_0
@@ -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) { |
@@ -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; | |||
} | |||
@@ -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() { |