Author: bruno Date: Tue Oct 5 08:03:11 2004 New Revision: 53803 Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/jx-macros.xml Log: Fix ft:validation-error handling.
Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java ============================================================================== --- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java (original) +++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/JXMacrosHelper.java Tue Oct 5 08:03:11 2004 @@ -14,6 +14,7 @@ import org.apache.cocoon.xml.AbstractXMLPipe; import org.apache.cocoon.xml.AttributesImpl; import org.apache.cocoon.xml.XMLConsumer; +import org.apache.cocoon.xml.XMLUtils; import org.apache.commons.collections.ArrayStack; import org.xml.sax.Attributes; import org.xml.sax.SAXException; @@ -143,14 +144,22 @@ getRepeater(widget, id).generateSize(this.cocoonConsumer); } + private static final String VALIDATION_ERROR = "validation-error"; + public void generateValidationError(ValidationError error) throws SAXException { // Needs to be buffered RootBufferingPipe pipe = new RootBufferingPipe(this.cocoonConsumer); this.stack.push(pipe); this.stack.push(error); + pipe.startElement(Constants.INSTANCE_NS, VALIDATION_ERROR, Constants.INSTANCE_PREFIX_COLON + VALIDATION_ERROR, XMLUtils.EMPTY_ATTRIBUTES); error.generateSaxFragment(pipe); + pipe.endElement(Constants.INSTANCE_NS, VALIDATION_ERROR, Constants.INSTANCE_PREFIX_COLON + VALIDATION_ERROR); } - + + public boolean isValidationError(Object object) { + return object instanceof ValidationError; + } + public void defineClassBody(Form form, String id, Object body) { // TODO: check that class actually exists in the form if (this.classes == null) { Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/jx-macros.xml ============================================================================== --- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/jx-macros.xml (original) +++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/generation/jx-macros.xml Tue Oct 5 08:03:11 2004 @@ -137,7 +137,7 @@ <jx:set var="widget" value="${cformsHelper.getWidget(widget, id)}"/> <jx:set var="validationError" value="${widget.getValidationError()}"/> - <jx:if test="${validationError != null}"> + <jx:if test="${cformsHelper.isValidationError(validationError)}"> <jx:set var="cformsDummy" value="${cformsHelper.generateValidationError(validationError)}"/> <jx:evalBody/> <jx:set var="cformsDummy" value="${cformsHelper.flushRoot(validationError)}"/>