package com.philemonworks.critter.ui; import static org.rendersnake.HtmlAttributesFactory.NO_ESCAPE; import static org.rendersnake.HtmlAttributesFactory.class_; import static org.rendersnake.HtmlAttributesFactory.dataRole; import static org.rendersnake.HtmlAttributesFactory.dataTheme; import static org.rendersnake.HtmlAttributesFactory.href; import java.io.IOException; import java.util.List; import org.rendersnake.HtmlCanvas; import org.rendersnake.Renderable; import com.philemonworks.critter.rule.Rule; public class RulesUI implements Renderable { @Override @SuppressWarnings("unchecked") public void renderOn(HtmlCanvas html) throws IOException { List<Rule> rules = (List<Rule>)html.getPageContext().getObject("rules"); if (rules.isEmpty()) { html.h5().content("No rules defined."); return; } html.ul(dataRole("listview").dataInset(true).dataTheme("b")); for (Rule each : rules) { this.renderRuleOn(each,html); } html._ul(); } private void renderRuleOn(Rule each, HtmlCanvas html) throws IOException { String description = UIUtils.strongify(each.conditionsString() + " " + each.actionsString()); html.li(dataTheme("c")) .a(href("/ui/rules/"+each.id)) .h1().content(each.id) .p().content(description,NO_ESCAPE) .div(class_("ui-li-aside")).content(each.enabled ? "enabled" : "disabled") ._a() ._li(); } }