1 18 package org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table; 19 20 import javax.servlet.http.HttpServletRequest ; 21 22 import org.apache.beehive.netui.tags.rendering.TableTag; 23 import org.apache.beehive.netui.tags.rendering.TagRenderingBase; 24 import org.apache.beehive.netui.tags.rendering.TrTag; 25 import org.apache.beehive.netui.tags.rendering.TdTag; 26 import org.apache.beehive.netui.tags.rendering.ThTag; 27 import org.apache.beehive.netui.tags.rendering.CaptionTag; 28 import org.apache.beehive.netui.tags.rendering.THeadTag; 29 import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender; 30 import org.apache.beehive.netui.tags.rendering.TFootTag; 31 import org.apache.beehive.netui.tags.rendering.TBodyTag; 32 33 36 public final class TableRenderer { 37 38 private static final String LINE_BREAK = "\n"; 39 40 private static final TableTag.State TABLE_STATE = new TableTag.State(); 41 private static final CaptionTag.State CAPTION_STATE = new CaptionTag.State(); 42 private static final THeadTag.State THEAD_STATE = new THeadTag.State(); 43 private static final TBodyTag.State TBODY_STATE = new TBodyTag.State(); 44 private static final TFootTag.State TFOOT_STATE = new TFootTag.State(); 45 private static final TrTag.State TR_STATE = new TrTag.State(); 46 47 private final HttpServletRequest _request; 48 49 private TagRenderingBase _tableRenderer = null; 50 private TagRenderingBase _captionRenderer = null; 51 52 private TagRenderingBase _theadRenderer = null; 53 private TagRenderingBase _tbodyRenderer = null; 54 private TagRenderingBase _tfootRenderer = null; 55 56 private TagRenderingBase _trRenderer = null; 57 private TagRenderingBase _tdRenderer = null; 58 private TagRenderingBase _thRenderer = null; 59 60 public TableRenderer(HttpServletRequest request) { 61 super(); 62 63 _request = request; 64 _tableRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TABLE_TAG, _request); 65 66 _thRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TH_TAG, _request); 67 _trRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TR_TAG, _request); 68 _tdRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TD_TAG, _request); 69 } 70 71 76 77 public void openTable(TableTag.State state, AbstractRenderAppender appender) { 78 if(state == null) 79 state = TABLE_STATE; 80 81 appender.append(LINE_BREAK); 82 _tableRenderer.doStartTag(appender, state); 83 appender.append(LINE_BREAK); 84 } 85 86 public void closeTable(AbstractRenderAppender appender) { 87 _tableRenderer.doEndTag(appender); 88 appender.append(LINE_BREAK); 89 appender.append(LINE_BREAK); 90 } 91 92 public void openCaption(CaptionTag.State state, AbstractRenderAppender appender) { 93 if(state == null) 94 state = CAPTION_STATE; 95 96 appender.append(LINE_BREAK); 97 98 if(_captionRenderer == null) 99 _captionRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.CAPTION_TAG, _request); 100 101 _captionRenderer.doStartTag(appender, state); 102 } 103 104 public void closeCaption(AbstractRenderAppender appender) { 105 assert _captionRenderer != null : "Encountered a null THeadTag renderer. Was openCaption called?"; 106 107 _captionRenderer.doEndTag(appender); 108 appender.append(LINE_BREAK); 109 } 110 111 116 117 public final void openTableHead(THeadTag.State state, AbstractRenderAppender appender) { 118 if(state == null) 119 state = THEAD_STATE; 120 121 if(_theadRenderer == null) 122 _theadRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.THEAD_TAG, _request); 123 124 appender.append(LINE_BREAK); 125 _theadRenderer.doStartTag(appender, state); 126 } 127 128 public void closeTableHead(AbstractRenderAppender appender) { 129 assert _theadRenderer != null : "Encountered a null THeadTag renderer. Was openTableHead called?"; 130 131 appender.append(LINE_BREAK); 132 _theadRenderer.doEndTag(appender); 133 appender.append(LINE_BREAK); 134 } 135 136 public void openTableBody(TBodyTag.State state, AbstractRenderAppender appender) { 137 if(state == null) 138 state = TBODY_STATE; 139 140 if(_tbodyRenderer == null) 141 _tbodyRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TBODY_TAG, _request); 142 143 appender.append(LINE_BREAK); 144 _tbodyRenderer.doStartTag(appender, state); 145 } 146 147 public void closeTableBody(AbstractRenderAppender appender) { 148 assert _tbodyRenderer != null : "Encountered a null TBodyTag renderer. Was openTableBody called?"; 149 150 appender.append(LINE_BREAK); 151 _tbodyRenderer.doEndTag(appender); 152 } 153 154 public void openTableFoot(TFootTag.State state, AbstractRenderAppender appender) { 155 if(state == null) 156 state = TFOOT_STATE; 157 158 if(_tfootRenderer == null) 159 _tfootRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.TFOOT_TAG, _request); 160 161 appender.append(LINE_BREAK); 162 _tfootRenderer.doStartTag(appender, state); 163 appender.append(LINE_BREAK); 164 } 165 166 public void closeTableFoot(AbstractRenderAppender appender) { 167 assert _tfootRenderer != null : "Encountered a null TFootTag renderer. Was openTableFoot called?"; 168 169 appender.append(LINE_BREAK); 170 _tfootRenderer.doEndTag(appender); 171 appender.append(LINE_BREAK); 172 } 173 174 175 180 181 public final void openHeaderRow(TrTag.State state, AbstractRenderAppender appender) { 182 if(state == null) 183 state = TR_STATE; 184 185 appender.append(LINE_BREAK); 186 _trRenderer.doStartTag(appender, state); 187 } 188 189 public void closeHeaderRow(AbstractRenderAppender appender) { 190 appender.append(LINE_BREAK); 191 _trRenderer.doEndTag(appender); 192 } 193 194 public void openTableRow(TrTag.State state, AbstractRenderAppender appender) { 195 appender.append(LINE_BREAK); 196 _trRenderer.doStartTag(appender, state); 197 } 198 199 public void closeTableRow(AbstractRenderAppender appender) { 200 appender.append(LINE_BREAK); 201 _trRenderer.doEndTag(appender); 202 } 203 204 public void openFooterRow(TrTag.State state, AbstractRenderAppender appender) { 205 if(state == null) 206 state = TR_STATE; 207 208 appender.append(LINE_BREAK); 209 _trRenderer.doStartTag(appender, state); 210 } 211 212 public void closeFooterRow(AbstractRenderAppender appender) { 213 appender.append(LINE_BREAK); 214 _trRenderer.doEndTag(appender); 215 } 216 217 222 223 public void openHeaderCell(ThTag.State state, AbstractRenderAppender appender) { 224 _thRenderer.doStartTag(appender, state); 225 } 226 227 public void closeHeaderCell(AbstractRenderAppender appender) { 228 _thRenderer.doEndTag(appender); 229 appender.append(LINE_BREAK); 230 } 231 232 public void openTableCell(TdTag.State state, AbstractRenderAppender appender) { 233 _tdRenderer.doStartTag(appender, state); 234 } 235 236 public void closeTableCell(AbstractRenderAppender appender) { 237 _tdRenderer.doEndTag(appender); 238 } 239 } 240 | Popular Tags |