Author: jeremias
Date: Mon Mar 17 08:59:02 2008
New Revision: 637952
URL: http://svn.apache.org/viewvc?rev=637952&view=rev
Log:
Events on FOTreeBuilder.
Modified:
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
Modified:
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
(original)
+++
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/events/EventFormatter.xml
Mon Mar 17 08:59:02 2008
@@ -46,6 +46,8 @@
<message
key="org.apache.fop.fo.FOValidationEventProducer.illegalRegionName">The
region-name "{regionName}" for {elementName} is not
permitted.{{locator}}</message>
<message
key="org.apache.fop.fo.FOValidationEventProducer.nonZeroBorderPaddingOnRegion">Border
and padding for {elementName} "{regionName}" must be '0' (See 6.4.13 in XSL
1.0).{{locator}}</message>
<message
key="org.apache.fop.fo.FOValidationEventProducer.columnCountErrorOnRegionBodyOverflowScroll">If
overflow property is set to "scroll" on {elementName}, a column-count other
than "1" may not be specified.{{locator}}</message>
+ <message
key="org.apache.fop.fo.FOValidationEventProducer.invalidFORoot">First element
must be the fo:root formatting object. Found {elementName} instead. Please make
sure you're producing a valid XSL-FO document.</message>
+ <message
key="org.apache.fop.fo.FOValidationEventProducer.emptyDocument">Document is
empty (something might be wrong with your XSLT stylesheet).</message>
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.nonAutoBPDOnTable">Only a
value of "auto" for block-progression-dimension has a well-specified behavior
on fo:table. Falling back to "auto".{{locator}}</message>
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.noTablePaddingWithCollapsingBorderModel">In
collapsing border model a table does not have padding (see
http://www.w3.org/TR/REC-CSS2/tables.html#collapsing-borders), but a non-zero
value for padding was found. The padding will be ignored.{{locator}}</message>
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.noMixRowsAndCells">Either
fo:table-rows or fo:table-cells may be children of an {elementName} but not
both.{{locator}}</message>
@@ -56,9 +58,9 @@
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.warnImplicitColumns">table-layout=\"fixed\"
and column-width unspecified => falling back to
proportional-column-width(1){{locator}}</message>
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.paddingNotApplicable">padding-*
properties are not applicable to {elementName}, but a non-zero value for
padding was found.{{locator}}</message>
<message
key="org.apache.fop.fo.flow.table.TableEventProducer.cellOverlap">{elementName}
overlaps in column {column}.<!-- no locator here, exception will be wrapped
--></message>
+ <message
key="org.apache.fop.fo.flow.table.TableEventProducer.breakIgnoredDueToRowSpanning">{breakBefore,if,break-before,break-after}
ignored on {elementName} because of row spanning in progress (See XSL 1.1,
{breakBefore,if,7.20.2,7.20.1}){{locator}}</message>
<message
key="org.apache.fop.events.ResourceEventProducer.imageNotFound">Image not
found. URI: {uri}{{locator}}</message>
<message key="org.apache.fop.events.ResourceEventProducer.imageError">Image
not available. URI: {uri}. Reason: {e}{{locator}}</message>
<message key="org.apache.fop.events.ResourceEventProducer.imageIOError">I/O
error while loading image. URI: {uri}. Reason: {ioe}{{locator}}</message>
<message
key="org.apache.fop.events.ResourceEventProducer.ifoNoIntrinsiceSize">The
intrinsic dimensions of an instream-foreign-object could not be
determined.{{locator}}</message>
- <message
key="org.apache.fop.fo.flow.table.TableEventProducer.breakIgnoredDueToRowSpanning">{breakBefore,if,break-before,break-after}
ignored on {elementName} because of row spanning in progress (See XSL 1.1,
{breakBefore,if,7.20.2,7.20.1}){{locator}}</message>
</catalogue>
Modified:
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
(original)
+++
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOTreeBuilder.java
Mon Mar 17 08:59:02 2008
@@ -158,8 +158,10 @@
public void endDocument() throws SAXException {
this.delegate.endDocument();
if (this.rootFObj == null && empty) {
- throw new ValidationException(
- "Document is empty (something might be wrong with your
XSLT stylesheet).");
+ FOValidationEventProducer eventProducer
+ = FOValidationEventProducer.Factory.create(
+ foEventHandler.getUserAgent().getEventBroadcaster());
+ eventProducer.emptyDocument(this);
}
rootFObj = null;
if (log.isDebugEnabled()) {
@@ -274,12 +276,12 @@
if (rootFObj == null) {
empty = false;
if (!namespaceURI.equals(FOElementMapping.URI)
- || !localName.equals("root")) {
- throw new ValidationException(
- "Error: First element must be the fo:root formatting
object. "
- + "Found " + FONode.getNodeString(namespaceURI,
localName)
- + " instead."
- + " Please make sure you're producing a valid XSL-FO
document.");
+ || !localName.equals("root")) {
+ FOValidationEventProducer eventProducer
+ = FOValidationEventProducer.Factory.create(
+
foEventHandler.getUserAgent().getEventBroadcaster());
+ eventProducer.invalidFORoot(this,
FONode.getNodeString(namespaceURI, localName),
+ getEffectiveLocator());
}
} else { // check that incoming node is valid for currentFObj
if (currentFObj.getNamespaceURI().equals(FOElementMapping.URI)
@@ -288,8 +290,7 @@
}
}
- ElementMapping.Maker fobjMaker =
- findFOMaker(namespaceURI, localName);
+ ElementMapping.Maker fobjMaker = findFOMaker(namespaceURI,
localName);
try {
foNode = fobjMaker.make(currentFObj);
@@ -358,8 +359,7 @@
if (currentPropertyList != null
&& currentPropertyList.getFObj() == currentFObj
&& !foEventHandler.inMarker()) {
- currentPropertyList =
- currentPropertyList.getParentPropertyList();
+ currentPropertyList =
currentPropertyList.getParentPropertyList();
}
if (currentFObj.getNameId() == Constants.FO_MARKER) {
Modified:
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java?rev=637952&r1=637951&r2=637952&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
(original)
+++
xmlgraphics/fop/branches/Temp_ProcessingFeedback/src/java/org/apache/fop/fo/FOValidationEventProducer.java
Mon Mar 17 08:59:02 2008
@@ -315,4 +315,23 @@
void columnCountErrorOnRegionBodyOverflowScroll(Object source, String
elementName,
Locator loc) throws ValidationException;
+ /**
+ * fo:root must be root.
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param loc the location of the error or null
+ * @throws ValidationException the validation error provoked by the method
call
+ * @event.severity FATAL
+ */
+ void invalidFORoot(Object source, String elementName,
+ Locator loc) throws ValidationException;
+
+ /**
+ * No FO document was found.
+ * @param source the event source
+ * @throws ValidationException the validation error provoked by the method
call
+ * @event.severity FATAL
+ */
+ void emptyDocument(Object source) throws ValidationException;
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]