01: /*
02: * $Id: AbstractCellRenderer.java 471756 2006-11-06 15:01:43Z husted $
03: *
04: * Licensed to the Apache Software Foundation (ASF) under one
05: * or more contributor license agreements. See the NOTICE file
06: * distributed with this work for additional information
07: * regarding copyright ownership. The ASF licenses this file
08: * to you under the Apache License, Version 2.0 (the
09: * "License"); you may not use this file except in compliance
10: * with the License. You may obtain a copy of the License at
11: *
12: * http://www.apache.org/licenses/LICENSE-2.0
13: *
14: * Unless required by applicable law or agreed to in writing,
15: * software distributed under the License is distributed on an
16: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17: * KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations
19: * under the License.
20: */
21: package org.apache.struts2.components.table.renderer;
22:
23: import org.apache.struts2.components.table.WebTable;
24:
25: /**
26: * this is the base class that most renderers will be derived from.
27: * It allows setting the alignment. Subclasses should set there actuall
28: * content by implementing getCellValue
29: */
30: abstract public class AbstractCellRenderer implements CellRenderer {
31:
32: /**
33: * used for horizontal cell alignmnet
34: */
35: protected String _alignment = null;
36:
37: public void setAlignment(String alignment) {
38: _alignment = alignment;
39: }
40:
41: public String getAlignment() {
42: return _alignment;
43: }
44:
45: /**
46: * implememnts CellRenderer renderCell. It sets the alignment. gets the actual
47: * data from getCellValue
48: */
49: public String renderCell(WebTable table, Object data, int row,
50: int col) {
51: if (isAligned()) {
52: StringBuffer buf = new StringBuffer(256);
53: buf.append("<div align='").append(_alignment).append("'>");
54: buf.append(getCellValue(table, data, row, col));
55: buf.append("</div>");
56:
57: return buf.toString();
58: }
59:
60: return getCellValue(table, data, row, col);
61: }
62:
63: protected boolean isAligned() {
64: return _alignment != null;
65: }
66:
67: /**
68: * this is the method that subclasses need to implement to set their value.
69: * they should not override renderCell unless they want to change the alignmnent
70: * renderering
71: */
72: abstract protected String getCellValue(WebTable table, Object data,
73: int row, int col);
74: }
|