KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > improve > struts > taglib > layout > field > RadiosTag


1 package fr.improve.struts.taglib.layout.field;
2
3 import javax.servlet.jsp.JspException JavaDoc;
4
5 import fr.improve.struts.taglib.layout.util.LayoutUtils;
6 /**
7  * This tag lets the user select a value from a collection by selecting a radio button.<br>
8  * The tag works like the select tag expect that it generates radio buttons instead of select options.
9  */

10 public class RadiosTag extends AbstractUniqueSelectTag {
11
12     /**
13      * This method is called by the nested tags to add a value in the list.
14      */

15     public boolean add1Choice(StringBuffer JavaDoc sb, String JavaDoc value) throws JspException JavaDoc {
16         String JavaDoc lc_value;
17         if (getFieldValue() == null) {
18             lc_value = "";
19         } else {
20             lc_value = getFieldValue().toString();
21         }
22         switch (getFieldDisplayMode()) {
23             case MODE_INSPECT :
24                 // If the value is selected, display the image of a selected checkbox.
25
if (lc_value.equals(value)) {
26                     sb.append("<img SRC=\"");
27                     sb.append(getSkin().getImageDirectory(pageContext.getRequest()));
28                     sb.append("/");
29                     sb.append(getSkin().getProperty("layout.checkbox.checked"));
30                     sb.append("\" border=\"0\" alt=\"");
31                     sb.append(getSkin().getProperty("layout.checkbox.checked.label"));
32                     sb.append("\">");
33                     return true;
34                 } else {
35                     String JavaDoc lc_imgsrc = getSkin().getProperty("layout.checkbox.unchecked");
36                     if (lc_imgsrc!=null && lc_imgsrc.length()>0) {
37                         sb.append("<img SRC=\"");
38                         sb.append(getSkin().getImageDirectory(pageContext.getRequest()));
39                         sb.append("/");
40                         sb.append(lc_imgsrc);
41                         sb.append("\" border=\"0\" alt=\"");
42                         sb.append(getSkin().getProperty("layout.checkbox.unchecked.label"));
43                         sb.append("\">");
44                     }
45                     return false;
46                 }
47             case MODE_EDIT :
48                 // Display a radio button
49
sb.append("<input type=\"radio\" name=\"");
50                 sb.append(property);
51                 sb.append("\" value=\"");
52                 sb.append(value);
53                 sb.append("\"");
54                 if (onclick!=null) {
55                     sb.append(" onclick=\"");
56                     sb.append(onclick);
57                     sb.append("\"");
58                 }
59                 if (onchange!=null) {
60                     sb.append(" onchange=\"");
61                     sb.append(onchange);
62                     sb.append("\"");
63                 }
64                 if (getTooltip()!=null) {
65                     sb.append(" title=\"");
66                     sb.append(LayoutUtils.getLabel(getPageContext(), getBundle(), getTooltip(), null, false));
67                     sb.append("\"");
68                 }
69                 if (disabledAsBoolean) {
70                     sb.append(" disabled");
71                 }
72                 if (lc_value.equals(value)) {
73                     sb.append(" checked>");
74                     return true;
75                 }
76                 sb.append(">");
77                 return false;
78                 
79             default :
80                 return false;
81         }
82     }
83 }
Popular Tags