KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > riotfamily > forms > element > select > CheckboxGroup


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1
3  * The contents of this file are subject to the Mozilla Public License Version
4  * 1.1 (the "License"); you may not use this file except in compliance with
5  * the License. You may obtain a copy of the License at
6  * http://www.mozilla.org/MPL/
7  *
8  * Software distributed under the License is distributed on an "AS IS" basis,
9  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10  * for the specific language governing rights and limitations under the
11  * License.
12  *
13  * The Original Code is Riot.
14  *
15  * The Initial Developer of the Original Code is
16  * Neteye GmbH.
17  * Portions created by the Initial Developer are Copyright (C) 2006
18  * the Initial Developer. All Rights Reserved.
19  *
20  * Contributor(s):
21  * Felix Gnass [fgnass at neteye dot de]
22  *
23  * ***** END LICENSE BLOCK ***** */

24 package org.riotfamily.forms.element.select;
25
26 import java.io.PrintWriter JavaDoc;
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 /**
38  * Multi-select element that uses a group of checkboxes to render the options.
39  * Internally a template is used in order to allow the customization of
40  * the layout.
41  */

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 JavaDoc 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 JavaDoc template) {
60         this.template = template;
61     }
62
63     public void renderInternal(PrintWriter JavaDoc 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 JavaDoc getInitScript() {
71         return "new RiotCheckboxGroup('" + getId() + "');";
72     }
73
74     public boolean isCompositeElement() {
75         return true;
76     }
77 }
Popular Tags