KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > beehive > netui > databinding > datagrid > runtime > rendering > table > TableRenderer


1 /*
2  * Copyright 2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * $Header:$
17  */

18 package org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table;
19
20 import javax.servlet.http.HttpServletRequest JavaDoc;
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 /**
34  *
35  */

36 public final class TableRenderer {
37
38     private static final String JavaDoc 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 JavaDoc _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 JavaDoc 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     /* -------------------------------------------------------------
72
73         Table Rendering
74
75        ------------------------------------------------------------- */

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     /* -------------------------------------------------------------
112
113         Table Row Group Rendering
114
115        ------------------------------------------------------------- */

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     /* -------------------------------------------------------------
176
177         Table Row Rendering
178
179        ------------------------------------------------------------- */

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     /* -------------------------------------------------------------
218
219         Table Cell Rendering
220
221        ------------------------------------------------------------- */

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