/sitebricks/src/main/java/com/google/sitebricks/rendering/control/HeaderWidget.java
http://github.com/dhanji/sitebricks · Java · 46 lines · 31 code · 11 blank · 4 comment · 0 complexity · cab3905eea475fee8d081139b35f19b9 MD5 · raw file
- 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);
- }
- }