[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