javax.faces.component.UIComponent Java Examples

The following examples show how to use javax.faces.component.UIComponent. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DynFormFactory.java    From yawl with GNU Lesser General Public License v3.0 6 votes vote down vote up
private String getStyle(UIComponent component) {
    String style = "";
    if ((component instanceof Label))
        style = ((Label) component).getStyle();
    else if ((component instanceof SelectorBase))
        style = ((SelectorBase) component).getStyle();
    else if ((component instanceof FieldBase))
        style = ((FieldBase) component).getStyle();
    else if ((component instanceof FlatPanel))
        style = ((FlatPanel) component).getStyle();
    else if ((component instanceof StaticText))
        style = ((StaticText) component).getStyle();
    else if ((component instanceof ImageComponent))
        style = ((ImageComponent) component).getStyle();
    else if ((component instanceof DocComponent))
        style = ((DocComponent) component).getStyle();
    return style;
}
 
Example #2
Source File: HideDivisionRenderer.java    From sakai with Educational Community License v2.0 6 votes vote down vote up
public void encodeChildren(FacesContext context, UIComponent component)
	throws IOException
{
  if (!component.isRendered())
  {
    return;
  }

  Iterator children = component.getChildren().iterator();
  while (children.hasNext()) {
    UIComponent child = (UIComponent) children.next();
    if(!((child instanceof org.sakaiproject.tool.messageforums.jsf.BarLinkComponent)||
        (child instanceof HtmlOutputText)))
    {
      child.encodeBegin(context);
      child.encodeChildren(context);
      child.encodeEnd(context);
    }
  }
}
 
Example #3
Source File: TagUtil.java    From sakai with Educational Community License v2.0 6 votes vote down vote up
/**
 * Set a MethodBinding on a component - used by tags setProperties() method.
 */
public static void setMethodBinding(UIComponent component, String name, String value,
        Class[] paramTypes)
{
    if (value == null)
    {
        return;
    }
    if (UIComponentTag.isValueReference(value))
    {
        FacesContext context = FacesContext.getCurrentInstance();
        Application app = context.getApplication();
        MethodBinding mb = app.createMethodBinding(value, paramTypes);
        component.getAttributes().put(name, mb);
    }
}
 
Example #4
Source File: LongValidator.java    From development with Apache License 2.0 6 votes vote down vote up
private static void validate(FacesContext context, UIComponent uiComponent,
        String value) throws ValidatorException {
    Long minValue = getMinValue(uiComponent);
    Long maxValue = getMaxValue(uiComponent);
    long parsedLong = parse(context, value, minValue, maxValue);
    if (!isInRange(parsedLong, minValue, maxValue)) {
        minValue = (minValue != null ? minValue : Long
                .valueOf(Long.MIN_VALUE));
        maxValue = (maxValue != null ? maxValue : Long
                .valueOf(Long.MAX_VALUE));
        String message = JSFUtils.getText(
                BaseBean.ERROR_LONG_VALUE_OUT_OF_RANGE,
                new String[] { String.valueOf(minValue),
                        String.valueOf(maxValue) }, context);
        throw getException(message);
    }
}
 
Example #5
Source File: FormTableRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 6 votes vote down vote up
@Override
protected void writeHeaderFacet(FacesContext context, ResponseWriter w, FormLayout c, UIComponent header) throws IOException {
    w.startElement("tr", c); // $NON-NLS-1$
    w.startElement("td", c); // $NON-NLS-1$
    String style = (String)getProperty(PROP_STYLEHEADER);
    if(StringUtil.isNotEmpty(style)) {
        w.writeAttribute("style", style, null); // $NON-NLS-1$
    }
    String cls = (String)getProperty(PROP_STYLECLASSHEADER);
    if(StringUtil.isNotEmpty(cls)) {
        w.writeAttribute("class", cls, null); // $NON-NLS-1$
    }
    w.writeAttribute("colspan", "3", null); // $NON-NLS-1$
    
    writeHeaderFacetContext(context, w, c, header);
    
    w.endElement("td"); // $NON-NLS-1$
    w.endElement("tr"); // $NON-NLS-1$
}
 
Example #6
Source File: FacesComponentUtility.java    From oxTrust with MIT License 6 votes vote down vote up
public static void dumpComponentsTree(List<UIComponent> componetns, int level) {
	if ((componetns == null) || (componetns.size() == 0)) {
		return;
	}

	StringBuffer levelString = new StringBuffer();
	for (int i = 0; i < level; i++) {
		levelString.append(" ");
	}

	for (UIComponent comp : componetns) {
		System.out.println(levelString + comp.getId());
		if (comp.getChildCount() > 0) {
			dumpComponentsTree(comp.getChildren(), level++);
		}
	}
}
 
Example #7
Source File: RendererUtil.java    From sakai with Educational Community License v2.0 6 votes vote down vote up
/**
 * Sets component attribute value - if a ValueBinding exists for that
 * attribute, set through the binding; otherwise, set the value directly on
 * the component.
 */
public static void setAttribute(FacesContext context, UIComponent component, String name,
        Object value)
{
    ValueBinding binding = component.getValueBinding(name);
    if (binding != null)
    {
        try
        {
            binding.setValue(context, value);
        } catch (IllegalArgumentException e)
        {
            // try setting the value as a String
            binding.setValue(context, String.valueOf(value));
        }
    } else
    {
        component.getAttributes().put(name, value);
    }
}
 
Example #8
Source File: AJAXRenderer.java    From BootsFaces-OSP with Apache License 2.0 6 votes vote down vote up
private static String encodeClick(UIComponent component) {
	String js;
	String oc = null;
	if (component instanceof IAJAXComponent) {
		oc = ((IAJAXComponent) component).getOnclick();
	}
	if (component instanceof NavLink) {
		oc = ((NavLink) component).getOnclick();
	}
	if (component instanceof NavCommandLink) {
		oc = ((NavCommandLink) component).getOnclick();
	}
	if (oc != null) {
		js = oc.endsWith(";") ? oc : oc + ";";
		if (js.contains("return ")) {
			js = "if (false===(function() {" + js + "})()) return false;";
		}
	} else {
		js = "";
	}

	return js;
}
 
Example #9
Source File: ForumPostRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 6 votes vote down vote up
protected void writePostTitle(FacesContext context, ResponseWriter w, UIForumPost c, UIComponent facet) throws IOException {
    if(facet==null) {
        return;
    }
    w.startElement("div", c); // $NON-NLS-1$
    String style = (String)getProperty(PROP_POSTTITLESTYLE);
    if(StringUtil.isNotEmpty(style)) {
        w.writeAttribute("style", style, null); // $NON-NLS-1$
    }
    String styleClass = (String)getProperty(PROP_POSTTITLECLASS);
    if(StringUtil.isNotEmpty(styleClass)) {
        w.writeAttribute("class", styleClass, null); // $NON-NLS-1$
    }
    FacesUtil.renderComponent(context, facet);
    w.endElement("div"); // $NON-NLS-1$
}
 
Example #10
Source File: DurationConverter.java    From development with Apache License 2.0 6 votes vote down vote up
/**
 * Conversion to server representation, so converting days to milliseconds.
 * Prior to the conversion the input value is validated.
 */
@Override
public Object getAsObject(FacesContext context, UIComponent component,
        String value) {
    try {
        // Checks if mandatory and not empty
        new ParameterValueValidator().validate(context, component, value);
    } catch (ValidatorException e) {
        throw new ConverterException(e.getFacesMessage());
    }

    // Validation passed; so if the value is empty it's not mandatory
    if (value == null || value.trim().length() == 0) {
        return null;
    } else {
        Long durationInMs = DurationValidation.convertDurationToMs(context,
                value);
        if (durationInMs != null) {
            return durationInMs.toString();
        } else {
            throw new ConverterException(
                    ParameterValueValidator.getFacesMessage(component,
                            context));
        }
    }
}
 
Example #11
Source File: DialogRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
public void placeHolderEncodeBegin(FacesContext context, UIComponent component) throws IOException {
    if (!component.isRendered()) {
        return;
    }
    ResponseWriter w = context.getResponseWriter();
    
    UIDialog dialog = (UIDialog)component;
    
    // Add the dojo module
    UIViewRootEx rootEx = (UIViewRootEx)context.getViewRoot();
    ExtLibResources.addEncodeResource(rootEx, getDefaultDojoModule(context,dialog));

    rootEx.setDojoParseOnLoad(true);
    rootEx.setDojoTheme(true);

    String clientId = component.getClientId(context);
    w.startElement("span", component); // $NON-NLS-1$
    
    Map<String,String> attrs = DojoRendererUtil.createMap(context);
    String dojoType = getPlaceHolderWrapperType(); // $NON-NLS-1$
    attrs.put("dialogId", clientId); // $NON-NLS-1$ $NON-NLS-2$
    DojoRendererUtil.writeDojoHtmlAttributes(context, component, dojoType, attrs);
    
    String style = ExtLibUtil.concatStyles("display:none", dialog.getStyle()); // $NON-NLS-1$
    if(StringUtil.isNotEmpty(style)) {
        w.writeAttribute("style", style, null); // $NON-NLS-1$
    }
    String styleClass = dialog.getStyleClass();
    if(StringUtil.isNotEmpty(styleClass)) {
        w.writeAttribute("class", styleClass, null); // $NON-NLS-1$
    }
    
    w.startElement("span", component); // $NON-NLS-1$
    w.writeAttribute("id", clientId, "id"); // $NON-NLS-1$ $NON-NLS-2$
    w.endElement("span"); // $NON-NLS-1$
    
    w.endElement("span"); // $NON-NLS-1$
}
 
Example #12
Source File: DojoTabPaneRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
@Override
protected void initDojoAttributes(FacesContext context, FacesDojoComponent dojoComponent, Map<String,String> attrs) throws IOException {
    super.initDojoAttributes(context, dojoComponent, attrs);
    if(dojoComponent instanceof UIDojoTabPane) {
        UIDojoTabPane c = (UIDojoTabPane)dojoComponent;

        String tabKey = c.getTabUniqueKey();
        if(StringUtil.isEmpty(tabKey)) {
            tabKey = c.getId();
        }
        
        // Find if the pane is selected
        boolean selected = false;
        UIComponent p = c.getParent();
        if(p instanceof UIDojoTabContainer) {
            String sel = ((UIDojoTabContainer)p).getSelectedTab();
            selected = StringUtil.equals(sel, tabKey);
        }
        if(selected) {
            DojoRendererUtil.addDojoHtmlAttributes(attrs,"selected",true); // $NON-NLS-1$
        }

        DojoRendererUtil.addDojoHtmlAttributes(attrs,"closable",c.isClosable()); // $NON-NLS-1$
        DojoRendererUtil.addDojoHtmlAttributes(attrs,"title",c.getTitle()); // $NON-NLS-1$
        DojoRendererUtil.addDojoHtmlAttributes(attrs,"tabUniqueKey",tabKey); // $NON-NLS-1$
        DojoRendererUtil.addDojoHtmlAttributes(attrs,"onClose",c.getOnClose()); // $NON-NLS-1$
    }
}
 
Example #13
Source File: JsfRenderUtils.java    From fenixedu-academic with GNU Lesser General Public License v3.0 5 votes vote down vote up
public static void addHiddenFieldsForParametersIfNotExists(FacesContext context, UIComponent parentComponent,
        List<UIParameter> uiParameters) throws IOException {

    UIForm parentForm = findForm(parentComponent);
    String parentFormClientId = parentForm.getClientId(context);
    ResponseWriter writer = context.getResponseWriter();
    HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();

    for (int i = 0; i < uiParameters.size(); i++) {
        UIParameter parameter = uiParameters.get(i);
        addHiddenFieldForParameterIfNotExists(parentFormClientId, request, writer, parameter.getName());
    }
}
 
Example #14
Source File: ValueExpressionHelper.java    From BootsFaces-OSP with Apache License 2.0 5 votes vote down vote up
/**
 * Source adapted from Seam's enumConverter. The goal is to get the type to which this component's value is bound.
 * First, check if the valueExpression provides the type. For dropdown-like components, this may not work, so check
 * for SelectItems children.
 * 
 * @param context the current FacesContext
 * @param uiComponent
 * @param validTypes a list of types to look for
 * @return null if a valid type cannot be found
 */
public static Class<?> getValueType(FacesContext context, UIComponent uiComponent, Collection<Class<?>> validTypes) {
	Class<?> valueType = getValueType(context, uiComponent);
	if (valueType != null && isValid(validTypes, valueType)) {
		return valueType;
	}
	else {
		for (UIComponent child : uiComponent.getChildren()) {
			UIComponent c = (UIComponent) child;
			ValueExpression expr = c.getValueExpression("value");
			Object val = expr == null ? null : expr.getValue(context.getELContext());
			if (val != null) {

				valueType = val.getClass();
				if (valueType.isArray() && isValid(validTypes, valueType.getComponentType())) {
					return valueType;
				}
				else if (val instanceof Collection<?>) {
					valueType = ((Collection<?>) val).iterator().next().getClass();
					if (isValid(validTypes, valueType)) {
						return valueType;
					}
				}
			}
		}
	}
	return null;
}
 
Example #15
Source File: AbstractDataViewRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
protected void writeFooterPagerArea(FacesContext context, ResponseWriter w, AbstractDataView c, ViewDefinition viewDef, UIComponent pagerBottom, UIComponent pagerBottomLeft, UIComponent pagerBottomRight) throws IOException {
    String tag = (String)getProperty(PROP_FOOTER_PAGER_AREA_TAG);
    if(StringUtil.isNotEmpty(tag)) {
        startElement(w, tag, PROP_FOOTERSTYLE, PROP_FOOTERCLASS, PROP_FOOTERDOJOTYPE);
    }
    writeFooterLeft(context, w, c, viewDef, pagerBottomLeft);
    writeFooterMiddle(context, w, c, viewDef, pagerBottom);
    writeFooterRight(context, w, c, viewDef, pagerBottomRight);
    if(StringUtil.isNotEmpty(tag)) {
        w.endElement(tag);
    }
    newLine(w);
}
 
Example #16
Source File: AbstractDataViewRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
protected void writeHeaderMiddle(FacesContext context, ResponseWriter w, AbstractDataView c, ViewDefinition viewDef, UIComponent facet) throws IOException {
    if(facet!=null) {
        String tag = (String)getProperty(PROP_FACETTAG);
        if(StringUtil.isNotEmpty(tag)) {
            startElement(w, tag, PROP_HEADERMIDDLESTYLE, PROP_HEADERMIDDLECLASS, null);
        }
        FacesUtil.renderComponent(context, facet);
        if(StringUtil.isNotEmpty(tag)) {
            w.endElement(tag);
        }
        newLine(w);
    }
}
 
Example #17
Source File: ToolBarTag.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
protected void setProperties(UIComponent component)
{

  super.setProperties(component);

  FacesContext context = getFacesContext();
  TagUtil.setString(component, "separator", separator);
}
 
Example #18
Source File: DivMessageRenderer.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
	// Note our complete disregard for class cast and null exceptions....
	UIMessage uiMessage = (UIMessage)component;
	String clientId = uiMessage.findComponent(uiMessage.getFor()).getClientId(context);

	Iterator iter = context.getMessages(clientId);
	if (iter.hasNext()) {
		// Just do the first one.
		FacesMessage message = (FacesMessage)iter.next();
		renderMessage(context, component, message);
	}
}
 
Example #19
Source File: PreviousExpressionResolver.java    From BootsFaces-OSP with Apache License 2.0 5 votes vote down vote up
private UIComponent findPredecessor(UIComponent parent) {
	UIComponent grandparent = parent.getParent();
	for (int i = 0; i < grandparent.getChildCount(); i++) {
		if (grandparent.getChildren().get(i) == parent) {
				if(i == 0) //if this is the first element of this component tree level there is no previous
					return null;
				//otherwise take the component before this one
				return grandparent.getChildren().get(i-1);
		}
	}
	return null; // unreachable code - but the compiler doesn't know that
}
 
Example #20
Source File: UIDataRepeaterRenderer.java    From fenixedu-academic with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void encodeChildren(FacesContext context, UIComponent component) throws IOException {

    UIDataRepeater dataRepeater = (UIDataRepeater) component;

    int first = dataRepeater.getFirst();
    int rows = dataRepeater.getRows();
    int rowCount = dataRepeater.getRowCount();

    if (rows <= 0) {
        rows = rowCount - first;
    }

    int last = first + rows;

    if (last > rowCount) {
        last = rowCount;
    }

    for (int i = first; i < last; i++) {
        dataRepeater.setRowIndex(i);
        if (dataRepeater.isRowAvailable()) {
            if (dataRepeater.getChildCount() > 0) {
                for (Iterator it = dataRepeater.getChildren().iterator(); it.hasNext();) {
                    UIComponent child = (UIComponent) it.next();
                    // For some reason its necessary to touch Id property,
                    // otherwise
                    // the child control will not call getClientId on parent
                    // (NamingContainer)
                    child.setId(child.getId());
                    encodeRecursive(context, child);
                }
            }

        }
    }
}
 
Example #21
Source File: GoogleSearch.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
private void renderLink(ResponseWriter writer, UIComponent component, String value) throws IOException {
    writer.startElement("a", component);
    String lk = "http://www.google.com/search?q="+value; // $NON-NLS-1$
    writer.writeURIAttribute("href", lk, null); // $NON-NLS-1$
    writer.writeAttribute("target", "_blank", null); // $NON-NLS-1$ $NON-NLS-2$
    writer.writeAttribute("title", "Google search link", null); // $NON-NLS-1$ $NLS-GoogleSearch.Googlesearchlink-2$
    if(null != value && StringUtil.isNotEmpty(value)) {
        writer.writeText(value, null);
    }else{
        writer.writeAttribute("style", "display:none", null); // $NON-NLS-1$ $NON-NLS-2$
    }
    writer.endElement("a");
}
 
Example #22
Source File: ViewColumnConverter.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
public String getValueDateTimeAsString(FacesContext context, UIComponent component, Date value) {
DateFormat fmt;
switch(timeDateFmt) {
	case ViewColumn.FMT_DATE: {
   		fmt = com.ibm.commons.util.DateTime.getDefaultDateFormatter();
	} break;
	case ViewColumn.FMT_TIME: {
   		fmt = com.ibm.commons.util.DateTime.getDefaultTimeFormatter();
	} break;
	default: {
   		fmt = com.ibm.commons.util.DateTime.getDefaultDatetimeFormatter();
	} break;
}
return fmt.format(value);
  }
 
Example #23
Source File: MultiColumnTag.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
/**
 * Set the properties.  Analogous to a dataTable.
 * However, acts as one or more columns.
 *
 * @param component
 */
protected void setProperties(UIComponent component)
{

  super.setProperties(component);

  FacesContext context = getFacesContext();
  TagUtil.setInteger(component, "first", first);
  TagUtil.setInteger(component, "rows", rows);
  TagUtil.setString(component, "value", value);
  TagUtil.setString(component, "var", var);
}
 
Example #24
Source File: XspFunctions.java    From org.openntf.domino with Apache License 2.0 5 votes vote down vote up
/**
 * Returns the value of the current UIComponent
 * 
 */
@ParamCount(0)
public static ValueHolder atThisValue(final FormulaContextXsp ctx) {
	UIComponent comp = ctx.getComponent();
	while (comp != null) {
		if (comp instanceof UIOutput) {
			return ValueHolder.valueOf(((UIOutput) comp).getValue());
		}
		comp = comp.getParent();
	}
	return ValueHolder.valueDefault();
}
 
Example #25
Source File: HtmlSortHeaderRenderer.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
public void encodeEnd(FacesContext facesContext, UIComponent component)
		throws IOException {
	if (log.isDebugEnabled()) log.debug("encodeEnd rendering " + component);
	if (!UserRoleUtils.isEnabledOnUserRole(component)) {
           super.encodeEnd(facesContext, component);
       } else {
		HtmlCommandSortHeader sortHeader = (HtmlCommandSortHeader) component;
		HtmlDataTable dataTable = sortHeader.findParentDataTable();

		if (sortHeader.isArrow() && sortHeader.getColumnName().equals(dataTable.getSortColumn())) {
			ResponseWriter writer = facesContext.getResponseWriter();

               writer.write(HTML.NBSP_ENTITY);

               HtmlGraphicImage image = new HtmlGraphicImage();
               if (dataTable.isSortAscending()) {
                   image.setValue("/library/image/sakai/sortascending.gif");
                   image.setAlt(MessageFormat.format(rb.getString("sort_ascending"), sortHeader.getColumnName().toLowerCase()));
			} else {
                   image.setValue("/library/image/sakai/sortdescending.gif");
                   image.setAlt(MessageFormat.format(rb.getString("sort_descending"), sortHeader.getColumnName().toLowerCase()));
			}

               writer.startElement(HTML.IMG_ELEM, image);
               writer.writeURIAttribute("src", image.getValue(), null);
               writer.writeAttribute("alt",image.getAlt().toString(), null);
               writer.endElement(HTML.IMG_ELEM);
		}
           super.encodeEnd(facesContext, component);
	}
}
 
Example #26
Source File: NavLinkRenderer.java    From BootsFaces-OSP with Apache License 2.0 5 votes vote down vote up
@Override
public void decode(FacesContext context, UIComponent component) {
	if (componentIsDisabledOrReadonly(component)) {
		return;
	}

	String param = component.getClientId(context);
	if (context.getExternalContext().getRequestParameterMap().containsKey(param)) {
		new AJAXRenderer().decode(context, component);
	}
}
 
Example #27
Source File: RendererUtil.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
/**
 * Return the attribute value - handles getting the value from a
 * ValueBinding if necessary. This is necessary because of a difference in
 * the Sun JSF RI versus the MyFaces RI. The Sun RI
 * component.getAttributes().get(attrName) will automatically return value
 * bindings, whereas the MyFaces implmentation requires getting values from
 * ValueBinding seperately.
 */
public static Object getAttribute(FacesContext context, UIComponent component, String name)
{
    // first check the attributes
    Object ret = component.getAttributes().get(name);
    if (ret != null)
        return ret;

    // next check the value bindings
    ValueBinding vb = component.getValueBinding(name);
    if (vb != null)
        ret = vb.getValue(context);

    return ret;
}
 
Example #28
Source File: dynForm.java    From yawl with GNU Lesser General Public License v3.0 5 votes vote down vote up
private DocComponent getDocComponentForEvent(ActionEvent event) {
    Button source = (Button) event.getComponent();
    UIComponent parent = source.getParent();
    if (parent instanceof DocComponent) {     // if doc component button clicked
        return (DocComponent) parent;
    }
    else {
        return (DocComponent) parent.getAttributes().get("docComponent");
    }
}
 
Example #29
Source File: Node.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
/**
   * @param cl
   * @return
   * @throws ClassNotFoundException
   * @throws IllegalAccessException
   * @throws InstantiationException
   */
  public UIComponent restoreInstance(ClassLoader cl)
          throws ClassNotFoundException, IllegalAccessException,
          InstantiationException {
      Class<?> c = cl.loadClass(_className);
UIComponent comp = (UIComponent) c.newInstance();
comp.setId(_id);
      return comp;
  }
 
Example #30
Source File: AbstractApplicationLayoutRenderer.java    From XPagesExtensionLibrary with Apache License 2.0 5 votes vote down vote up
protected void renderChildren(FacesContext context, UIComponent component) throws IOException {
    // encode component and children
    int count = component.getChildCount();
    if(count>0) {
        List<?> children = component.getChildren();
        for (int i=0; i<count; i++) {
            UIComponent child = (UIComponent)children.get(i);
            if(isRenderChild(context, child)) {
                FacesUtil.renderComponent(context, child);  
            }
        }
    }
}