1 18 package org.apache.beehive.netui.tags.html; 19 20 import org.apache.beehive.netui.tags.HtmlUtils; 21 import org.apache.beehive.netui.tags.rendering.AbstractHtmlState; 22 import org.apache.beehive.netui.tags.rendering.SpanTag; 23 import org.apache.beehive.netui.tags.rendering.TagRenderingBase; 24 import org.apache.beehive.netui.tags.rendering.WriteRenderAppender; 25 import org.apache.beehive.netui.util.Bundle; 26 import org.apache.beehive.netui.util.logging.Logger; 27 28 import javax.servlet.ServletRequest ; 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.jsp.JspException ; 31 32 86 public class Span extends LabelBase 87 implements IFormattable 88 { 89 private static final Logger logger = Logger.getInstance(Span.class); 90 91 private SpanTag.State _state = new SpanTag.State(); 92 93 96 public String getTagName() 97 { 98 return "Label"; 99 } 100 101 106 protected AbstractHtmlState getState() 107 { 108 return _state; 109 } 110 111 115 public int doStartTag() throws JspException 116 { 117 return EVAL_BODY_BUFFERED; 118 } 119 120 124 public int doEndTag() throws JspException 125 { 126 boolean usingDefault = false; 127 boolean bypassEscape = false; 128 129 String scriptId = null; 130 ServletRequest req = pageContext.getRequest(); 131 132 Object labelObject = null; 133 134 if (_value != null) 136 labelObject = _value; 137 else { 138 if (_defaultValue != null) { 139 labelObject = _defaultValue; 140 bypassEscape = HtmlUtils.containsEntity(_defaultValue.toString()); 141 } 142 else { 143 logger.warn(Bundle.getString("Tags_LabelExpressionNull", _value)); 144 labelObject = DEFAULT_NULL_TEXT; 145 } 146 usingDefault = true; 147 } 148 149 if (_state.id != null) { 152 scriptId = renderNameAndId((HttpServletRequest ) req, _state, null); 153 } 154 155 String labelValue = (usingDefault && !_formatDefaultValue) ? 157 labelObject.toString() : formatText(labelObject); 158 159 if (_formatterErrors) { 161 if (bodyContent != null) { 162 String value = bodyContent.getString().trim(); 163 bodyContent.clearBody(); 164 write(value); 165 } 166 } 167 168 if (hasErrors()) 169 return reportAndExit(EVAL_PAGE); 170 171 WriteRenderAppender writer = new WriteRenderAppender(pageContext); 172 TagRenderingBase br = TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, req); 173 br.doStartTag(writer, _state); 174 175 if (!bypassEscape) 176 filter(labelValue, writer, _escapeWhiteSpace); 177 else 178 write(labelValue); 179 180 br.doEndTag(writer); 181 182 if (scriptId != null) 183 write(scriptId); 184 185 localRelease(); 186 return EVAL_PAGE; 187 } 188 189 192 protected void localRelease() 193 { 194 super.localRelease(); 195 _state.clear(); 196 } 197 } 198 | Popular Tags |