1 18 package org.apache.beehive.netui.tags.rendering; 19 20 import org.apache.beehive.netui.tags.html.HtmlConstants; 21 22 import java.util.HashMap ; 23 24 28 abstract public class InputBooleanTag extends TagHtmlBase implements HtmlConstants 29 { 30 public static void add(HashMap html, HashMap htmlQuirks, HashMap xhtml) 31 { 32 html.put(INPUT_BOOLEAN_TAG, new HtmlRendering()); 33 htmlQuirks.put(INPUT_BOOLEAN_TAG, new HtmlRendering()); 34 xhtml.put(INPUT_BOOLEAN_TAG, new XhtmlRendering()); 35 } 36 37 public static class State extends AbstractHtmlControlState 38 { 39 public String type; 40 public boolean disabled; 41 public boolean checked; 42 public String value; 43 44 public void clear() 45 { 46 super.clear(); 47 48 type = null; 49 disabled = false; 50 checked = false; 51 value = null; 52 } 53 } 54 55 public void doStartTag(AbstractRenderAppender sb, AbstractTagState renderState) 56 { 57 assert(sb != null) : "Parameter 'sb' must not be null"; 58 assert(renderState != null) : "Parameter 'renderState' must not be null"; 59 assert(renderState instanceof State) : "Paramater 'renderState' must be an instance of InputBooleanTag.State"; 60 61 State state = (State) renderState; 62 63 renderTag(sb, INPUT); 66 renderAttribute(sb, TYPE, state.type); 67 renderAttribute(sb, NAME, state.name); 68 renderAttribute(sb, ID, state.id); 69 renderAttribute(sb, CLASS, state.styleClass); 70 renderAttribute(sb, VALUE, state.value); 71 renderDisabled(sb, state.disabled); 72 renderChecked(sb, state.checked); 73 74 renderAttributes(AbstractHtmlState.ATTR_GENERAL, sb, state); 75 renderAttribute(sb, STYLE, state.style); 76 renderAttributes(AbstractHtmlState.ATTR_JAVASCRIPT, sb, state); 77 writeEnd(sb); 78 } 79 80 public void doEndTag(AbstractRenderAppender sb) 81 { 82 } 83 84 abstract protected void writeEnd(AbstractRenderAppender sb); 85 86 abstract protected void renderDisabled(AbstractRenderAppender sb, boolean disabled); 87 88 abstract protected void renderChecked(AbstractRenderAppender sb, boolean checked); 89 90 private static class HtmlRendering extends InputBooleanTag 91 { 92 protected void writeEnd(AbstractRenderAppender sb) 93 { 94 sb.append(">"); 95 } 96 97 protected void renderDisabled(AbstractRenderAppender sb, boolean disabled) 98 { 99 if (disabled) 100 sb.append(" " + DISABLED); 101 102 } 103 104 protected void renderChecked(AbstractRenderAppender sb, boolean checked) 105 { 106 if (checked) 107 sb.append(" " + CHECKED); 108 109 } 110 } 111 112 private static class XhtmlRendering extends InputBooleanTag 113 { 114 protected void writeEnd(AbstractRenderAppender sb) 115 { 116 sb.append(" />"); 117 } 118 119 protected void renderDisabled(AbstractRenderAppender sb, boolean disabled) 120 { 121 if (disabled) 122 renderAttribute(sb, DISABLED, DISABLED); 123 } 124 125 protected void renderChecked(AbstractRenderAppender sb, boolean checked) 126 { 127 if (checked) 128 renderAttribute(sb, CHECKED, CHECKED); 129 } 130 } 131 } 132 | Popular Tags |