net.sf.dynamicreports.report.builder.style.BaseStyleBuilder Maven / Gradle / Ivy
Show all versions of dynamicreports-core Show documentation
/*
* DynamicReports - Free Java reporting library for creating reports dynamically
*
* Copyright (C) 2010 - 2018 Ricardo Mariaca and the Dynamic Reports Contributors
*
* This file is part of DynamicReports.
*
* DynamicReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DynamicReports 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with DynamicReports. If not, see .
*/
package net.sf.dynamicreports.report.builder.style;
import net.sf.dynamicreports.report.base.style.DRBaseStyle;
import net.sf.dynamicreports.report.base.style.DRTabStop;
import net.sf.dynamicreports.report.builder.AbstractBuilder;
import net.sf.dynamicreports.report.constant.Constants;
import net.sf.dynamicreports.report.constant.HorizontalAlignment;
import net.sf.dynamicreports.report.constant.HorizontalImageAlignment;
import net.sf.dynamicreports.report.constant.HorizontalTextAlignment;
import net.sf.dynamicreports.report.constant.ImageScale;
import net.sf.dynamicreports.report.constant.LineSpacing;
import net.sf.dynamicreports.report.constant.Markup;
import net.sf.dynamicreports.report.constant.Rotation;
import net.sf.dynamicreports.report.constant.TabStopAlignment;
import net.sf.dynamicreports.report.constant.VerticalAlignment;
import net.sf.dynamicreports.report.constant.VerticalImageAlignment;
import net.sf.dynamicreports.report.constant.VerticalTextAlignment;
import org.apache.commons.lang3.Validate;
import java.awt.Color;
/**
* Abstract BaseStyleBuilder class.
*
* @author Ricardo Mariaca
*
*/
@SuppressWarnings( {"unchecked", "deprecation"})
public abstract class BaseStyleBuilder, U extends DRBaseStyle> extends AbstractBuilder {
private static final long serialVersionUID = Constants.SERIAL_VERSION_UID;
/**
* Constructor for BaseStyleBuilder.
*
* @param baseStyle a U object.
*/
protected BaseStyleBuilder(U baseStyle) {
super(baseStyle);
}
/**
* setBackgroundColor.
*
* @param backgroundColor a {@link java.awt.Color} object.
* @return a T object.
*/
public T setBackgroundColor(Color backgroundColor) {
getObject().setBackgroundColor(backgroundColor);
return (T) this;
}
/**
* setBorder.
*
* @param border a {@link net.sf.dynamicreports.report.builder.style.BorderBuilder} object.
* @return a T object.
*/
public T setBorder(BorderBuilder border) {
if (border != null) {
getObject().setBorder(border.build());
} else {
getObject().setBorder(null);
}
return (T) this;
}
/**
* setBorder.
*
* @param pen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setBorder(PenBuilder pen) {
return setBorder(pen != null ? Styles.border(pen) : null);
}
/**
* setTopBorder.
*
* @param topPen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setTopBorder(PenBuilder topPen) {
if (topPen != null) {
getObject().getBorder().setTopPen(topPen.build());
} else {
getObject().getBorder().setTopPen(null);
}
return (T) this;
}
/**
* setLeftBorder.
*
* @param leftPen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setLeftBorder(PenBuilder leftPen) {
if (leftPen != null) {
getObject().getBorder().setLeftPen(leftPen.build());
} else {
getObject().getBorder().setLeftPen(null);
}
return (T) this;
}
/**
* setBottomBorder.
*
* @param bottomPen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setBottomBorder(PenBuilder bottomPen) {
if (bottomPen != null) {
getObject().getBorder().setBottomPen(bottomPen.build());
} else {
getObject().getBorder().setBottomPen(null);
}
return (T) this;
}
/**
* setRightBorder.
*
* @param rightPen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setRightBorder(PenBuilder rightPen) {
if (rightPen != null) {
getObject().getBorder().setRightPen(rightPen.build());
} else {
getObject().getBorder().setRightPen(null);
}
return (T) this;
}
/**
* setFont.
*
* @param font a {@link net.sf.dynamicreports.report.builder.style.FontBuilder} object.
* @return a T object.
*/
public T setFont(FontBuilder font) {
if (font != null) {
getObject().setFont(font.build());
} else {
getObject().setFont(null);
}
return (T) this;
}
/**
* bold.
*
* @return a T object.
*/
public T bold() {
return setBold(true);
}
/**
* setBold.
*
* @param bold a {@link java.lang.Boolean} object.
* @return a T object.
*/
public T setBold(Boolean bold) {
getObject().getFont().setBold(bold);
return (T) this;
}
/**
* setFontName.
*
* @param fontName a {@link java.lang.String} object.
* @return a T object.
*/
public T setFontName(String fontName) {
getObject().getFont().setFontName(fontName);
return (T) this;
}
/**
* setFontSize.
*
* @param fontSize a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setFontSize(Integer fontSize) {
getObject().getFont().setFontSize(fontSize);
return (T) this;
}
/**
* italic.
*
* @return a T object.
*/
public T italic() {
return setItalic(true);
}
/**
* setItalic.
*
* @param italic a {@link java.lang.Boolean} object.
* @return a T object.
*/
public T setItalic(Boolean italic) {
getObject().getFont().setItalic(italic);
return (T) this;
}
/**
* boldItalic.
*
* @return a T object.
*/
public T boldItalic() {
setBold(true);
return setItalic(true);
}
@Deprecated
/**
* You should configure the fonts.xml file
*
* @param pdfEmbedded a {@link java.lang.Boolean} object.
* @return a T object.
*/
public T setPdfEmbedded(Boolean pdfEmbedded) {
getObject().getFont().setPdfEmbedded(pdfEmbedded);
return (T) this;
}
@Deprecated
/**
* You should configure the fonts.xml file
*
* @param pdfEncoding a {@link java.lang.String} object.
* @return a T object.
*/
public T setPdfEncoding(String pdfEncoding) {
getObject().getFont().setPdfEncoding(pdfEncoding);
return (T) this;
}
@Deprecated
/**
* You should configure the fonts.xml file
*
* @param pdfFontName a {@link java.lang.String} object.
* @return a T object.
*/
public T setPdfFontName(String pdfFontName) {
getObject().getFont().setPdfFontName(pdfFontName);
return (T) this;
}
/**
* strikeThrough.
*
* @return a T object.
*/
public T strikeThrough() {
return setStrikeThrough(true);
}
/**
* setStrikeThrough.
*
* @param strikeThrough a {@link java.lang.Boolean} object.
* @return a T object.
*/
public T setStrikeThrough(Boolean strikeThrough) {
getObject().getFont().setStrikeThrough(strikeThrough);
return (T) this;
}
/**
* underline.
*
* @return a T object.
*/
public T underline() {
return setUnderline(true);
}
/**
* setUnderline.
*
* @param underline a {@link java.lang.Boolean} object.
* @return a T object.
*/
public T setUnderline(Boolean underline) {
getObject().getFont().setUnderline(underline);
return (T) this;
}
/**
* setForegroundColor.
*
* @param foregroudColor a {@link java.awt.Color} object.
* @return a T object.
*/
public T setForegroundColor(Color foregroudColor) {
getObject().setForegroundColor(foregroudColor);
return (T) this;
}
/**
* setHorizontalAlignment.
*
* @param horizontalAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalAlignment} object.
* @return a T object.
* @deprecated use setHorizontalTextAlignment instead
*/
@Deprecated
public T setHorizontalAlignment(HorizontalAlignment horizontalAlignment) {
if (horizontalAlignment != null) {
getObject().setHorizontalTextAlignment(HorizontalTextAlignment.valueOf(horizontalAlignment.name()));
} else {
getObject().setHorizontalTextAlignment(null);
}
return (T) this;
}
/**
* setHorizontalTextAlignment.
*
* @param horizontalTextAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalTextAlignment} object.
* @return a T object.
*/
public T setHorizontalTextAlignment(HorizontalTextAlignment horizontalTextAlignment) {
getObject().setHorizontalTextAlignment(horizontalTextAlignment);
return (T) this;
}
/**
* setHorizontalImageAlignment.
*
* @param horizontalImageAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalImageAlignment} object.
* @return a T object.
*/
public T setHorizontalImageAlignment(HorizontalImageAlignment horizontalImageAlignment) {
getObject().setHorizontalImageAlignment(horizontalImageAlignment);
return (T) this;
}
/**
* setImageScale.
*
* @param imageScale a {@link net.sf.dynamicreports.report.constant.ImageScale} object.
* @return a T object.
*/
public T setImageScale(ImageScale imageScale) {
getObject().setImageScale(imageScale);
return (T) this;
}
/**
* setPadding.
*
* @param padding a {@link net.sf.dynamicreports.report.builder.style.PaddingBuilder} object.
* @return a T object.
*/
public T setPadding(PaddingBuilder padding) {
if (padding != null) {
getObject().setPadding(padding.build());
} else {
getObject().setPadding(null);
}
return (T) this;
}
/**
* setPadding.
*
* @param padding a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setPadding(Integer padding) {
return setPadding(Styles.padding(padding));
}
/**
* setTopPadding.
*
* @param top a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setTopPadding(Integer top) {
getObject().getPadding().setTop(top);
return (T) this;
}
/**
* setLeftPadding.
*
* @param left a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setLeftPadding(Integer left) {
getObject().getPadding().setLeft(left);
return (T) this;
}
/**
* setBottomPadding.
*
* @param bottom a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setBottomPadding(Integer bottom) {
getObject().getPadding().setBottom(bottom);
return (T) this;
}
/**
* setRightPadding.
*
* @param right a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setRightPadding(Integer right) {
getObject().getPadding().setRight(right);
return (T) this;
}
/**
* setPattern.
*
* @param pattern a {@link java.lang.String} object.
* @return a T object.
*/
public T setPattern(String pattern) {
getObject().setPattern(pattern);
return (T) this;
}
/**
* setRadius.
*
* @param radius a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setRadius(Integer radius) {
getObject().setRadius(radius);
return (T) this;
}
/**
* setRotation.
*
* @param rotation a {@link net.sf.dynamicreports.report.constant.Rotation} object.
* @return a T object.
*/
public T setRotation(Rotation rotation) {
getObject().setRotation(rotation);
return (T) this;
}
/**
* setAlignment.
*
* @param horizontalAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalAlignment} object.
* @param verticalAlignment a {@link net.sf.dynamicreports.report.constant.VerticalAlignment} object.
* @return a T object.
* @deprecated use setTextAlignment instead
*/
@Deprecated
public T setAlignment(HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment) {
if (horizontalAlignment != null) {
getObject().setHorizontalTextAlignment(HorizontalTextAlignment.valueOf(horizontalAlignment.name()));
} else {
getObject().setHorizontalTextAlignment(null);
}
if (verticalAlignment != null) {
getObject().setVerticalTextAlignment(VerticalTextAlignment.valueOf(verticalAlignment.name()));
} else {
getObject().setVerticalTextAlignment(null);
}
return (T) this;
}
/**
* setTextAlignment.
*
* @param horizontalTextAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalTextAlignment} object.
* @param verticalTextAlignment a {@link net.sf.dynamicreports.report.constant.VerticalTextAlignment} object.
* @return a T object.
*/
public T setTextAlignment(HorizontalTextAlignment horizontalTextAlignment, VerticalTextAlignment verticalTextAlignment) {
getObject().setHorizontalTextAlignment(horizontalTextAlignment);
getObject().setVerticalTextAlignment(verticalTextAlignment);
return (T) this;
}
/**
* setImageAlignment.
*
* @param horizontalImageAlignment a {@link net.sf.dynamicreports.report.constant.HorizontalImageAlignment} object.
* @param verticalImageAlignment a {@link net.sf.dynamicreports.report.constant.VerticalImageAlignment} object.
* @return a T object.
*/
public T setImageAlignment(HorizontalImageAlignment horizontalImageAlignment, VerticalImageAlignment verticalImageAlignment) {
getObject().setHorizontalImageAlignment(horizontalImageAlignment);
getObject().setVerticalImageAlignment(verticalImageAlignment);
return (T) this;
}
/**
* setVerticalAlignment.
*
* @param verticalAlignment a {@link net.sf.dynamicreports.report.constant.VerticalAlignment} object.
* @return a T object.
* @deprecated use setVerticalTextAlignment instead
*/
@Deprecated
public T setVerticalAlignment(VerticalAlignment verticalAlignment) {
if (verticalAlignment != null) {
getObject().setVerticalTextAlignment(VerticalTextAlignment.valueOf(verticalAlignment.name()));
} else {
getObject().setVerticalTextAlignment(null);
}
return (T) this;
}
/**
* setVerticalTextAlignment.
*
* @param verticalTextAlignment a {@link net.sf.dynamicreports.report.constant.VerticalTextAlignment} object.
* @return a T object.
*/
public T setVerticalTextAlignment(VerticalTextAlignment verticalTextAlignment) {
getObject().setVerticalTextAlignment(verticalTextAlignment);
return (T) this;
}
/**
* setVerticalImageAlignment.
*
* @param verticalImageAlignment a {@link net.sf.dynamicreports.report.constant.VerticalImageAlignment} object.
* @return a T object.
*/
public T setVerticalImageAlignment(VerticalImageAlignment verticalImageAlignment) {
getObject().setVerticalImageAlignment(verticalImageAlignment);
return (T) this;
}
/**
* setMarkup.
*
* @param markup a {@link net.sf.dynamicreports.report.constant.Markup} object.
* @return a T object.
*/
public T setMarkup(Markup markup) {
getObject().setMarkup(markup);
return (T) this;
}
/**
* setLineSpacing.
*
* @param lineSpacing a {@link net.sf.dynamicreports.report.constant.LineSpacing} object.
* @return a T object.
*/
public T setLineSpacing(LineSpacing lineSpacing) {
getObject().getParagraph().setLineSpacing(lineSpacing);
return (T) this;
}
/**
* setLineSpacingSize.
*
* @param lineSpacingSize a {@link java.lang.Float} object.
* @return a T object.
*/
public T setLineSpacingSize(Float lineSpacingSize) {
getObject().getParagraph().setLineSpacingSize(lineSpacingSize);
return (T) this;
}
/**
* setFirstLineIndent.
*
* @param firstLineIndent a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setFirstLineIndent(Integer firstLineIndent) {
getObject().getParagraph().setFirstLineIndent(firstLineIndent);
return (T) this;
}
/**
* setLeftIndent.
*
* @param leftIndent a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setLeftIndent(Integer leftIndent) {
getObject().getParagraph().setLeftIndent(leftIndent);
return (T) this;
}
/**
* setRightIndent.
*
* @param rightIndent a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setRightIndent(Integer rightIndent) {
getObject().getParagraph().setRightIndent(rightIndent);
return (T) this;
}
/**
* setSpacingBefore.
*
* @param spacingBefore a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setSpacingBefore(Integer spacingBefore) {
getObject().getParagraph().setSpacingBefore(spacingBefore);
return (T) this;
}
/**
* setSpacingAfter.
*
* @param spacingAfter a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setSpacingAfter(Integer spacingAfter) {
getObject().getParagraph().setSpacingAfter(spacingAfter);
return (T) this;
}
/**
* setTabStopWidth.
*
* @param tabStopWidth a {@link java.lang.Integer} object.
* @return a T object.
*/
public T setTabStopWidth(Integer tabStopWidth) {
getObject().getParagraph().setTabStopWidth(tabStopWidth);
return (T) this;
}
/**
* addTabStop.
*
* @param position a int.
* @param alignment a {@link net.sf.dynamicreports.report.constant.TabStopAlignment} object.
* @return a T object.
*/
public T addTabStop(int position, TabStopAlignment alignment) {
Validate.notNull(alignment, "alignment must not be null");
DRTabStop tabStop = new DRTabStop();
tabStop.setPosition(position);
tabStop.setAlignment(alignment);
getObject().getParagraph().getTabStops().add(tabStop);
return (T) this;
}
/**
* setLinePen.
*
* @param linePen a {@link net.sf.dynamicreports.report.builder.style.PenBuilder} object.
* @return a T object.
*/
public T setLinePen(PenBuilder linePen) {
if (linePen != null) {
getObject().setLinePen(linePen.build());
} else {
getObject().setLinePen(null);
}
return (T) this;
}
/**
* getStyle.
*
* @return a U object.
*/
public U getStyle() {
return build();
}
}