package com.google.sitebricks.rendering.control; import com.google.sitebricks.Renderable; import com.google.sitebricks.Respond; import com.google.sitebricks.compiler.EvaluatorCompiler; import com.google.sitebricks.compiler.ExpressionCompileException; import com.google.sitebricks.compiler.Token; import com.google.sitebricks.rendering.SelfRendering; import java.util.List; import java.util.Map; import java.util.Set; /** * @author Dhanji R. Prasanna (dhanji@gmail.com) */ @SelfRendering class HeaderWidget implements Renderable { private final WidgetChain widgetChain; private Map<String, List<Token>> attribs; public HeaderWidget(WidgetChain widgetChain, Map<String, String> attribs, EvaluatorCompiler compiler) throws ExpressionCompileException { this.widgetChain = widgetChain; this.attribs = XmlWidget.compile(attribs, compiler); } public void render(Object bound, Respond respond) { XmlWidget.writeOpenTag(bound, respond, "head", attribs); respond.write('>'); //render children (as necessary) widgetChain.render(bound, respond); respond.withHtml() .headerPlaceholder(); //TODO replace placeholder with an index? respond.write("</head>"); } public <T extends Renderable> Set<T> collect(Class<T> clazz) { return widgetChain.collect(clazz); } }