/* 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 // ----------------------------------------------------------------------------