| /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under |
| * the terms of the Common Public License v1.0 which accompanies this distribution, |
| * and is available at http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * $Id: HTMLTable.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $ |
| */ |
| package com.vladium.emma.report.html.doc; |
| |
| // ---------------------------------------------------------------------------- |
| /** |
| * @author Vlad Roubtsov, (C) 2003 |
| */ |
| public |
| final class HTMLTable extends IElement.Factory.ElementImpl |
| { |
| // public: ................................................................ |
| |
| public static interface ICell extends IElement |
| { |
| ICell setColspan (final int span); |
| |
| } // end of nested interface |
| |
| public static interface IRow extends IElement |
| { |
| ICell newCell (); |
| |
| } // end of nested interface |
| |
| public HTMLTable (final String width, final String border, final String cellpadding, final String cellspacing) |
| { |
| super (Tag.TABLE, AttributeSet.create ()); |
| |
| final AttributeSet attrs = getAttributes (); |
| |
| if (width != null) attrs.set (Attribute.WIDTH, width); |
| if (border != null) attrs.set (Attribute.BORDER, border); |
| if (cellpadding != null) attrs.set (Attribute.CELLPADDING, cellpadding); |
| if (cellspacing != null) attrs.set (Attribute.CELLSPACING, cellspacing); |
| |
| //m_rows = new LinkedList (); |
| } |
| |
| public void setCaption (final String align, final String text, final boolean nbsp) |
| { |
| m_caption = IElement.Factory.create (Tag.CAPTION); |
| |
| m_caption.getAttributes ().set (Attribute.ALIGN, align); |
| m_caption.setText (text, nbsp); |
| } |
| |
| public IRow newTitleRow () |
| { |
| final Row row = new Row (true); |
| add (row); |
| |
| return row; |
| } |
| |
| public IRow newRow () |
| { |
| final Row row = new Row (false); |
| add (row); |
| |
| return row; |
| } |
| |
| public void emit (final HTMLWriter out) |
| { |
| if (m_caption != null) |
| { |
| add (0, m_caption); |
| } |
| |
| super.emit(out); |
| } |
| |
| // protected: ............................................................. |
| |
| // package: ............................................................... |
| |
| // private: ............................................................... |
| |
| |
| private static class Cell extends IElement.Factory.ElementImpl |
| implements ICell |
| { |
| public ICell setColspan (final int span) |
| { |
| getAttributes ().set (Attribute.COLSPAN, span); |
| |
| return this; |
| } |
| |
| Cell (Tag tag) |
| { |
| super (tag, AttributeSet.create ()); |
| } |
| |
| } // end of nested class |
| |
| |
| private static class Row extends IElement.Factory.ElementImpl |
| implements IRow |
| { |
| public ICell newCell () |
| { |
| final ICell cell = new Cell (m_th ? Tag.TH : Tag.TD); |
| add (cell); |
| |
| return cell; |
| } |
| |
| Row (final boolean th) |
| { |
| super (Tag.TR, AttributeSet.create ()); |
| |
| m_th = th; |
| } |
| |
| |
| private final boolean m_th; |
| |
| } // end of nested class |
| |
| |
| private IElement m_caption; |
| |
| } // end of class |
| // ---------------------------------------------------------------------------- |