1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.jelly.tags.swing;
17
18 import org.apache.commons.jelly.JellyTagException;
19 import org.apache.commons.jelly.expression.Expression;
20 import org.apache.commons.jelly.tags.core.UseBeanTag;
21 import org.apache.commons.jelly.tags.swing.model.ExpressionTableColumn;
22
23 /***
24 * Creates a default TableColumnModel.
25 *
26 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
27 * @version $Revision: 155420 $
28 */
29 public class TableModelColumnTag extends UseBeanTag {
30
31 public ExpressionTableColumn getColumn() {
32 return (ExpressionTableColumn) getBean();
33 }
34
35 public Class getAttributeType(String name) throws JellyTagException {
36 if (name.equals("value")) {
37 return Expression.class;
38 }
39 return super.getAttributeType(name);
40 }
41
42
43
44 protected void processBean(String var, Object bean) throws JellyTagException {
45 super.processBean(var, bean);
46
47 TableModelTag tag = (TableModelTag) findAncestorWithClass( TableModelTag.class );
48 if ( tag == null ) {
49 throw new JellyTagException( "This tag must be nested within a <tableModel> tag" );
50 }
51 tag.getTableModel().addColumn( getColumn() );
52 }
53
54 protected Class getDefaultClass() {
55 return ExpressionTableColumn.class;
56 }
57 }
58