You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/05/28 22:04:43 UTC
svn commit: r542311 - in
/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid:
IValidationDelegate.java ValidationDelegate.java
Author: jkuhnert
Date: Mon May 28 13:04:42 2007
New Revision: 542311
URL: http://svn.apache.org/viewvc?view=rev&rev=542311
Log:
Fixes TAPESTRY-1313. Now that IMarkupWriter supports appending attributes it is safe to write some default css class names out for fieldInvalid/fieldMissing classes since they get used on the client side validation anyways.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/IValidationDelegate.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationDelegate.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/IValidationDelegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/IValidationDelegate.java?view=diff&rev=542311&r1=542310&r2=542311
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/IValidationDelegate.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/IValidationDelegate.java Mon May 28 13:04:42 2007
@@ -14,15 +14,15 @@
package org.apache.tapestry.valid;
-import java.io.Serializable;
-import java.util.List;
-
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.TextField;
+import java.io.Serializable;
+import java.util.List;
+
/**
* Interface used to track validation errors in forms and
* {@link IFormComponent form element component}s (including
@@ -355,8 +355,7 @@
* component.
*/
- void writeLabelSuffix(IFormComponent component,
- IMarkupWriter writer, IRequestCycle cycle);
+ void writeLabelSuffix(IFormComponent component, IMarkupWriter writer, IRequestCycle cycle);
/**
* Returns true if any form component has errors.
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationDelegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationDelegate.java?view=diff&rev=542311&r1=542310&r2=542311
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationDelegate.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationDelegate.java Mon May 28 13:04:42 2007
@@ -14,19 +14,14 @@
package org.apache.tapestry.valid;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
import org.apache.tapestry.form.IFormComponent;
+import java.util.*;
+
/**
* A base implementation of {@link IValidationDelegate} that can be used as a
* managed bean. This class is often subclassed, typically to override
@@ -309,7 +304,7 @@
}
/**
- * Does nothing. Override in a subclass to decoreate fields.
+ * Does nothing. Override in a subclass to decorate fields.
*/
public void writePrefix(IMarkupWriter writer, IRequestCycle cycle,
@@ -318,15 +313,27 @@
}
/**
- * Does nothing. Override in a subclass to decorate fields.
+ * Currently appends a single css class attribute of <code>fieldInvalid</code> if the field
+ * is in error. If the field has a matching constraint of {@link ValidationConstraint#REQUIRED}
+ * the <code>fieldMissing</code> is written instead.
*/
public void writeAttributes(IMarkupWriter writer, IRequestCycle cycle,
IFormComponent component, IValidator validator)
{
- if (isInError()) {
+ IFieldTracking tracking = getFieldTracking(component);
+ if (tracking == null)
+ return;
+
+ if (tracking.getConstraint() != null
+ && tracking.getConstraint() == ValidationConstraint.REQUIRED)
+ {
+ writer.appendAttribute("class", "fieldMissing");
+ } else if (tracking.isInError())
+ {
+
writer.appendAttribute("class", "fieldInvalid");
- }
+ }
}
/**
@@ -362,7 +369,8 @@
public IRender getFirstError()
{
- if (Tapestry.size(_trackings) == 0) return null;
+ if (Tapestry.size(_trackings) == 0)
+ return null;
Iterator i = _trackings.iterator();
@@ -392,6 +400,13 @@
IFieldTracking tracking = (IFieldTracking) _trackingMap.get(fieldName);
return tracking != null && tracking.isInError();
+ }
+
+ protected IFieldTracking getFieldTracking(IFormComponent component)
+ {
+ String fieldName = component.getName();
+
+ return (IFieldTracking) _trackingMap.get(fieldName);
}
/**