01: /*
02: * This file is part of "SnipSnap Radeox Rendering Engine".
03: *
04: * Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel
05: * All Rights Reserved.
06: *
07: * Please visit http://radeox.org/ for updates and contact.
08: *
09: * --LICENSE NOTICE--
10: * Licensed under the Apache License, Version 2.0 (the "License");
11: * you may not use this file except in compliance with the License.
12: * You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software
17: * distributed under the License is distributed on an "AS IS" BASIS,
18: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19: * See the License for the specific language governing permissions and
20: * limitations under the License.
21: * --LICENSE NOTICE--
22: */
23:
24: package org.radeox.macro;
25:
26: import java.io.IOException;
27: import java.io.Writer;
28:
29: import org.radeox.Messages;
30: import org.radeox.api.macro.MacroParameter;
31: import org.radeox.macro.table.Table;
32: import org.radeox.macro.table.TableBuilder;
33:
34: /*
35: * Macro for defining and displaying tables. The rows of the table are devided
36: * by newlins and the columns are divided by pipe symbols "|". The first line of
37: * the table is rendered as column headers. {table} A|B|C 1|2|3 {table} @author
38: * stephan @team sonicteam
39: *
40: * @version $Id: TableMacro.java 29159 2007-04-19 01:46:15Z ajpoland@iupui.edu $
41: */
42:
43: public class TableMacro extends BaseLocaleMacro {
44: private String[] paramDescription = {};
45:
46: public String[] getParamDescription() {
47: return paramDescription;
48: }
49:
50: public String getLocaleKey() {
51: return "macro.table"; //$NON-NLS-1$
52: }
53:
54: public void execute(Writer writer, MacroParameter params)
55: throws IllegalArgumentException, IOException {
56:
57: String content = params.getContent();
58:
59: if (null == content)
60: throw new IllegalArgumentException(Messages
61: .getString("TableMacro.1")); //$NON-NLS-1$
62:
63: content = content.trim() + "\n"; //$NON-NLS-1$
64:
65: Table table = TableBuilder.build(content);
66: table.calc(); // calculate macros like =SUM(A1:A3)
67: table.appendTo(writer);
68: return;
69: }
70: }
|