Package com.teamten.typeset.element
Class Glue
java.lang.Object
com.teamten.typeset.element.Element
com.teamten.typeset.element.DiscardableElement
com.teamten.typeset.element.Glue
- All Implemented Interfaces:
Dimensions
,Flexible
- Direct Known Subclasses:
Leader
Whitespace that has a default width but can be shrunk or stretched.
-
Field Summary
Fields inherited from class com.teamten.typeset.element.Element
DRAW_DEBUG
-
Constructor Summary
ConstructorsConstructorDescriptionGlue
(long size, long stretch, boolean stretchIsInfinite, long shrink, boolean shrinkIsInfinite, boolean isHorizontal) All units are in scaled points.Glue
(long size, long stretch, long shrink, boolean isHorizontal) Convenience constructor for non-infinite glue.Glue
(long size, Flexibility stretch, Flexibility shrink, boolean isHorizontal) All units are in scaled points. -
Method Summary
Modifier and TypeMethodDescriptionfixed
(long newSize) Fix the element to the specified size.long
getDepth()
Return the depth (below the baseline) of the element.long
Return the height (above the baseline) of the element.How much this element can shrink.long
getSize()
Get the size of this element in the dimension of its flexibility.How much this element can stretch.long
getWidth()
Return the width of the element.static Glue
horizontal
(long size) Return fixed horizontal glue.static Glue
infinite
(boolean isHorizontal) Return infinite glue of zero size.static Glue
Return infinite horizontal glue of zero width.static Glue
Return infinite vertical glue of zero height.boolean
long
layOutHorizontally
(long x, long y, org.apache.pdfbox.pdmodel.PDPageContentStream contents) Add the element to the contents as part of a horizontal sequence.long
layOutVertically
(long x, long y, org.apache.pdfbox.pdmodel.PDPageContentStream contents) Add the element to the contents as part of a vertical sequence.void
println
(PrintStream stream, String indent) Pretty prints the element to the PrintWriter with the given indent.toString()
Return a text version of the element, ideally containing only the text of the element and its children.static Glue
vertical
(long size) Return fixed vertical glue.Methods inherited from class com.teamten.typeset.element.Element
getVerticalSize, println, shouldSkipElementAtStart, toTextString, visit
-
Constructor Details
-
Glue
All units are in scaled points.- Parameters:
size
- the ideal size of the glue.stretch
- the maximum extra space that can be added.shrink
- the maximum extra space that can be removed.
-
Glue
public Glue(long size, long stretch, boolean stretchIsInfinite, long shrink, boolean shrinkIsInfinite, boolean isHorizontal) All units are in scaled points.- Parameters:
size
- the ideal size of the glue.stretch
- the maximum extra space that can be added (not infinite).shrink
- the maximum extra space that can be removed (not infinite).
-
Glue
public Glue(long size, long stretch, long shrink, boolean isHorizontal) Convenience constructor for non-infinite glue. All units are in scaled points.- Parameters:
size
- the ideal size of the glue.stretch
- the maximum extra space that can be added (not infinite).shrink
- the maximum extra space that can be removed (not infinite).
-
-
Method Details
-
horizontal
Return fixed horizontal glue. -
vertical
Return fixed vertical glue. -
infinite
Return infinite glue of zero size. -
infiniteHorizontal
Return infinite horizontal glue of zero width. -
infiniteVertical
Return infinite vertical glue of zero height. -
getSize
public long getSize()Description copied from interface:Flexible
Get the size of this element in the dimension of its flexibility. -
getStretch
Description copied from interface:Flexible
How much this element can stretch.- Specified by:
getStretch
in interfaceFlexible
-
getShrink
Description copied from interface:Flexible
How much this element can shrink. -
fixed
Description copied from interface:Flexible
Fix the element to the specified size. -
isHorizontal
public boolean isHorizontal() -
getWidth
public long getWidth()Description copied from class:Element
Return the width of the element.- Specified by:
getWidth
in interfaceDimensions
- Specified by:
getWidth
in classElement
-
getHeight
public long getHeight()Description copied from class:Element
Return the height (above the baseline) of the element.- Specified by:
getHeight
in interfaceDimensions
- Specified by:
getHeight
in classElement
-
getDepth
public long getDepth()Description copied from class:Element
Return the depth (below the baseline) of the element.- Specified by:
getDepth
in interfaceDimensions
- Specified by:
getDepth
in classElement
-
layOutHorizontally
public long layOutHorizontally(long x, long y, org.apache.pdfbox.pdmodel.PDPageContentStream contents) throws IOException Description copied from class:Element
Add the element to the contents as part of a horizontal sequence.- Specified by:
layOutHorizontally
in classElement
- Parameters:
x
- the left-most point of the element.y
- the baseline of the element.contents
- the stream to add the element to.- Returns:
- how much to move right afterward.
- Throws:
IOException
-
layOutVertically
public long layOutVertically(long x, long y, org.apache.pdfbox.pdmodel.PDPageContentStream contents) throws IOException Description copied from class:Element
Add the element to the contents as part of a vertical sequence.- Specified by:
layOutVertically
in classElement
- Parameters:
x
- the left-most point of the element.y
- the upper-left point of the element.contents
- the stream to add the element to.- Returns:
- how much to move down afterward.
- Throws:
IOException
-
println
Description copied from class:Element
Pretty prints the element to the PrintWriter with the given indent. The method must print its own newline. -
toTextString
Description copied from class:Element
Return a text version of the element, ideally containing only the text of the element and its children.- Overrides:
toTextString
in classElement
-
toString
-