| 1 21 22 package org.opensubsystems.patterns.scrollabletable.www; 23 24 import javax.servlet.jsp.JspException ; 25 import javax.servlet.jsp.tagext.BodyContent ; 26 27 import org.opensubsystems.core.www.BlockElementTag; 28 29 37 public class ScrollableTableHeaderSettingsTag extends BlockElementTag 38 { 39 41 45 public static final String SCROLLABLE_TABLE_HEADER_SETTINGS_CACHE 46 = "scrollabletableheadersettings"; 47 48 50 53 private static final long serialVersionUID = -5244079289468850958L; 54 55 57 60 public ScrollableTableHeaderSettingsTag( 61 ) 62 { 63 super(null, BlockElementTag.DIV_BLOCK_ELEMENT); 64 } 65 66 68 71 public int doStartTag( 72 ) throws JspException 73 { 74 return (EVAL_BODY_BUFFERED); 77 } 78 79 82 public int doEndTag( 83 ) throws JspException 84 { 85 StringBuffer sbHtml = new StringBuffer (); 86 String strHeaderSettings; 87 int iHeadingCount = 0; 88 int iIndex = 0; 89 90 BodyContent content = getBodyContent(); 92 93 if (content != null) 94 { 95 strHeaderSettings = content.getString(); 96 } 97 else 98 { 99 StringBuffer sbBuffer = new StringBuffer (); 100 101 sbBuffer.append("<!-- Missing header settings for "); 102 sbBuffer.append(getCurrentId()); 103 sbBuffer.append("-->\n"); 104 strHeaderSettings = sbBuffer.toString(); 105 } 106 107 while ((iIndex = strHeaderSettings.indexOf("<col ", iIndex)) != -1) 109 { 110 iHeadingCount++; 112 iIndex++; 114 } 115 116 122 sbHtml.append("<colgroup id=\""); 123 sbHtml.append(getCurrentId()); 124 sbHtml.append("bodycolumns\" span=\""); 125 sbHtml.append(iHeadingCount); 126 sbHtml.append("\">"); 127 if (iHeadingCount == 0) 128 { 129 sbHtml.append("\n<!-- No col tags found in header settings for "); 130 sbHtml.append(getCurrentId()); 131 sbHtml.append("-->\n"); 132 } 133 sbHtml.append(strHeaderSettings); 134 sbHtml.append("</colgroup>"); 135 136 cache(SCROLLABLE_TABLE_HEADER_SETTINGS_CACHE, sbHtml.toString()); 139 140 return (EVAL_PAGE); 141 } 142 } 143 | Popular Tags |