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 je...@apache.org on 2007/04/04 17:05:32 UTC
svn commit: r525526 - in /xmlgraphics/fop/trunk/src/java: META-INF/services/
org/apache/fop/fo/extensions/ org/apache/fop/fo/extensions/destination/
org/apache/fop/fo/flow/ org/apache/fop/layoutmgr/
Author: jeremias
Date: Wed Apr 4 08:05:30 2007
New Revision: 525526
URL: http://svn.apache.org/viewvc?view=rev&rev=525526
Log:
Fixes for issues introduced with fox:destination:
DestinationElementMapping masks ExtensionElementMapping. That caused the tests for widow/orphan extension on tables to fail.
Improved Block child validation code (will need to be done for all FOs where fox:destination should be valid. Currently works only as child of fo:block or above fo:page-sequence where no layout managers are constructed.
No LMMaker for fox:destination. Improved the handling there so adding the extension element to the list there isn't necessary.
Removed:
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/DestinationElementMapping.java
Modified:
xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.fo.ElementMapping
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/Destination.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
Modified: xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.fo.ElementMapping
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.fo.ElementMapping?view=diff&rev=525526&r1=525525&r2=525526
==============================================================================
--- xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.fo.ElementMapping (original)
+++ xmlgraphics/fop/trunk/src/java/META-INF/services/org.apache.fop.fo.ElementMapping Wed Apr 4 08:05:30 2007
@@ -7,5 +7,4 @@
org.apache.fop.fo.extensions.xmp.RDFElementMapping
org.apache.fop.render.ps.extensions.PSExtensionElementMapping
org.apache.fop.render.afp.extensions.AFPElementMapping
-org.apache.fop.render.pcl.extensions.PCLElementMapping
-org.apache.fop.fo.extensions.destination.DestinationElementMapping
\ No newline at end of file
+org.apache.fop.render.pcl.extensions.PCLElementMapping
\ No newline at end of file
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java?view=diff&rev=525526&r1=525525&r2=525526
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java Wed Apr 4 08:05:30 2007
@@ -20,7 +20,9 @@
package org.apache.fop.fo.extensions;
import org.apache.fop.fo.ElementMapping;
+import org.apache.fop.fo.FONode;
import org.apache.fop.fo.UnknownXMLObj;
+import org.apache.fop.fo.extensions.destination.Destination;
import org.apache.fop.util.QName;
import java.util.HashMap;
@@ -41,6 +43,7 @@
propertyAttributes.add("block-progression-unit");
propertyAttributes.add("widow-content-limit");
propertyAttributes.add("orphan-content-limit");
+ propertyAttributes.add("internal-destination");
}
/**
@@ -58,9 +61,16 @@
foObjs = new HashMap();
foObjs.put("outline", new UnknownXMLObj.Maker(URI));
foObjs.put("label", new UnknownXMLObj.Maker(URI));
+ foObjs.put("destination", new DestinationMaker());
}
}
+ static class DestinationMaker extends ElementMapping.Maker {
+ public FONode make(FONode parent) {
+ return new Destination(parent);
+ }
+ }
+
/** @see org.apache.fop.fo.ElementMapping#getStandardPrefix() */
public String getStandardPrefix() {
return "fox";
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/Destination.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/Destination.java?view=diff&rev=525526&r1=525525&r2=525526
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/Destination.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/extensions/destination/Destination.java Wed Apr 4 08:05:30 2007
@@ -22,9 +22,7 @@
import org.apache.fop.fo.ValidationException;
import org.apache.fop.apps.FOPException;
import org.apache.fop.fo.PropertyList;
-import org.apache.fop.fo.FOEventHandler;
import org.apache.fop.fo.FONode;
-import org.apache.fop.fo.FObj;
import org.apache.fop.fo.pagination.Root;
import org.apache.fop.fo.extensions.ExtensionElementMapping;
@@ -34,10 +32,10 @@
/**
* Class for named destinations in PDF.
*/
-public class Destination extends FObj {
+public class Destination extends FONode {
- String internalDestination;
- Root root;
+ private String internalDestination;
+ private Root root;
/**
* Constructs a Destination object (called by Maker).
@@ -50,15 +48,17 @@
}
/**
- * @see org.apache.fop.fo.FObj#bind(PropertyList)
+ * @see org.apache.fop.fo.FONode#processNode(java.lang.String, org.xml.sax.Locator,
+ * org.xml.sax.Attributes, org.apache.fop.fo.PropertyList)
*/
- public void bind(PropertyList pList) throws FOPException {
- internalDestination = pList.get(PR_INTERNAL_DESTINATION).getString();
- if (internalDestination.length() == 0) {
+ public void processNode(String elementName, Locator locator,
+ Attributes attlist, PropertyList pList) throws FOPException {
+ internalDestination = attlist.getValue("internal-destination");
+ if (internalDestination == null || internalDestination.length() == 0) {
attributeError("Missing attribute: internal-destination must be specified.");
}
}
-
+
/**
* @see org.apache.fop.fo.FONode#endOfNode
*/
@@ -75,6 +75,10 @@
invalidChildError(loc, nsURI, localName);
}
+ /**
+ * Returns the internal destination (an reference of the id property of any FO).
+ * @return the internal destination
+ */
public String getInternalDestination() {
return internalDestination;
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java?view=diff&rev=525526&r1=525525&r2=525526
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/Block.java Wed Apr 4 08:05:30 2007
@@ -296,28 +296,27 @@
* fo:inline-container."
*/
protected void validateChildNode(Locator loc, String nsURI, String localName)
- throws ValidationException
- {
- if (FOX_URI.equals(nsURI) && localName.equals("destination")) {
- // Found a fox:destination element - ignore it
- } else if (FO_URI.equals(nsURI) && localName.equals("marker")) {
- if (blockOrInlineItemFound || initialPropertySetFound) {
- nodesOutOfOrderError(loc, "fo:marker",
- "initial-property-set? (#PCDATA|%inline;|%block;)");
- }
- } else if (FO_URI.equals(nsURI) && localName.equals("initial-property-set")) {
- if (initialPropertySetFound) {
- tooManyNodesError(loc, "fo:initial-property-set");
- } else if (blockOrInlineItemFound) {
- nodesOutOfOrderError(loc, "fo:initial-property-set",
- "(#PCDATA|%inline;|%block;)");
+ throws ValidationException {
+ if (FO_URI.equals(nsURI)) {
+ if (localName.equals("marker")) {
+ if (blockOrInlineItemFound || initialPropertySetFound) {
+ nodesOutOfOrderError(loc, "fo:marker",
+ "initial-property-set? (#PCDATA|%inline;|%block;)");
+ }
+ } else if (localName.equals("initial-property-set")) {
+ if (initialPropertySetFound) {
+ tooManyNodesError(loc, "fo:initial-property-set");
+ } else if (blockOrInlineItemFound) {
+ nodesOutOfOrderError(loc, "fo:initial-property-set",
+ "(#PCDATA|%inline;|%block;)");
+ } else {
+ initialPropertySetFound = true;
+ }
+ } else if (isBlockOrInlineItem(nsURI, localName)) {
+ blockOrInlineItemFound = true;
} else {
- initialPropertySetFound = true;
+ invalidChildError(loc, nsURI, localName);
}
- } else if (isBlockOrInlineItem(nsURI, localName)) {
- blockOrInlineItemFound = true;
- } else {
- invalidChildError(loc, nsURI, localName);
}
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java?view=diff&rev=525526&r1=525525&r2=525526
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java Wed Apr 4 08:05:30 2007
@@ -28,6 +28,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.fop.fo.FOElementMapping;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FOText;
import org.apache.fop.fo.FObjMixed;
@@ -140,7 +141,6 @@
makers.put(TableHeader.class, new Maker());
makers.put(Wrapper.class, new WrapperLayoutManagerMaker());
makers.put(Title.class, new InlineLayoutManagerMaker());
- makers.put(Destination.class, new Maker());
}
/**
@@ -149,7 +149,13 @@
public void makeLayoutManagers(FONode node, List lms) {
Maker maker = (Maker) makers.get(node.getClass());
if (maker == null) {
- log.error("No LayoutManager maker for class " + node.getClass());
+ if (FOElementMapping.URI.equals(node.getNamespaceURI())) {
+ log.error("No LayoutManager maker for class " + node.getClass());
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Skipping the creation of a layout manager for " + node.getClass());
+ }
+ }
} else {
maker.make(node, lms);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org