Mercurial Hosting > nabble
view src/nabble/view/web/template/HtmlNamespace.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line source
package nabble.view.web.template; import fschmidt.util.java.ObjectUtils; import nabble.view.lib.Recaptcha; import nabble.naml.compiler.Command; import nabble.naml.compiler.CommandSpec; import nabble.naml.compiler.Encoder; import nabble.naml.compiler.IPrintWriter; import nabble.naml.compiler.Interpreter; import nabble.naml.compiler.Namespace; import nabble.naml.compiler.ScopedInterpreter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.LinkedHashSet; import java.util.Set; @Namespace ( name = "html", global = true ) public final class HtmlNamespace { private static final Logger logger = LoggerFactory.getLogger(HtmlNamespace.class); private final Set<String> headSet = new LinkedHashSet<String>(); private final String body; HtmlNamespace(ScopedInterpreter<HtmlNamespace> interp) { interp.setEncoder(Encoder.HTML); this.body = interp.getArgString(this,"do"); } @Command public void html_head_content(IPrintWriter out,Interpreter interp) { String head = ObjectUtils.join(headSet); out.print(head); } @Command public void html_body_content(IPrintWriter out,Interpreter interp) { out.print(body); } public static final CommandSpec put_in_head = CommandSpec.NO_OUTPUT() .dotParameter("in_head") .build() ; @Command public void put_in_head(IPrintWriter out,Interpreter interp) { String s = interp.getArgString("in_head"); if( s == null ) throw new NullPointerException(); headSet.add(s); } public static final CommandSpec style = new CommandSpec.Builder() .parameters("property") .dotParameter("value") .optionalParameters("value") .build() ; @Command public static void style(IPrintWriter out,Interpreter interp) { String property = interp.getArgString("property"); String value = interp.getArgString("value"); if( value != null ) { out.print( property + ':' + value ); } } public static final CommandSpec calendar = CalendarWidget._calendar; @Command public void calendar(IPrintWriter out,Interpreter interp) { CalendarWidget._calendar(out, interp); } @Command public void page_template(IPrintWriter out,Interpreter interp) { out.print(interp.template().name()); } @Command public void page_template_command_id(IPrintWriter out,Interpreter interp) { out.print(interp.template().macro.getId()); } @Command public void page_base_classes(IPrintWriter out,Interpreter interp) { out.print(ServletNamespace.class.getName()); } @Command public void captcha_div(IPrintWriter out, Interpreter interp) { headSet.add( Recaptcha.JS ); out.print( Recaptcha.DIV ); } }