/* * Copyright 2011-2012 Blazebit */ package com.blazebit.blazefaces.component.outputmeter; import com.blazebit.blazefaces.apt.JsfRenderer; import java.io.IOException; import javax.faces.component.UIComponent; import javax.faces.component.behavior.ClientBehaviorHolder; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; import com.blazebit.blazefaces.renderkit.OutputRenderer; import com.blazebit.blazefaces.util.HTML5; import com.blazebit.blazefaces.util.RendererUtils; @JsfRenderer public class OutputMeterRenderer extends OutputRenderer { @Override public void encodeBegin(FacesContext ctx, UIComponent component) throws IOException { OutputMeter p = (OutputMeter) component; ResponseWriter writer = ctx.getResponseWriter(); writer.startElement("meter", component); RendererUtils.encodeAttribute(writer, "id", p.getClientId(ctx), null); RendererUtils.encodeAttribute(writer, "class", p.getAttributes().get("styleClass"), null); renderPassThruAttributes(ctx, component, HTML5.COMMON_ATTRIBUTES); renderPassThruAttributes(ctx, component, HTML5.METER_ELEMENT_ATTRIBUTES); renderDataMapAttributes(ctx, component); } @Override public void encodeChildren(FacesContext ctx, UIComponent component) throws IOException { if (component.getChildCount() > 0) { renderChildren(ctx, component); } else { ResponseWriter writer = ctx.getResponseWriter(); writer.writeText(getCurrentValue(ctx, component), component, "value"); } } @Override public void encodeEnd(FacesContext context, UIComponent component) throws IOException { ResponseWriter writer = context.getResponseWriter(); writer.endElement("meter"); encodeBehaviors(context, (ClientBehaviorHolder) component); } }