[jboss-cvs] jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/util ...
Peter Muir
peter at bleepbleep.org.uk
Tue May 8 10:07:25 EDT 2007
User: pmuir
Date: 07/05/08 10:07:25
Added: seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/util
Decoration.java
Log:
Updates for CDK port
Revision Changes Path
1.1 date: 2007/05/08 14:07:25; author: pmuir; state: Exp;jboss-seam/seam-ui-cdk/jboss-seam-ui/src/main/java/org/jboss/seam/ui/util/Decoration.java
Index: Decoration.java
===================================================================
package org.jboss.seam.ui.util;
import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import org.jboss.seam.ui.UIDecorate;
public class Decoration
{
/**
* A depth-first search for a rendered EditableValueHolder
* @param component UIComponent to start search at
* @return The found EditableValueHolder, null if none found
*/
public static UIComponent getEditableValueHolder(UIComponent component)
{
if (component instanceof EditableValueHolder)
{
return component.isRendered() ? component : null;
}
for (Object child: component.getChildren())
{
if (child instanceof UIComponent)
{
UIComponent evh = getEditableValueHolder( (UIComponent) child);
if (evh!=null) return evh;
}
}
return null;
}
/**
* A depth-first search for any FacesMessages on rendered EditableValueHolders
* @param component UIComponent to start search at
* @return true if any FacesMessages were found
*
*/
public static boolean isComponentHasFacesMessages(UIComponent component, FacesContext context)
{
if ( !component.isRendered() ) return false;
if ( component instanceof EditableValueHolder )
{
if ( ! ( (EditableValueHolder) component ).isValid() ) return true;
}
for (Object child: component.getChildren())
{
if (child instanceof UIComponent)
{
boolean message = isComponentHasFacesMessages( (UIComponent) child, context );
if (message) return true;
}
}
return false;
}
/**
* A depth-first search for any required, rendered EditableValueHolders
* @param component UIComponent to start search at
* @return true if any FacesMessages were found
*
*/
public static boolean isComponentRequired(UIComponent component, FacesContext context)
{
if ( !component.isRendered() ) return false;
if ( component instanceof EditableValueHolder )
{
if ( ( (EditableValueHolder) component ).isRequired() ) return true;
}
for (Object child: component.getChildren())
{
if (child instanceof UIComponent)
{
boolean required = isComponentRequired( (UIComponent) child, context );
if (required) return true;
}
}
return false;
}
public static String getInputId(UIComponent cmp)
{
String forId = cmp instanceof UIDecorate ?
( (UIDecorate) cmp ).getFor() : null;
if (forId==null)
{
UIComponent evh = getEditableValueHolder(cmp);
return evh==null ? null : evh.getId();
}
else
{
return forId;
}
}
}
More information about the jboss-cvs-commits
mailing list