Package com.helger.pdflayout.base
Class AbstractPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>
- java.lang.Object
-
- com.helger.pdflayout.base.AbstractPLObject<IMPLTYPE>
-
- com.helger.pdflayout.base.AbstractPLRenderableObject<IMPLTYPE>
-
- com.helger.pdflayout.base.AbstractPLElement<IMPLTYPE>
-
- Type Parameters:
IMPLTYPE- The implementation type of this class.
- All Implemented Interfaces:
com.helger.commons.id.IHasID<String>,com.helger.commons.traits.IGenericImplTrait<IMPLTYPE>,IPLElement<IMPLTYPE>,IPLHasBorder<IMPLTYPE>,IPLHasFillColor<IMPLTYPE>,IPLHasMargin<IMPLTYPE>,IPLHasMarginBorderPadding<IMPLTYPE>,IPLHasOutline,IPLHasPadding<IMPLTYPE>,IPLObject<IMPLTYPE>,IPLRenderableObject<IMPLTYPE>,IPLVisitable
- Direct Known Subclasses:
AbstractPLBlockElement,AbstractPLInlineBox,AbstractPLInlineElement
public abstract class AbstractPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>> extends AbstractPLRenderableObject<IMPLTYPE> implements IPLElement<IMPLTYPE>
Abstract renderable PL element having a minimum size, a maximum size, margin, border, padding and a fill color.- Author:
- Philip Helger
-
-
Field Summary
-
Fields inherited from interface com.helger.pdflayout.base.IPLElement
DEFAULT_MAX_SIZE, DEFAULT_MIN_SIZE
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasBorder
DEFAULT_BORDER
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasFillColor
DEFAULT_FILL_COLOR
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasMargin
DEFAULT_MARGIN
-
Fields inherited from interface com.helger.pdflayout.base.IPLHasPadding
DEFAULT_PADDING
-
-
Constructor Summary
Constructors Constructor Description AbstractPLElement()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BorderSpecgetBorder()ColorgetFillColor()MarginSpecgetMargin()SizeSpecgetMaxSize()SizeSpecgetMinSize()PaddingSpecgetPadding()protected SizeSpecgetRenderSize(SizeSpec aPreparedSize)Overwrite this method to adopt prepared sizes (e.g. for min or max size) to get the render size.IMPLTYPEsetBasicDataFrom(IMPLTYPE aSource)For copying stuff internally.IMPLTYPEsetBorder(BorderSpec aBorder)Set the border values.IMPLTYPEsetFillColor(Color aFillColor)Set the element fill color.IMPLTYPEsetMargin(MarginSpec aMargin)Set the margin values.IMPLTYPEsetMaxSize(SizeSpec aMaxSize)Set the maximum size to be used.IMPLTYPEsetMinSize(SizeSpec aMinSize)Set the minimum size to be used.IMPLTYPEsetPadding(PaddingSpec aPadding)Set the padding values.StringtoString()-
Methods inherited from class com.helger.pdflayout.base.AbstractPLRenderableObject
getPrepareAvailableSize, getPreparedSize, getRenderSize, internalCheckAlreadyPrepared, internalCheckNotPrepared, internalMarkAsNotPrepared, internalMarkAsNotPreparedDontPropagate, internalMarkAsPrepared, isPrepared, onMarkAsNotPrepared, onPrepare, onRender, onRenderSizeChange, prepare, render, visit
-
Methods inherited from class com.helger.pdflayout.base.AbstractPLObject
getDebugID, getID, onAfterSetID, setID
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.helger.pdflayout.base.IPLElement
getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, setExactHeight, setExactSize, setExactWidth, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasBorder
getBorderBottomWidth, getBorderLeftWidth, getBorderRightWidth, getBorderTopWidth, getBorderXSumWidth, getBorderYSumWidth, setBorder, setBorder, setBorder, setBorder, setBorderBottom, setBorderLeft, setBorderRight, setBorderTop, setBorderX, setBorderY
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasFillColor
hasFillColor
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasMargin
addMarginBottom, addMarginLeft, addMarginRight, addMarginTop, addMarginX, addMarginY, getMarginBottom, getMarginLeft, getMarginRight, getMarginTop, getMarginXSum, getMarginYSum, setMargin, setMargin, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setMarginX, setMarginY
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasMarginBorderPadding
getOutlineBottom, getOutlineLeft, getOutlineRight, getOutlineTop, getOutlineXSum, getOutlineYSum
-
Methods inherited from interface com.helger.pdflayout.base.IPLHasPadding
addPaddingBottom, addPaddingLeft, addPaddingRight, addPaddingTop, addPaddingX, addPaddingY, getPaddingBottom, getPaddingLeft, getPaddingRight, getPaddingTop, getPaddingXSum, getPaddingYSum, setPadding, setPadding, setPadding, setPaddingBottom, setPaddingLeft, setPaddingRight, setPaddingTop, setPaddingX, setPaddingY
-
Methods inherited from interface com.helger.pdflayout.base.IPLObject
getAsSplittable, getDebugID, hasID, isVertSplittable
-
Methods inherited from interface com.helger.pdflayout.base.IPLRenderableObject
beforeRender, getPreparedHeight, getPreparedSize, getPreparedWidth, getRenderHeight, getRenderSize, getRenderWidth, isPrepared, prepare, render
-
Methods inherited from interface com.helger.pdflayout.base.IPLVisitable
visit
-
-
-
-
Method Detail
-
setBasicDataFrom
@Nonnull @OverridingMethodsMustInvokeSuper public IMPLTYPE setBasicDataFrom(@Nonnull IMPLTYPE aSource)
Description copied from interface:IPLObjectFor copying stuff internally. Must always call super method- Specified by:
setBasicDataFromin interfaceIPLObject<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Overrides:
setBasicDataFromin classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aSource- Source object to copy from. May not benull.- Returns:
- this for chaining
-
getMinSize
@Nonnull public final SizeSpec getMinSize()
- Specified by:
getMinSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The minimum size to be used. Excluding outline. Never
null.
-
setMinSize
@Nonnull public final IMPLTYPE setMinSize(@Nonnull SizeSpec aMinSize)
Description copied from interface:IPLElementSet the minimum size to be used. Excluding outline.- Specified by:
setMinSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aMinSize- Minimum size. May not benull.- Returns:
- this
-
getMaxSize
@Nonnull public final SizeSpec getMaxSize()
- Specified by:
getMaxSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The maximum size to be used. Excluding outline. Never
null.
-
setMaxSize
@Nonnull public final IMPLTYPE setMaxSize(@Nonnull SizeSpec aMaxSize)
Description copied from interface:IPLElementSet the maximum size to be used. Excluding outline.- Specified by:
setMaxSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aMaxSize- Maximum size. May not benull. Must both be ≥ 0.- Returns:
- this
-
getMargin
@Nonnull public final MarginSpec getMargin()
- Specified by:
getMarginin interfaceIPLHasMargin<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current margin. Never
null.
-
setMargin
@Nonnull public final IMPLTYPE setMargin(@Nonnull MarginSpec aMargin)
Description copied from interface:IPLHasMarginSet the margin values.- Specified by:
setMarginin interfaceIPLHasMargin<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aMargin- Margin to use. May not benull.- Returns:
- this
-
getBorder
@Nonnull public final BorderSpec getBorder()
- Specified by:
getBorderin interfaceIPLHasBorder<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current border. Never
null.
-
setBorder
@Nonnull public final IMPLTYPE setBorder(@Nonnull BorderSpec aBorder)
Description copied from interface:IPLHasBorderSet the border values. This method may not be called after an element got prepared!- Specified by:
setBorderin interfaceIPLHasBorder<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aBorder- Border to use. May not benull.- Returns:
- this
-
getPadding
@Nonnull public final PaddingSpec getPadding()
- Specified by:
getPaddingin interfaceIPLHasPadding<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current padding. Never
null.
-
setPadding
@Nonnull public final IMPLTYPE setPadding(@Nonnull PaddingSpec aPadding)
Description copied from interface:IPLHasPaddingSet the padding values.- Specified by:
setPaddingin interfaceIPLHasPadding<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aPadding- Padding to use. May not benull.- Returns:
- this
-
getFillColor
@Nullable public final Color getFillColor()
- Specified by:
getFillColorin interfaceIPLHasFillColor<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current fill color. May be
null.
-
setFillColor
@Nonnull public final IMPLTYPE setFillColor(@Nullable Color aFillColor)
Description copied from interface:IPLHasFillColorSet the element fill color.- Specified by:
setFillColorin interfaceIPLHasFillColor<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aFillColor- The fill color to use. May benull.- Returns:
- this
-
getRenderSize
@Nonnull @OverridingMethodsMustInvokeSuper protected SizeSpec getRenderSize(@Nonnull SizeSpec aPreparedSize)
Description copied from class:AbstractPLRenderableObjectOverwrite this method to adopt prepared sizes (e.g. for min or max size) to get the render size.- Overrides:
getRenderSizein classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Parameters:
aPreparedSize- The originally prepared size.- Returns:
- The modified prepared size or the unchanged prepared size if no
changes are necessary. May not be
null.
-
toString
public String toString()
- Overrides:
toStringin classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>
-
-