KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > webapp > tapestry > HiddenMultiplePropertySelectionRenderer


1 package org.appfuse.webapp.tapestry;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.apache.tapestry.IMarkupWriter;
6 import org.apache.tapestry.IRequestCycle;
7 import org.apache.tapestry.contrib.form.IMultiplePropertySelectionRenderer;
8 import org.apache.tapestry.contrib.form.MultiplePropertySelection;
9 import org.apache.tapestry.form.IPropertySelectionModel;
10
11 /**
12  * Implementation of {@link IMultiplePropertySelectionRenderer} that
13  * produces hidden fields. This is designed so some users can see checkboxes
14  * and others can't.
15  *
16  * @author Matt Raible
17  *
18  **/

19 public class HiddenMultiplePropertySelectionRenderer
20     implements IMultiplePropertySelectionRenderer {
21     protected final Log log = LogFactory.getLog(getClass());
22     
23     /**
24      * Writes the <table> element.
25      *
26      **/

27     public void beginRender(MultiplePropertySelection component,
28                             IMarkupWriter writer, IRequestCycle cycle) {
29     }
30
31     /**
32      * Closes the <table> element.
33      *
34      **/

35     public void endRender(MultiplePropertySelection component,
36                           IMarkupWriter writer, IRequestCycle cycle) {
37     }
38
39     public void renderOption(MultiplePropertySelection component,
40                              IMarkupWriter writer, IRequestCycle cycle,
41                              IPropertySelectionModel model, Object JavaDoc option,
42                              int index, boolean selected) {
43         if (selected) {
44             writer.begin("input");
45             writer.attribute("type", "hidden");
46             writer.attribute("name", component.getName());
47     
48             String JavaDoc id = component.getName() + "." + model.getValue(index);
49             writer.attribute("id", id);
50             writer.attribute("value", model.getValue(index));
51             writer.end();
52             writer.print(model.getLabel(index));
53             //log.debug("optionCount: " + model.getOptionCount());
54
//log.debug("index: " + index);
55
if (index < (model.getOptionCount()-2)) {
56                 writer.printRaw(", ");
57             }
58             writer.println();
59         }
60     }
61 }
62
Popular Tags