1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. 2 * 3 * This program and the accompanying materials are made available under 4 * the terms of the Common Public License v1.0 which accompanies this distribution, 5 * and is available at http://www.eclipse.org/legal/cpl-v10.html 6 * 7 * $Id: HTMLTable.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $ 8 */ 9 package com.vladium.emma.report.html.doc; 10 11 // ---------------------------------------------------------------------------- 12 /** 13 * @author Vlad Roubtsov, (C) 2003 14 */ 15 public 16 final class HTMLTable extends IElement.Factory.ElementImpl 17 { 18 // public: ................................................................ 19 20 public static interface ICell extends IElement 21 { setColspan(final int span)22 ICell setColspan (final int span); 23 24 } // end of nested interface 25 26 public static interface IRow extends IElement 27 { newCell()28 ICell newCell (); 29 30 } // end of nested interface 31 HTMLTable(final String width, final String border, final String cellpadding, final String cellspacing)32 public HTMLTable (final String width, final String border, final String cellpadding, final String cellspacing) 33 { 34 super (Tag.TABLE, AttributeSet.create ()); 35 36 final AttributeSet attrs = getAttributes (); 37 38 if (width != null) attrs.set (Attribute.WIDTH, width); 39 if (border != null) attrs.set (Attribute.BORDER, border); 40 if (cellpadding != null) attrs.set (Attribute.CELLPADDING, cellpadding); 41 if (cellspacing != null) attrs.set (Attribute.CELLSPACING, cellspacing); 42 43 //m_rows = new LinkedList (); 44 } 45 setCaption(final String align, final String text, final boolean nbsp)46 public void setCaption (final String align, final String text, final boolean nbsp) 47 { 48 m_caption = IElement.Factory.create (Tag.CAPTION); 49 50 m_caption.getAttributes ().set (Attribute.ALIGN, align); 51 m_caption.setText (text, nbsp); 52 } 53 newTitleRow()54 public IRow newTitleRow () 55 { 56 final Row row = new Row (true); 57 add (row); 58 59 return row; 60 } 61 newRow()62 public IRow newRow () 63 { 64 final Row row = new Row (false); 65 add (row); 66 67 return row; 68 } 69 emit(final HTMLWriter out)70 public void emit (final HTMLWriter out) 71 { 72 if (m_caption != null) 73 { 74 add (0, m_caption); 75 } 76 77 super.emit(out); 78 } 79 80 // protected: ............................................................. 81 82 // package: ............................................................... 83 84 // private: ............................................................... 85 86 87 private static class Cell extends IElement.Factory.ElementImpl 88 implements ICell 89 { setColspan(final int span)90 public ICell setColspan (final int span) 91 { 92 getAttributes ().set (Attribute.COLSPAN, span); 93 94 return this; 95 } 96 Cell(Tag tag)97 Cell (Tag tag) 98 { 99 super (tag, AttributeSet.create ()); 100 } 101 102 } // end of nested class 103 104 105 private static class Row extends IElement.Factory.ElementImpl 106 implements IRow 107 { newCell()108 public ICell newCell () 109 { 110 final ICell cell = new Cell (m_th ? Tag.TH : Tag.TD); 111 add (cell); 112 113 return cell; 114 } 115 Row(final boolean th)116 Row (final boolean th) 117 { 118 super (Tag.TR, AttributeSet.create ()); 119 120 m_th = th; 121 } 122 123 124 private final boolean m_th; 125 126 } // end of nested class 127 128 129 private IElement m_caption; 130 131 } // end of class 132 // ----------------------------------------------------------------------------