/* * * This file is part of the iText (R) project. Copyright (c) 1998-2017 iText Group NV * Authors: Balder Van Camp, Emiel Ackermann, et al. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License version 3 * as published by the Free Software Foundation with the addition of the * following permission added to Section 15 as permitted in Section 7(a): * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY * ITEXT GROUP. ITEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT * OF THIRD PARTY RIGHTS * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public License * along with this program; if not, see http://www.gnu.org/licenses or write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA, 02110-1301 USA, or download the license from the following URL: * http://itextpdf.com/terms-of-use/ * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License. * * In accordance with Section 7(b) of the GNU Affero General Public License, * a covered work must retain the producer line in every PDF that is created * or manipulated using iText. * * You can be released from the requirements of the license by purchasing * a commercial license. Buying such a license is mandatory as soon as you * develop commercial activities involving the iText software without * disclosing the source code of your own applications. * These activities include: offering paid services to customers as an ASP, * serving PDFs on the fly in a web application, shipping iText with a closed * source product. * * For more information, please contact iText Software Corp. at this * address: sales@itextpdf.com */ package com.itextpdf.tool.xml.html.table; import com.itextpdf.text.BaseColor; /** * Class is used for storing style values of a table or cell. The stored style values are used when drawing the borders and background colors of tables or cells. * * @author Emiel Ackermann * */ public class TableStyleValues { private float horBorderSpacing; private float verBorderSpacing; private Float borderLeftWidth = null; private BaseColor borderLeftColor; private Float borderRightWidth = null; private BaseColor borderRightColor; private Float borderTopWidth = null; private BaseColor borderTopColor; private Float borderBottomWidth = null; private BaseColor borderBottomColor; private boolean isLastInRow = false; private BaseColor background; /** * Default constructor. */ public TableStyleValues() { } /** * @return the horBorderSpacing */ public float getHorBorderSpacing() { return horBorderSpacing; } /** * @param horBorderSpacing the spacing */ public void setHorBorderSpacing(final float horBorderSpacing) { this.horBorderSpacing = horBorderSpacing; } /** * @param verBorderSpacing the spacing */ public void setVerBorderSpacing(final float verBorderSpacing) { this.verBorderSpacing = verBorderSpacing; } /** * @return the verBorderSpacing */ public float getVerBorderSpacing() { return verBorderSpacing; } /** * Only used by cells. This boolean is used for adding a horizontal border spacing to the right of a cell. * @param isLastInRow boolean. */ public void setLastInRow(final boolean isLastInRow) { this.isLastInRow = isLastInRow; } /** * Only used by cells. This boolean is used for adding a horizontal border spacing to the right of a cell. * @return isLastInRow boolean. */ public boolean isLastInRow() { return isLastInRow; } /** * @return the borderLeftWidth */ public float getBorderWidthLeft() { return getBorderWidthLeft(true); } /** * @return the borderLeftWidth */ public Float getBorderWidthLeft(boolean defaultIfNotSet) { if(borderLeftWidth == null && defaultIfNotSet) return 0f; return borderLeftWidth; } /** * @param borderLeftWidth the borderLeftWidth to set */ public void setBorderWidthLeft(final float borderLeftWidth) { this.borderLeftWidth = borderLeftWidth; } /** * @return the borderLeftColor */ public BaseColor getBorderColorLeft() { return borderLeftColor; } /** * @param borderLeftColor the borderLeftColor to set */ public void setBorderColorLeft(final BaseColor borderLeftColor) { this.borderLeftColor = borderLeftColor; } /** * @return the borderRightWidth */ public float getBorderWidthRight() { return getBorderWidthRight(true); } /** * @return the borderRightWidth */ public Float getBorderWidthRight(boolean defaultIfNotSet) { if (borderRightWidth == null && defaultIfNotSet) { return 0f; } return borderRightWidth; } /** * @param borderRightWidth the borderRightWidth to set */ public void setBorderWidthRight(final float borderRightWidth) { this.borderRightWidth = borderRightWidth; } /** * @return the borderRightColor */ public BaseColor getBorderColorRight() { return borderRightColor; } /** * @param borderRightColor the borderRightColor to set */ public void setBorderColorRight(final BaseColor borderRightColor) { this.borderRightColor = borderRightColor; } /** * @return the borderTopWidth */ public float getBorderWidthTop() { return getBorderWidthTop(true); } /** * @return the borderTopWidth */ public Float getBorderWidthTop(boolean defaultIfNotSet) { if (borderTopWidth == null && defaultIfNotSet) { return 0f; } return borderTopWidth; } /** * @param borderTopWidth the borderTopWidth to set */ public void setBorderWidthTop(final float borderTopWidth) { this.borderTopWidth = borderTopWidth; } /** * @return the borderTopColor */ public BaseColor getBorderColorTop() { return borderTopColor; } /** * @param borderTopColor the borderTopColor to set */ public void setBorderColorTop(final BaseColor borderTopColor) { this.borderTopColor = borderTopColor; } /** * @return the borderBottomWidth */ public float getBorderWidthBottom() { return getBorderWidthBottom(true); } /** * @return the borderBottomWidth */ public Float getBorderWidthBottom(boolean defaultIfNotSet) { if (borderBottomWidth == null && defaultIfNotSet) { return 0f; } return borderBottomWidth; } /** * @param borderBottomWidth the borderBottomWidth to set */ public void setBorderWidthBottom(final float borderBottomWidth) { this.borderBottomWidth = borderBottomWidth; } /** * @return the borderBottomColor */ public BaseColor getBorderColorBottom() { return borderBottomColor; } /** * @param borderBottomColor the borderBottomColor to set */ public void setBorderColorBottom(final BaseColor borderBottomColor) { this.borderBottomColor = borderBottomColor; } /** * Sets the border width for the entire table or cell. * @param width float. */ public void setBorderWidth(final float width) { borderBottomWidth = width; borderLeftWidth = width; borderRightWidth = width; borderTopWidth = width; } /** * Sets the border color for the entire table or cell. * @param color BaseColor. */ public void setBorderColor(final BaseColor color) { borderBottomColor = color; borderLeftColor = color; borderRightColor = color; borderTopColor = color; } /** * Sets background color. * @param background BaseColor. */ public void setBackground(final BaseColor background) { this.background = background; } /** * Get background color. * @return BaseColor */ public BaseColor getBackground() { return background; } }