You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by vh...@apache.org on 2013/04/08 13:51:53 UTC
svn commit: r1465599 [2/2] - in /xmlgraphics/fop/trunk:
src/java/org/apache/fop/accessibility/
src/java/org/apache/fop/accessibility/fo/ src/java/org/apache/fop/fo/
src/java/org/apache/fop/fo/extensions/
src/java/org/apache/fop/fo/extensions/destinatio...
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SimplePageMaster.java Mon Apr 8 11:51:52 2013
@@ -89,7 +89,7 @@ public class SimplePageMaster extends FO
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
LayoutMasterSet layoutMasterSet = (LayoutMasterSet) parent;
if (masterName == null) {
@@ -103,7 +103,7 @@ public class SimplePageMaster extends FO
}
/** {@inheritDoc} */
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
if (!hasRegionBody) {
missingChildElementError(
"(region-body, region-before?, region-after?, region-start?, region-end?)");
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java Mon Apr 8 11:51:52 2013
@@ -71,7 +71,7 @@ public class SinglePageMasterReference e
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
PageSequenceMaster pageSequenceMaster = (PageSequenceMaster) parent;
pageSequenceMaster.addSubsequenceSpecifier(this);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/StaticContent.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/StaticContent.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/StaticContent.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/StaticContent.java Mon Apr 8 11:51:52 2013
@@ -40,7 +40,7 @@ public class StaticContent extends Flow
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
if (getFlowName() == null || getFlowName().equals("")) {
missingPropertyError(FLOW_NAME);
}
@@ -52,7 +52,7 @@ public class StaticContent extends Flow
* FOEventHandler that we are at the end of the flow.
* {@inheritDoc}
*/
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
if (firstChild == null && getUserAgent().validateStrictly()) {
missingChildElementError("(%block;)+");
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java Mon Apr 8 11:51:52 2013
@@ -102,7 +102,7 @@ public class Bookmark extends FObj imple
}
/** {@inheritDoc} */
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
if (bookmarkTitle == null) {
missingChildElementError("(bookmark-title, bookmark*)");
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java Mon Apr 8 11:51:52 2013
@@ -56,7 +56,7 @@ public class BookmarkTree extends FObj {
}
/** {@inheritDoc} */
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
if (bookmarks == null) {
missingChildElementError("(fo:bookmark+)");
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFStructElem.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFStructElem.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFStructElem.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/pdf/PDFStructElem.java Mon Apr 8 11:51:52 2013
@@ -37,7 +37,7 @@ public class PDFStructElem extends Struc
private StructureType structureType;
- private PDFStructElem parentElement;
+ protected PDFStructElem parentElement;
/**
* Elements to be added to the kids array.
@@ -231,6 +231,9 @@ public class PDFStructElem extends Struc
textBuffer.append(' ');
}
Object obj = kids.get(i);
+ if (obj instanceof PDFStructElem) {
+ ((PDFStructElem) obj).setParent(parentElement);
+ }
formatObject(obj, out, textBuffer);
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMapElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMapElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMapElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPIncludeFormMapElement.java Mon Apr 8 11:51:52 2013
@@ -54,7 +54,7 @@ public class AFPIncludeFormMapElement ex
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (parent.getNameId() != Constants.FO_DECLARATIONS) {
invalidChildError(getLocator(), parent.getName(), getNamespaceURI(), getName(),
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPInvokeMediumMapElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPInvokeMediumMapElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPInvokeMediumMapElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPInvokeMediumMapElement.java Mon Apr 8 11:51:52 2013
@@ -40,7 +40,7 @@ public class AFPInvokeMediumMapElement e
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (parent.getNameId() != Constants.FO_PAGE_SEQUENCE
&& parent.getNameId() != Constants.FO_SIMPLE_PAGE_MASTER) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageOverlayElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageOverlayElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageOverlayElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageOverlayElement.java Mon Apr 8 11:51:52 2013
@@ -57,7 +57,7 @@ public class AFPPageOverlayElement exten
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (AFPElementMapping.INCLUDE_PAGE_OVERLAY.equals(getLocalName())) {
if (parent.getNameId() != Constants.FO_SIMPLE_PAGE_MASTER
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageSetupElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageSetupElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageSetupElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AFPPageSetupElement.java Mon Apr 8 11:51:52 2013
@@ -54,7 +54,7 @@ public class AFPPageSetupElement extends
/** {@inheritDoc} */
@Override
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (AFPElementMapping.TAG_LOGICAL_ELEMENT.equals(getLocalName())) {
if (parent.getNameId() != Constants.FO_SIMPLE_PAGE_MASTER
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/afp/extensions/AbstractAFPExtensionObject.java Mon Apr 8 11:51:52 2013
@@ -86,7 +86,7 @@ public abstract class AbstractAFPExtensi
}
/** {@inheritDoc} */
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
super.endOfNode();
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFParser.java Mon Apr 8 11:51:52 2013
@@ -163,25 +163,15 @@ public class IFParser implements IFConst
private Map<String, StructureTreeElement> structureTreeElements
= new HashMap<String, StructureTreeElement>();
- private final class StructureTreeHandler extends DefaultHandler {
+ private class StructureTreeHandler extends DefaultHandler {
- private final Locale pageSequenceLanguage;
-
- private final StructureTreeEventHandler structureTreeEventHandler;
+ protected final StructureTreeEventHandler structureTreeEventHandler;
- private StructureTreeHandler(StructureTreeEventHandler structureTreeEventHandler,
- Locale pageSequenceLanguage) throws SAXException {
- this.pageSequenceLanguage = pageSequenceLanguage;
+ StructureTreeHandler(StructureTreeEventHandler structureTreeEventHandler) {
this.structureTreeEventHandler = structureTreeEventHandler;
}
void startStructureTree(String type) {
- structureTreeEventHandler.startPageSequence(pageSequenceLanguage, type);
- }
-
- public void endDocument() throws SAXException {
- startIFElement(EL_PAGE_SEQUENCE, pageSequenceAttributes);
- pageSequenceAttributes = null;
}
@Override
@@ -191,18 +181,19 @@ public class IFParser implements IFConst
if (localName.equals("marked-content")) {
localName = "#PCDATA";
}
+ StructureTreeElement parent = getStructureTreeElement(attributes);
String structID = attributes.getValue(InternalElementMapping.URI,
InternalElementMapping.STRUCT_ID);
if (structID == null) {
- structureTreeEventHandler.startNode(localName, attributes);
+ structureTreeEventHandler.startNode(localName, attributes, parent);
} else if (localName.equals("external-graphic")
|| localName.equals("instream-foreign-object")) {
StructureTreeElement structureTreeElement
- = structureTreeEventHandler.startImageNode(localName, attributes);
+ = structureTreeEventHandler.startImageNode(localName, attributes, parent);
structureTreeElements.put(structID, structureTreeElement);
} else {
StructureTreeElement structureTreeElement = structureTreeEventHandler
- .startReferencedNode(localName, attributes);
+ .startReferencedNode(localName, attributes, parent);
structureTreeElements.put(structID, structureTreeElement);
}
}
@@ -217,6 +208,28 @@ public class IFParser implements IFConst
}
}
+ private class MainStructureTreeHandler extends StructureTreeHandler {
+
+ private final Locale pageSequenceLanguage;
+
+ MainStructureTreeHandler(StructureTreeEventHandler structureTreeEventHandler,
+ Locale pageSequenceLanguage) throws SAXException {
+ super(structureTreeEventHandler);
+ this.pageSequenceLanguage = pageSequenceLanguage;
+ }
+
+ @Override
+ void startStructureTree(String type) {
+ structureTreeEventHandler.startPageSequence(pageSequenceLanguage, type);
+ }
+
+ public void endDocument() throws SAXException {
+ startIFElement(EL_PAGE_SEQUENCE, pageSequenceAttributes);
+ pageSequenceAttributes = null;
+ }
+
+ }
+
public Handler(IFDocumentHandler documentHandler, FOUserAgent userAgent,
ElementMappingRegistry elementMappingRegistry) {
this.documentHandler = documentHandler;
@@ -264,7 +277,7 @@ public class IFParser implements IFConst
if (localName.equals(EL_PAGE_SEQUENCE) && userAgent.isAccessibilityEnabled()) {
pageSequenceAttributes = new AttributesImpl(attributes);
Locale language = getLanguage(attributes);
- structureTreeHandler = new StructureTreeHandler(
+ structureTreeHandler = new MainStructureTreeHandler(
userAgent.getStructureTreeEventHandler(), language);
} else if (localName.equals(EL_STRUCTURE_TREE)) {
@@ -520,6 +533,7 @@ public class IFParser implements IFConst
public void startElement(Attributes attributes) throws IFException {
documentHandler.startPageHeader();
+ structureTreeHandler = new StructureTreeHandler(userAgent.getStructureTreeEventHandler());
}
public void endElement() throws IFException {
@@ -842,12 +856,19 @@ public class IFParser implements IFConst
}
private void establishStructureTreeElement(Attributes attributes) {
- String structRef = attributes.getValue(InternalElementMapping.URI,
- InternalElementMapping.STRUCT_REF);
+ StructureTreeElement element = getStructureTreeElement(attributes);
+ if (element != null) {
+ documentHandler.getContext().setStructureTreeElement(element);
+ }
+ }
+
+ private StructureTreeElement getStructureTreeElement(Attributes attributes) {
+ String structRef = attributes.getValue(InternalElementMapping.URI, InternalElementMapping.STRUCT_REF);
if (structRef != null && structRef.length() > 0) {
assert structureTreeElements.containsKey(structRef);
- StructureTreeElement structureTreeElement = structureTreeElements.get(structRef);
- documentHandler.getContext().setStructureTreeElement(structureTreeElement);
+ return structureTreeElements.get(structRef);
+ } else {
+ return null;
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFSerializer.java Mon Apr 8 11:51:52 2013
@@ -314,6 +314,9 @@ implements IFConstants, IFPainter, IFDoc
public void startPageHeader() throws IFException {
try {
handler.startElement(EL_PAGE_HEADER);
+ if (this.getUserAgent().isAccessibilityEnabled()) {
+ structureTreeBuilder.replayEventsForRetrievedMarkers(handler);
+ }
} catch (SAXException e) {
throw new IFException("SAX error in startPageHeader()", e);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFStructureTreeBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFStructureTreeBuilder.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFStructureTreeBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/intermediate/IFStructureTreeBuilder.java Mon Apr 8 11:51:52 2013
@@ -33,6 +33,7 @@ import org.apache.fop.accessibility.Stru
import org.apache.fop.accessibility.StructureTreeElement;
import org.apache.fop.accessibility.StructureTreeEventHandler;
import org.apache.fop.fo.extensions.InternalElementMapping;
+import org.apache.fop.util.XMLConstants;
import org.apache.fop.util.XMLUtil;
/**
@@ -176,6 +177,8 @@ final class IFStructureTreeBuilder imple
private final List<SAXEventRecorder> pageSequenceEventRecorders
= new ArrayList<SAXEventRecorder>();
+ private SAXEventRecorder retrievedMarkersEventRecorder;
+
private int idCounter;
/**
@@ -189,6 +192,16 @@ final class IFStructureTreeBuilder imple
pageSequenceEventRecorders.get(pageSequenceIndex).replay(handler);
}
+ public void replayEventsForRetrievedMarkers(ContentHandler handler) throws SAXException {
+ if (!retrievedMarkersEventRecorder.events.isEmpty()) {
+ delegate = StructureTree2SAXEventAdapter.newInstance(handler);
+ delegate.startPageSequence(null, null);
+ retrievedMarkersEventRecorder.replay(handler);
+ delegate.endPageSequence();
+ prepareRetrievedMarkersEventRecorder();
+ }
+ }
+
public void startPageSequence(Locale locale, String role) {
SAXEventRecorder eventRecorder = new SAXEventRecorder();
pageSequenceEventRecorders.add(eventRecorder);
@@ -198,28 +211,51 @@ final class IFStructureTreeBuilder imple
public void endPageSequence() {
delegate.endPageSequence();
+ prepareRetrievedMarkersEventRecorder();
+ }
+
+ private void prepareRetrievedMarkersEventRecorder() {
+ SAXEventRecorder eventRecorder = new SAXEventRecorder();
+ retrievedMarkersEventRecorder = eventRecorder;
+ delegate = StructureTree2SAXEventAdapter.newInstance(eventRecorder);
}
- public StructureTreeElement startNode(String name, Attributes attributes) {
- delegate.startNode(name, attributes);
+ public StructureTreeElement startNode(String name, Attributes attributes, StructureTreeElement parent) {
+ if (parent != null) {
+ attributes = addParentAttribute(new AttributesImpl(attributes), parent);
+ }
+ delegate.startNode(name, attributes, null);
return new IFStructureTreeElement();
}
+ private AttributesImpl addParentAttribute(AttributesImpl attributes, StructureTreeElement parent) {
+ if (parent != null) {
+ attributes.addAttribute(InternalElementMapping.URI,
+ InternalElementMapping.STRUCT_REF,
+ InternalElementMapping.STANDARD_PREFIX + ":" + InternalElementMapping.STRUCT_REF,
+ XMLConstants.CDATA,
+ ((IFStructureTreeElement) parent).getId());
+ }
+ return attributes;
+ }
+
public void endNode(String name) {
delegate.endNode(name);
}
- public StructureTreeElement startImageNode(String name, Attributes attributes) {
+ public StructureTreeElement startImageNode(String name, Attributes attributes, StructureTreeElement parent) {
String id = getNextID();
AttributesImpl atts = addIDAttribute(attributes, id);
- delegate.startImageNode(name, atts);
+ addParentAttribute(atts, parent);
+ delegate.startImageNode(name, atts, null);
return new IFStructureTreeElement(id);
}
- public StructureTreeElement startReferencedNode(String name, Attributes attributes) {
+ public StructureTreeElement startReferencedNode(String name, Attributes attributes, StructureTreeElement parent) {
String id = getNextID();
AttributesImpl atts = addIDAttribute(attributes, id);
- delegate.startReferencedNode(name, atts);
+ addParentAttribute(atts, parent);
+ delegate.startReferencedNode(name, atts, null);
return new IFStructureTreeElement(id);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFLogicalStructureHandler.java Mon Apr 8 11:51:52 2013
@@ -128,9 +128,10 @@ class PDFLogicalStructureHandler {
}
private MarkedContentInfo addToParentTree(PDFStructElem structureTreeElement) {
- PDFStructElem parent = (structureTreeElement instanceof PDFStructElem.Placeholder)
- ? structureTreeElement.getParentStructElem()
- : structureTreeElement;
+ PDFStructElem parent = structureTreeElement;
+ while (parent instanceof PDFStructElem.Placeholder) {
+ parent = parent.getParentStructElem();
+ }
pageParentTreeArray.add(parent);
String type = parent.getStructureType().getName().toString();
int mcid = pageParentTreeArray.length() - 1;
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/PDFStructureTreeBuilder.java Mon Apr 8 11:51:52 2013
@@ -96,8 +96,11 @@ class PDFStructureTreeBuilder implements
addBuilder("float", StandardStructureTypes.Grouping.DIV);
addBuilder("footnote", StandardStructureTypes.InlineLevelStructure.NOTE);
addBuilder("footnote-body", StandardStructureTypes.Grouping.SECT);
+ // Other Formatting Objects
addBuilder("wrapper", StandardStructureTypes.InlineLevelStructure.SPAN);
addBuilder("marker", StandardStructureTypes.Grouping.PRIVATE);
+ addBuilder("retrieve-marker", new PlaceholderBuilder());
+ addBuilder("retrieve-table-marker", new PlaceholderBuilder());
addBuilder("#PCDATA", new PlaceholderBuilder());
}
@@ -354,9 +357,9 @@ class PDFStructureTreeBuilder implements
public void endPageSequence() {
}
- public StructureTreeElement startNode(String name, Attributes attributes) {
- PDFStructElem parent = ancestors.getFirst();
- PDFStructElem structElem = createStructureElement(name, parent, attributes,
+ public StructureTreeElement startNode(String name, Attributes attributes, StructureTreeElement parent) {
+ PDFStructElem parentElem = parent == null ? ancestors.getFirst() : (PDFStructElem) parent;
+ PDFStructElem structElem = createStructureElement(name, parentElem, attributes,
pdfFactory, eventBroadcaster);
ancestors.addFirst(structElem);
return structElem;
@@ -366,12 +369,12 @@ class PDFStructureTreeBuilder implements
ancestors.removeFirst();
}
- public StructureTreeElement startImageNode(String name, Attributes attributes) {
- return startNode(name, attributes);
+ public StructureTreeElement startImageNode(String name, Attributes attributes, StructureTreeElement parent) {
+ return startNode(name, attributes, parent);
}
- public StructureTreeElement startReferencedNode(String name, Attributes attributes) {
- return startNode(name, attributes);
+ public StructureTreeElement startReferencedNode(String name, Attributes attributes, StructureTreeElement parent) {
+ return startNode(name, attributes, parent);
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/extensions/PDFEmbeddedFileElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/extensions/PDFEmbeddedFileElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/extensions/PDFEmbeddedFileElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/pdf/extensions/PDFEmbeddedFileElement.java Mon Apr 8 11:51:52 2013
@@ -49,7 +49,7 @@ public class PDFEmbeddedFileElement exte
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (parent.getNameId() != Constants.FO_DECLARATIONS) {
invalidChildError(getLocator(), parent.getName(), getNamespaceURI(), getName(),
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSCommentElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSCommentElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSCommentElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSCommentElement.java Mon Apr 8 11:51:52 2013
@@ -42,7 +42,7 @@ public abstract class AbstractPSCommentE
* @throws FOPException if there's a problem during processing
* @see org.apache.fop.fo.FONode#startOfNode()
*/
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
if (parent.getNameId() != Constants.FO_DECLARATIONS
&& parent.getNameId() != Constants.FO_SIMPLE_PAGE_MASTER) {
invalidChildError(getLocator(), parent.getName(), getNamespaceURI(), getName(),
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionElement.java Mon Apr 8 11:51:52 2013
@@ -97,7 +97,7 @@ public abstract class AbstractPSExtensio
* @see org.apache.fop.fo.FONode#endOfNode()
* @throws FOPException if there's a problem during processing
*/
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
super.endOfNode();
String s = ((PSExtensionAttachment)getExtensionAttachment()).getContent();
if (s == null || s.length() == 0) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/AbstractPSExtensionObject.java Mon Apr 8 11:51:52 2013
@@ -86,7 +86,7 @@ public abstract class AbstractPSExtensio
}
/** {@inheritDoc} */
- protected void endOfNode() throws FOPException {
+ public void endOfNode() throws FOPException {
super.endOfNode();
String s = setupCode.getContent();
if (s == null || s.length() == 0) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSPageSetupCodeElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSPageSetupCodeElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSPageSetupCodeElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSPageSetupCodeElement.java Mon Apr 8 11:51:52 2013
@@ -40,7 +40,7 @@ public class PSPageSetupCodeElement exte
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (parent.getNameId() != Constants.FO_SIMPLE_PAGE_MASTER) {
invalidChildError(getLocator(), parent.getName(), getNamespaceURI(), getName(),
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetPageDeviceElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetPageDeviceElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetPageDeviceElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetPageDeviceElement.java Mon Apr 8 11:51:52 2013
@@ -49,7 +49,7 @@ public class PSSetPageDeviceElement exte
* @throws FOPException if there's a problem during processing
* @see org.apache.fop.fo.FONode#startOfNode()
*/
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if ( !((parent.getNameId() == Constants.FO_DECLARATIONS)
|| (parent.getNameId() == Constants.FO_SIMPLE_PAGE_MASTER)) ) {
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetupCodeElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetupCodeElement.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetupCodeElement.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/extensions/PSSetupCodeElement.java Mon Apr 8 11:51:52 2013
@@ -40,7 +40,7 @@ public class PSSetupCodeElement extends
}
/** {@inheritDoc} */
- protected void startOfNode() throws FOPException {
+ public void startOfNode() throws FOPException {
super.startOfNode();
if (parent.getNameId() != Constants.FO_DECLARATIONS) {
invalidChildError(getLocator(), parent.getName(), getNamespaceURI(), getName(),
Modified: xmlgraphics/fop/trunk/test/java/org/apache/fop/render/intermediate/IFStructureTreeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/intermediate/IFStructureTreeBuilderTestCase.java?rev=1465599&r1=1465598&r2=1465599&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/java/org/apache/fop/render/intermediate/IFStructureTreeBuilderTestCase.java (original)
+++ xmlgraphics/fop/trunk/test/java/org/apache/fop/render/intermediate/IFStructureTreeBuilderTestCase.java Mon Apr 8 11:51:52 2013
@@ -90,7 +90,7 @@ public class IFStructureTreeBuilderTestC
final ContentHandler handler = mock(ContentHandler.class);
sut.startPageSequence(null, null);
- sut.startNode(nodeName, createSimpleAttributes(attributes));
+ sut.startNode(nodeName, createSimpleAttributes(attributes), null);
sut.endPageSequence();
sut.replayEventsForPageSequence(handler, 0);
Added: xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo?rev=1465599&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo (added)
+++ xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo Mon Apr 8 11:51:52 2013
@@ -0,0 +1,169 @@
+<?xml version="1.0" standalone="no"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xml:lang="en-GB">
+ <fo:layout-master-set>
+ <fo:simple-page-master master-name="page"
+ page-height="200pt" page-width="280pt" margin="10pt">
+ <fo:region-body/>
+ <fo:region-after extent="100pt" display-align="after"/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+ <fo:page-sequence master-reference="page">
+ <fo:static-content flow-name="xsl-region-after" line-height="10pt" font-size="8pt">
+ <fo:block>Retrieving the marker:</fo:block>
+ <fo:retrieve-marker retrieve-class-name="marker"/>
+ <fo:block>Marker retrieved.</fo:block>
+ </fo:static-content>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block><fo:marker marker-class-name="marker">
+ <fo:table width="100%" table-layout="fixed">
+ <fo:table-header>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block-container>
+ <fo:block>Inside a block-container.</fo:block>
+ </fo:block-container>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>A character: <fo:character character="c" color="blue"/>.</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block text-align="center"><fo:instream-foreign-object fox:alt-text="Nice
+ circles." width="30pt" overflow="hidden" display-align="center"
+ content-width="30pt">
+ <svg xmlns="http://www.w3.org/2000/svg" width="319" height="286.6">
+ <g style="fill-opacity:0.7; stroke:black; stroke-width:3"
+ transform="translate(0, 286.6) scale(1, -1) translate(100, 100)">
+ <circle cx="50" cy="86.6" r="80" style="fill:red;"/>
+ <circle cx="0" cy="0" r="80" style="fill:green;"/>
+ <circle cx="100" cy="0" r="80" style="fill:blue;"/>
+ </g>
+ </svg>
+ </fo:instream-foreign-object></fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block text-align-last="justify">Lead<fo:leader leader-pattern="dots"
+ leader-length.minimum="0" leader-length.optimum="100%"/>er.</fo:block>
+ <fo:block>Page <fo:page-number/>.</fo:block>
+ <fo:block-container absolute-position="absolute" width="35pt" height="10pt" top="20pt"
+ right="2pt" color="purple" text-align="right">
+ <fo:block>Absolute.</fo:block>
+ </fo:block-container>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-header>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table></fo:marker>Text in the region-body.</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+
+ <fo:page-sequence master-reference="page">
+ <fo:static-content flow-name="xsl-region-after" line-height="10pt" font-size="8pt"
+ role="artifact">
+ <fo:block>This whole page footer should neither appear in the structure tree nor be read out
+ loud.</fo:block>
+ <fo:block>Retrieving the marker:</fo:block>
+ <fo:retrieve-marker retrieve-class-name="marker"/>
+ <fo:block>Marker retrieved.</fo:block>
+ </fo:static-content>
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block><fo:marker marker-class-name="marker">
+ <fo:table width="100%" table-layout="fixed">
+ <fo:table-header>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block-container>
+ <fo:block>Inside a block-container.</fo:block>
+ </fo:block-container>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>A character: <fo:character character="c" color="blue"/>.</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block text-align="center"><fo:instream-foreign-object fox:alt-text="Nice
+ circles." width="30pt" overflow="hidden" display-align="center"
+ content-width="30pt">
+ <svg xmlns="http://www.w3.org/2000/svg" width="319" height="286.6">
+ <g style="fill-opacity:0.7; stroke:black; stroke-width:3"
+ transform="translate(0, 286.6) scale(1, -1) translate(100, 100)">
+ <circle cx="50" cy="86.6" r="80" style="fill:red;"/>
+ <circle cx="0" cy="0" r="80" style="fill:green;"/>
+ <circle cx="100" cy="0" r="80" style="fill:blue;"/>
+ </g>
+ </svg>
+ </fo:instream-foreign-object></fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block text-align-last="justify">Lead<fo:leader leader-pattern="dots"
+ leader-length.minimum="0" leader-length.optimum="100%"/>er.</fo:block>
+ <fo:block>Page <fo:page-number/>.</fo:block>
+ <fo:block-container absolute-position="absolute" width="35pt" height="10pt" top="20pt"
+ right="2pt" color="purple" text-align="right">
+ <fo:block>Absolute.</fo:block>
+ </fo:block-container>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-header>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>1.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="1pt solid black">
+ <fo:block>2.4</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table></fo:marker>Text in the region-body.</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>
Propchange: xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/test/pdf/accessibility/markers.fo
------------------------------------------------------------------------------
svn:keywords = Id
Added: xmlgraphics/fop/trunk/test/pdf/accessibility/pdf/markers.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/pdf/accessibility/pdf/markers.pdf?rev=1465599&view=auto
==============================================================================
Binary file - no diff available.
Propchange: xmlgraphics/fop/trunk/test/pdf/accessibility/pdf/markers.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org