1 18 package org.apache.beehive.netui.tags.databinding.datagrid; 19 20 import java.io.IOException ; 21 import java.io.StringWriter ; 22 import javax.servlet.jsp.tagext.JspFragment ; 23 import javax.servlet.jsp.JspException ; 24 import javax.servlet.jsp.JspContext ; 25 import javax.servlet.http.HttpServletRequest ; 26 27 import org.apache.beehive.netui.tags.html.HtmlConstants; 28 import org.apache.beehive.netui.tags.rendering.AbstractHtmlState; 29 import org.apache.beehive.netui.tags.rendering.CaptionTag; 30 import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender; 31 import org.apache.beehive.netui.tags.rendering.WriteRenderAppender; 32 import org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel; 33 import org.apache.beehive.netui.databinding.datagrid.api.rendering.StyleModel; 34 import org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table.TableRenderer; 35 import org.apache.beehive.netui.databinding.datagrid.runtime.util.JspUtil; 36 import org.apache.beehive.netui.util.Bundle; 37 38 73 public class Caption 74 extends AbstractDataGridHtmlTag { 75 76 private CaptionTag.State _captionTag = new CaptionTag.State(); 77 78 82 public String getTagName() { 83 return "Caption"; 84 } 85 86 94 public void setOnClick(String onClick) { 95 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONCLICK, onClick); 96 } 97 98 106 public void setOnDblClick(String onDblClick) { 107 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONDBLCLICK, onDblClick); 108 } 109 110 118 public void setOnKeyDown(String onKeyDown) { 119 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYDOWN, onKeyDown); 120 } 121 122 130 public void setOnKeyUp(String onKeyUp) { 131 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYUP, onKeyUp); 132 } 133 134 142 public void setOnKeyPress(String onKeyPress) { 143 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYPRESS, onKeyPress); 144 } 145 146 154 public void setOnMouseDown(String onMouseDown) { 155 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEDOWN, onMouseDown); 156 } 157 158 166 public void setOnMouseUp(String onMouseUp) { 167 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEUP, onMouseUp); 168 } 169 170 178 public void setOnMouseMove(String onMouseMove) { 179 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEMOVE, onMouseMove); 180 } 181 182 190 public void setOnMouseOut(String onMouseOut) { 191 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOUT, onMouseOut); 192 } 193 194 202 public void setOnMouseOver(String onMouseOver) { 203 _captionTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOVER, onMouseOver); 204 } 205 206 214 public void setStyle(String style) { 215 if("".equals(style)) return; 216 217 _captionTag.style = style; 218 } 219 220 228 public void setStyleClass(String styleClass) { 229 if("".equals(styleClass)) return; 230 231 _captionTag.styleClass = styleClass; 232 } 233 234 242 public void setTitle(String title) { 243 _captionTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.TITLE, title); 244 } 245 246 254 public void setLang(String lang) { 255 _captionTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.LANG, lang); 256 } 257 258 266 public void setDir(String dir) { 267 _captionTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.DIR, dir); 268 } 269 270 280 public void setTagId(String tagId) 281 throws JspException { 282 applyTagId(_captionTag, tagId); 283 } 284 285 294 public void doTag() 295 throws IOException , JspException { 296 297 JspContext jspContext = getJspContext(); 298 DataGridTagModel dgm = DataGridUtil.getDataGridTagModel(jspContext); 299 if(dgm == null) 300 throw new JspException (Bundle.getErrorString("DataGridTags_MissingDataGridModel")); 301 302 if(dgm.getRenderState() == DataGridTagModel.RENDER_STATE_CAPTION) { 303 JspFragment fragment = getJspBody(); 304 if(fragment != null) { 305 String captionScript = null; 306 if(_captionTag.id != null) { 307 HttpServletRequest request = JspUtil.getRequest(getJspContext()); 308 captionScript = renderNameAndId(request, _captionTag, null); 309 } 310 311 StringWriter sw = new StringWriter (); 312 TableRenderer tableRenderer = dgm.getTableRenderer(); 313 StyleModel stylePolicy = dgm.getStyleModel(); 314 AbstractRenderAppender appender = new WriteRenderAppender(jspContext); 315 316 if(_captionTag.styleClass == null) 317 _captionTag.styleClass = stylePolicy.getCaptionClass(); 318 319 tableRenderer.openCaption(_captionTag, appender); 320 321 fragment.invoke(sw); 322 appender.append(sw.toString()); 323 324 tableRenderer.closeCaption(appender); 325 326 if(captionScript != null) 327 appender.append(captionScript); 328 } 329 } 330 } 331 } 332 | Popular Tags |