[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...
Shane Bryzak
sbryzak at redhat.com
Tue Apr 24 04:56:02 EDT 2007
User: sbryzak2
Date: 07/04/24 04:56:02
Modified: src/ui/org/jboss/seam/ui UIValidateAll.java
Log:
JBSEAM-1236
Revision Changes Path
1.6 +46 -6 jboss-seam/src/ui/org/jboss/seam/ui/UIValidateAll.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIValidateAll.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/UIValidateAll.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- UIValidateAll.java 13 Mar 2007 08:56:32 -0000 1.5
+++ UIValidateAll.java 24 Apr 2007 08:56:02 -0000 1.6
@@ -1,16 +1,20 @@
package org.jboss.seam.ui;
+import java.io.IOException;
import java.util.List;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.component.UIComponentBase;
+import javax.faces.context.FacesContext;
public class UIValidateAll extends UIComponentBase
{
public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.ValidateAll";
public static final String COMPONENT_TYPE = "org.jboss.seam.ui.UIValidateAll";
+ private boolean validatorsAdded = false;
+
@Override
public String getFamily()
{
@@ -18,10 +22,21 @@
}
@Override
- public List getChildren()
+ public boolean getRendersChildren()
+ {
+ return true;
+ }
+
+ @Override
+ public void encodeChildren(FacesContext context)
+ throws IOException
+ {
+ if (!validatorsAdded)
{
addValidators( super.getChildren() );
- return super.getChildren();
+ validatorsAdded = true;
+ }
+ JSF.renderChildren(context, this);
}
private void addValidators(List children)
@@ -31,7 +46,8 @@
if (child instanceof EditableValueHolder)
{
EditableValueHolder evh = (EditableValueHolder) child;
- if ( evh.getValidators().length==0 && evh.getValidator()==null )
+
+ if ( evh.getValidators().length==0 && evh.getValidator()==null)
{
evh.addValidator( new ModelValidator() );
}
@@ -43,4 +59,28 @@
}
}
+ private Object[] values;
+
+ @Override
+ public Object saveState(FacesContext context)
+ {
+ if (values == null)
+ {
+ values = new Object[2];
+ }
+
+ values[0] = super.saveState(context);
+ values[1] = validatorsAdded ? Boolean.TRUE : Boolean.FALSE;
+
+ return (values);
+ }
+
+ @Override
+ public void restoreState(FacesContext context, Object state)
+ {
+ values = (Object[]) state;
+ super.restoreState(context, values[0]);
+
+ validatorsAdded = ((Boolean) values[1]).booleanValue();
+ }
}
More information about the jboss-cvs-commits
mailing list