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 public abstract class ScriptTag extends TagHtmlBase 25 { 26 public static void add(HashMap html, HashMap htmlQuirks, HashMap xhtml) 27 { 28 html.put(SCRIPT_TAG, new ScriptTag.Rendering()); 29 htmlQuirks.put(SCRIPT_TAG, new ScriptTag.Rendering()); 30 xhtml.put(SCRIPT_TAG, new ScriptTag.Rendering()); 31 } 32 33 public static class State extends AbstractAttributeState 34 { 35 public String type; 36 public String src; 37 public String language; 38 public boolean suppressComments = true; 39 40 public void clear() 41 { 42 super.clear(); 43 type = null; 44 src = null; 45 language = null; 46 suppressComments = true; 47 } 48 } 49 50 public abstract void doEndTag(AbstractRenderAppender sb, boolean supressComments); 51 52 private static class Rendering extends ScriptTag implements HtmlConstants 53 { 54 public void doStartTag(AbstractRenderAppender sb, AbstractTagState renderState) 55 { 56 assert(sb != null) : "Parameter 'sb' must not be null"; 57 assert(renderState != null) : "Parameter 'renderState' must not be null"; 58 assert(renderState instanceof State) : "Paramater 'renderState' must be an instance of SpanTag.State"; 59 60 State state = (State) renderState; 61 62 renderTag(sb, SCRIPT); 63 64 if (state.language == null) { 65 state.language = "JavaScript"; 67 } 68 if (state.type == null) { 69 state.type = "text/JavaScript"; 71 } 72 73 renderAttribute(sb, LANGUAGE, state.language); 74 renderAttribute(sb, TYPE, state.type); 75 renderAttribute(sb, SRC, state.src); 76 77 renderAttributes(AbstractHtmlState.ATTR_GENERAL, sb, state); 78 sb.append(">"); 79 80 if (!state.suppressComments) 82 sb.append("\n<!--\n"); 83 } 84 85 public void doEndTag(AbstractRenderAppender sb, boolean supressComments) 86 { 87 if (!supressComments) 88 sb.append("-->\n"); 89 doEndTag(sb); 90 } 91 92 public void doEndTag(AbstractRenderAppender sb) 93 { 94 renderEndTag(sb, SCRIPT); 95 } 96 } 97 } 98 | Popular Tags |