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_SIZEFields inherited from interface com.helger.pdflayout.base.IPLHasBorder
DEFAULT_BORDERFields inherited from interface com.helger.pdflayout.base.IPLHasFillColor
DEFAULT_FILL_COLORFields inherited from interface com.helger.pdflayout.base.IPLHasMargin
DEFAULT_MARGINFields inherited from interface com.helger.pdflayout.base.IPLHasPadding
DEFAULT_PADDING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal BorderSpecfinal PLColorfinal MarginSpecfinal SizeSpecfinal SizeSpecfinal PaddingSpecprotected SizeSpecgetRenderSize(SizeSpec aPreparedSize) Overwrite this method to adopt prepared sizes (e.g. for min or max size) to get the render size.setBasicDataFrom(IMPLTYPE aSource) For copying stuff internally.final IMPLTYPEsetBorder(BorderSpec aBorder) Set the border values.final IMPLTYPEsetFillColor(PLColor aFillColor) Set the element fill color.final IMPLTYPEsetMargin(MarginSpec aMargin) Set the margin values.final IMPLTYPEsetMaxSize(SizeSpec aMaxSize) Set the maximum size to be used.final IMPLTYPEsetMinSize(SizeSpec aMinSize) Set the minimum size to be used.final IMPLTYPEsetPadding(PaddingSpec aPadding) Set the padding values.toString()Methods inherited from class com.helger.pdflayout.base.AbstractPLRenderableObject
getPrepareAvailableSize, getPreparedSize, getRenderSize, internalCheckAlreadyPrepared, internalCheckNotPrepared, internalMarkAsNotPrepared, internalMarkAsNotPreparedDontPropagate, internalMarkAsPrepared, isPrepared, onMarkAsNotPrepared, onPrepare, onRender, onRenderSizeChange, prepare, render, visitMethods inherited from class com.helger.pdflayout.base.AbstractPLObject
getDebugID, getID, onAfterSetID, setIDMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.helger.commons.traits.IGenericImplTrait
thisAsTMethods inherited from interface com.helger.commons.id.IHasID
getIDMethods inherited from interface com.helger.pdflayout.base.IPLElement
getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, setExactHeight, setExactSize, setExactWidth, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidthMethods inherited from interface com.helger.pdflayout.base.IPLHasBorder
getBorderBottomWidth, getBorderLeftWidth, getBorderRightWidth, getBorderTopWidth, getBorderXSumWidth, getBorderYSumWidth, setBorder, setBorder, setBorder, setBorder, setBorderBottom, setBorderLeft, setBorderRight, setBorderTop, setBorderX, setBorderYMethods inherited from interface com.helger.pdflayout.base.IPLHasFillColor
hasFillColorMethods 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, setMarginYMethods inherited from interface com.helger.pdflayout.base.IPLHasMarginBorderPadding
getOutlineBottom, getOutlineLeft, getOutlineRight, getOutlineTop, getOutlineXSum, getOutlineYSumMethods 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, setPaddingYMethods inherited from interface com.helger.pdflayout.base.IPLObject
getAsSplittable, getDebugID, hasID, isVertSplittableMethods inherited from interface com.helger.pdflayout.base.IPLRenderableObject
beforeRender, getPreparedHeight, getPreparedSize, getPreparedWidth, getRenderHeight, getRenderSize, getRenderWidth, isPrepared, prepare, renderMethods inherited from interface com.helger.pdflayout.base.IPLVisitable
visit
-
Constructor Details
-
AbstractPLElement
public AbstractPLElement()
-
-
Method Details
-
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
- Specified by:
getMinSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The minimum size to be used. Excluding outline. Never
null.
-
setMinSize
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
- Specified by:
getMaxSizein interfaceIPLElement<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The maximum size to be used. Excluding outline. Never
null.
-
setMaxSize
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
- Specified by:
getMarginin interfaceIPLHasMargin<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current margin. Never
null.
-
setMargin
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
- Specified by:
getBorderin interfaceIPLHasBorder<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current border. Never
null.
-
setBorder
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
- Specified by:
getPaddingin interfaceIPLHasPadding<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current padding. Never
null.
-
setPadding
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
- Specified by:
getFillColorin interfaceIPLHasFillColor<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>- Returns:
- The current fill color. May be
null.
-
setFillColor
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
- Overrides:
toStringin classAbstractPLRenderableObject<IMPLTYPE extends AbstractPLElement<IMPLTYPE>>
-