1 24 package org.riotfamily.forms.element.select; 25 26 import java.io.PrintWriter ; 27 28 import org.riotfamily.common.collection.FlatMap; 29 import org.riotfamily.forms.DHTMLElement; 30 import org.riotfamily.forms.TemplateUtils; 31 import org.riotfamily.forms.resource.FormResource; 32 import org.riotfamily.forms.resource.ResourceElement; 33 import org.riotfamily.forms.resource.Resources; 34 import org.riotfamily.forms.resource.ScriptResource; 35 36 37 42 public class CheckboxGroup extends AbstractMultiSelectElement 43 implements DHTMLElement, ResourceElement { 44 45 protected static final FormResource RESOURCE = new ScriptResource( 46 "riot-js/checkbox.js", "RiotCheckboxGroup", Resources.PROTOTYPE); 47 48 private String template; 49 50 public CheckboxGroup() { 51 setOptionRenderer(new InputTagRenderer("checkbox")); 52 template = TemplateUtils.getTemplatePath(CheckboxGroup.class); 53 } 54 55 public FormResource getResource() { 56 return RESOURCE; 57 } 58 59 public void setTemplate(String template) { 60 this.template = template; 61 } 62 63 public void renderInternal(PrintWriter writer) { 64 FlatMap model = new FlatMap(); 65 model.put("element", this); 66 model.put("options", getOptions()); 67 getFormContext().getTemplateRenderer().render(template, model, writer); 68 } 69 70 public String getInitScript() { 71 return "new RiotCheckboxGroup('" + getId() + "');"; 72 } 73 74 public boolean isCompositeElement() { 75 return true; 76 } 77 } | Popular Tags |