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 InputImageTag extends TagHtmlBase implements HtmlConstants 29 { 30 public static void add(HashMap html, HashMap htmlQuirks, HashMap xhtml) 31 { 32 html.put(INPUT_IMAGE_TAG, new HtmlRendering()); 33 htmlQuirks.put(INPUT_IMAGE_TAG, new HtmlRendering()); 34 xhtml.put(INPUT_IMAGE_TAG, new XhtmlRendering()); 35 } 36 37 public static class State extends AbstractHtmlState 38 { 39 public String src; 40 public String value; 41 public boolean disabled; 42 43 public void clear() 44 { 45 super.clear(); 46 src = null; 47 value = null; 48 disabled = false; 49 } 50 } 51 52 public void doStartTag(AbstractRenderAppender sb, AbstractTagState renderState) 53 { 54 assert(sb != null) : "Parameter 'sb' must not be null"; 55 assert(renderState != null) : "Parameter 'renderState' must not be null"; 56 assert(renderState instanceof State) : "Paramater 'renderState' must be an instance of InputImageTag.State"; 57 58 State state = (State) renderState; 59 60 renderTag(sb, INPUT); 62 renderAttribute(sb, TYPE, INPUT_IMAGE); 63 renderAttribute(sb, ID, state.id); 64 renderAttribute(sb, CLASS, state.styleClass); 65 renderAttribute(sb, SRC, state.src); 66 renderAttribute(sb, VALUE, state.value); 67 68 renderDisabled(sb, state.disabled); 69 70 71 renderAttributes(AbstractHtmlState.ATTR_GENERAL, sb, state); 72 renderAttribute(sb, STYLE, state.style); 73 renderAttributes(AbstractHtmlState.ATTR_JAVASCRIPT, sb, state); 74 75 writeEnd(sb); 76 } 77 78 public void doEndTag(AbstractRenderAppender sb) 79 { 80 } 81 82 abstract protected void writeEnd(AbstractRenderAppender sb); 83 84 abstract protected void renderDisabled(AbstractRenderAppender sb, boolean disabled); 85 86 87 private static class HtmlRendering extends InputImageTag 88 { 89 protected void writeEnd(AbstractRenderAppender sb) 90 { 91 sb.append(">"); 92 } 93 94 protected void renderDisabled(AbstractRenderAppender sb, boolean disabled) 95 { 96 if (disabled) 97 sb.append(" disabled"); 98 99 } 100 101 } 102 103 private static class XhtmlRendering extends InputImageTag 104 { 105 protected void writeEnd(AbstractRenderAppender sb) 106 { 107 sb.append(" />"); 108 } 109 110 protected void renderDisabled(AbstractRenderAppender sb, boolean disabled) 111 { 112 if (disabled) 113 renderAttribute(sb, "disabled", "disabled"); 114 } 115 } 116 } 117 | Popular Tags |